如何为 CLion 中的每个配置定义预处理器定义?

How to define preprocessor definition for each configuration in CLion?

我在 CLion -> Settings -> Build, Execution, Deployment -> CMake 中有几个构建配置文件。无论我使用哪个编译器,如何为每个配置文件设置预处理器定义?

我没试过,但这应该有用

if (CMAKE_CONFIGURATION_TYPES)
        string(TOLOWER "${CMAKE_CONFIGURATION_TYPES}" CMAKE_CONFIGURATION_TYPES_LOWER)
else()
        string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_CONFIGURATION_TYPES_LOWER)
endif()

foreach(config ${CMAKE_CONFIGURATION_TYPES_LOWER})
        if (${config} MATCHES "debug")
                #add preprocessor definition something like this bellow
                add_definitions(-DFOO -DBAR ...)
        elseif(${config} MATCHES "release")
                #and so on...
        endif()
endforeach()

因此,为了正确检查字符串,我们将构建配置类型转换为小写,然后检查该类型的配置是否与此自定义配置类型匹配。如果是这样,那么我们可以添加一些预处理器定义等(

  1. 转到Settings -> Build, Execution, Deployment -> CMake
  2. Select 您要为其设置预处理器定义的配置文件。
  3. 写入 CMake options 文本框:-DYOUR_DEFINE_VARIABLE=1
  4. 在您的 CMakeLists.txt 中写入以下内容:
if (YOUR_DEFINE_VARIABLE)
    add_definitions(-DYOUR_DEFINE_VARIABLE=1)
endif (YOUR_DEFINE_VARIABLE)