How to build multi binaries through cmake.

Topic :

1. How to build multi binaries through cmake.
2. How to make multi binaries by preprocess.


ex) CmakeLists.txt

Binary name : lucky1, lucky2
-------------------------------------------------------------------------------------

cmake_minimum_version(VERSION 3.10)
project(my_project)
...
set(SOURCE_FILES main.cpp foo.cpp bar.cpp)
add_excutable(lucky1 ${SOURCE_FILES} ${HEADER_DIR})
set_target_properties(lucky1 PROPERTIES COMPILE_FLAGS "-DPREPROCESS_DEV=1 -DPREPROCESS_DEV1=1")
target_link_libraries(lucky1 ${TARGET_LICK_LIBRARIES})
install(TARGETS lucky1 DESTINATION /home/test)


add_excutable(lucky2 ${SOURCE_FILES} ${HEADER_DIR})
set_target_properties(lucky2 PROPERTIES COMPILE_FLAGS "-DPREPROCESS_DEV=1 -DPREPROCESS_DEV1=0")
target_link_libraries(lucky2 ${TARGET_LICK_LIBRARIES})
install(TARGETS lucky2 DESTINATION /home/test)

-------------------------------------------------------------------------------------

Key is "set_target_properties"

Because ADD_DEFINITION is used globally in Cmakelists,
To make multi binaries from a cmakelist(only one), "set_target_properties" must be used to create multiple binaries according to the preprocessors.

set_target_properties([binariename] PROPERTIES COMPILE_FLAGS "-D[PreprocessName1] -D[PreprocessName2]"


and...

Target_link_libraries must be define for each binary setting.

No comments:

Post a Comment

알뜰폰 삼성페이 교통카드 '한도 초과' 오류(등록 불가 오류) 해결방법

sk7mobile 알뜰폰 삼성페이 교통카드 등록 시, 한도 초과 문제 해결방법 skt usim 해킹 사건으로 인해 sk7mobile 알뜰폰을 사용하는 저도 usim을 바꾸고 나니 삼성페이 교통카드가 등록이 안되더라구요...  삼성페이 교통카드 기능 은...