检查C++源代码中的CMake选项

Fer*_*eak 2 c++ g++ cmake

我在CMake中定义了以下选项:

option(OURAPP-DEV-USE_EXTREME_DEBUGGING "Use extreme debugging features" OFF)
Run Code Online (Sandbox Code Playgroud)

我想在C++文件中检查是否已选中此选项(在CMake-GUI中).

即编写C++代码,如:

#if OURAPP-DEV-USE_EXTREME_DEBUGGING
 print_extra_debugging();
#endif
Run Code Online (Sandbox Code Playgroud)

请注意,我们的项目设置要求-在组件之间有一个选项(例如OURAPP和DEV以及其他......)

知道如何实现它吗?

Pet*_*ter 5

使用预处理器定义将CMake选项传送到C++世界.

IF(OURAPP-DEV-USE_EXTREME_DEBUGGING)
    ADD_DEFINITIONS(-DUSE_EXTREME_DEBUGGING)
ENDIF()
Run Code Online (Sandbox Code Playgroud)

在引擎盖下,这会将定义添加到编译器命令行,然后可供预处理器使用:

#ifdef USE_EXTREME_DEBUGGING
    print_extra_debugging();
#endif
Run Code Online (Sandbox Code Playgroud)

请注意,连字符不是C预处理程序标记中的有效字符,因此您必须更改define中的名称.