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