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

Apartment Buying Guide 2025: Shocking Red Flags You Should NEVER Ignore!

 🏙️ Apartment Buying Guide 2025: Shocking Red Flags You Should NEVER Ignore! 🚨 Are you thinking about buying an apartment in 2025? 🏢  It’...