Если вы придерживаетесь одной цели для каждой подкаталоги, вы можете сделать следующее, используя add_definitions
, чтобы добавить свои флаги компиляции.
# in ./CMakeLists.txt
add_subdirectory(project1)
add_subdirectory(project2)
# in ./project1/CMakeLists.txt:
add_definitions("flags1")
add_executable(project1 ../myfile.cpp)
# in ./project2/CMakeLists.txt:
add_definitions("flags2")
add_executable(project2 ../myfile.cpp)
add_definitions
применяется ко всем файлам, скомпилированным в этом подкаталоге, и тем, которые находятся в нем. Вы можете применить флаги к определенным файлам, используя следующее:
set_source_files_properties(myfile.cpp PROPERTIES COMPILE_FLAGS "flags")