7 Ekim 2016 Cuma

CMake add_library

Giriş
Verilen kaynak kodları derler ve bir kütüphane çıkartır.
add_library(MyLib SHARED MyCode.cpp)
Library + Executable
Aynı anda hem kütüphane hem de executable derlemek için şöyle yaparız.
add_library(
    ${LIBRARY_NAME}
    SHARED
    ${SRC_FILES}
    ${INCLUDE_FILES}
)

add_executable(
    ${EXECUTABLE_NAME}
    main.cpp
)

target_link_libraries(
    ${LIBRARY_NAME}
    sfml-main
    sfml-system
    sfml-window
)

target_link_libraries(
    ${EXECUTABLE_NAME}
    ${LIBRARY_NAME}
)
Header Only Library + Executable
Elimizde şöyle bir yapı olsun
project
 |
 |-------> lib1
 |           |----> lib1.h
 |
 |-------> lib2
 |           |----> lib2.h
 |
 |-------> main.cc
lib1 header only olsun. lib2 de header only ve lib1'e bağımlı olsun. Bu sefer INTERFACE özelliğini kullanıırz. Şöyle yaparız.
add_library(lib1 INTERFACE)
target_sources(lib1 INTERFACE lib1.h)

target_include_directories(lib1 INTERFACE
    "${PROJECT_SOURCE_DIR}/lib1"
)

add_library(lib2 INTERFACE)
target_sources(lib2 INTERFACE lib2.h)

target_include_directories(lib2 INTERFACE
    "${PROJECT_SOURCE_DIR}/lib2"
)

target_link_libraries(lib2 lib1)

add_executable(project main.cc)
target_link_libraries(project lib2)


Hiç yorum yok:

Yorum Gönder