Если вам нужно настроить много переменных препроцессора, вы можете использовать configure_file :
Создайте файл конфигурации, например. config.h.in
с
#cmakedefine _COMPILE_UNIT_TESTS_
#cmakedefine OTHER_CONSTANT
...
затем в вашем CMakeLists.txt:
set(_COMPILE_UNIT_TESTS_ ON CACHE BOOL "Compile unit tests") # Configurable by user
set(OTHER_CONSTANT OFF) # Not configurable by user
configure_file(config.h.in config.h)
в каталоге сборки генерируется config.h
:
#define _COMPILE_UNIT_TESTS_
/* #undef OTHER_CONSTANT */
В соответствии с предложением robotik , вы должны добавить что-то вроде include_directories(${CMAKE_CURRENT_BINARY_DIR})
к вашему CMakeLists.txt
, чтобы #include "config.h"
работал в C ++.