Есть два варианта.Вы можете использовать метод add_definitions для передачи определений в виде флагов компилятора: Например, где-то в ваших проектах cmakelists.txt:
add_definitions( -DUSE_NEW_CACHE )
CMake убедится, что префикс -D преобразуется вправофлаг для вашего компилятора (/ D для msvc и -D для gcc).
Либо проверьте файл_конфигурации .Он более сложный, но может лучше подходить к исходному подходу с файлом Platform_Config.
Вы можете создать входной файл, аналогичный вашему исходному Platform_Config.h, и добавить в него строки "#cmakedefine".
Давайте вызовем Platform_Config.h.in:
// In Platform_Config.h.in
#cmakedefine USE_NEW_CACHE
// end of Platform_Config.h.in
При последующем запуске
configure_file( ${CMAKE_SOURCE_DIR}/Platform_Config.h.in ${CMAKE_BINARY_DIR}/common/Platform_Config.h )
в вашем файле build-dir будет создан новый файл Platform_Config.Те переменные в cmake, которые также являются cmakedefine, будут присутствовать в сгенерированном файле, остальные будут закомментированы или не определены.
Конечно, вы должны убедиться, что фактический сгенерированный файл будет правильно найден, когдавключая его в ваши исходные файлы.