CMake:为#cmakedefine变量设置不同的名称

时间:2016-08-05 03:57:17

标签: c++ cmake preprocessor-directive

我知道您可以使用CMake configure_file为您的程序提供CMake变量。例如,我可以使用

#define ${CMAKE_BUILD_TYPE}

导致

#define Release

但是,为了使我的代码更易于阅读,我宁愿定义

#define BUILD_TYPE_RELEASE

有没有一种简单的方法可以达到这个目的?

1 个答案:

答案 0 :(得分:1)

这是解决问题的一种相当简单的方法:

CMakesLists.txt

if (NOT CMAKE_BUILD_TYPE)
    set (CMAKE_BUILD_TYPE Release)
endif (NOT CMAKE_BUILD_TYPE)

string (TOUPPER ${CMAKE_BUILD_TYPE} BUILD_TYPE_NAME)

configure_file (config.h.in config.h)

config.h.in

#define BUILD_TYPE_${BUILD_TYPE_NAME}
但是,如果有一个更优雅的解决方案,我仍然很好奇。