在源C++中检查CMake的选项

Check CMake's option in C++ source

本文关键字:选项 CMake 检查 C++ 在源      更新时间:2023-10-16

我在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 以及其他......

知道如何实现它吗?

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

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

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

#ifdef USE_EXTREME_DEBUGGING
    print_extra_debugging();
#endif

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

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