2

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

option(OURAPP-DEV-USE_EXTREME_DEBUGGING "Use extreme debugging features" OFF)

我想检查一个 C++ 文件是否检查了这个选项(在 CMake-GUI 中)。

即编写 C++ 代码,如:

#if OURAPP-DEV-USE_EXTREME_DEBUGGING
 print_extra_debugging();
#endif

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

知道如何实现吗?

4

2 回答 2

5

使用预处理器定义将 CMake 选项转移到 C++ 世界。

IF(OURAPP-DEV-USE_EXTREME_DEBUGGING)
    ADD_DEFINITIONS(-DUSE_EXTREME_DEBUGGING)
ENDIF()

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

#ifdef USE_EXTREME_DEBUGGING
    print_extra_debugging();
#endif

请注意,连字符不是 C 预处理器标记中的有效字符,因此您必须在定义中更改名称。

于 2012-10-11T14:07:36.617 回答
0

您也可以使用 cmake CONFIGURE_FILE,参见。http://www.cmake.org/cmake/help/cmake2.6docs.html#command%3Aconfigure_file

于 2012-10-11T22:32:12.690 回答