如何为 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()
因此,为了正确检查字符串,我们将构建配置类型转换为小写,然后检查该类型的配置是否与此自定义配置类型匹配。如果是这样,那么我们可以添加一些预处理器定义等(
- 转到
Settings -> Build, Execution, Deployment -> CMake
。
- Select 您要为其设置预处理器定义的配置文件。
- 写入
CMake options
文本框:-DYOUR_DEFINE_VARIABLE=1
- 在您的 CMakeLists.txt 中写入以下内容:
if (YOUR_DEFINE_VARIABLE)
add_definitions(-DYOUR_DEFINE_VARIABLE=1)
endif (YOUR_DEFINE_VARIABLE)
我在 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()
因此,为了正确检查字符串,我们将构建配置类型转换为小写,然后检查该类型的配置是否与此自定义配置类型匹配。如果是这样,那么我们可以添加一些预处理器定义等(
- 转到
Settings -> Build, Execution, Deployment -> CMake
。 - Select 您要为其设置预处理器定义的配置文件。
- 写入
CMake options
文本框:-DYOUR_DEFINE_VARIABLE=1
- 在您的 CMakeLists.txt 中写入以下内容:
if (YOUR_DEFINE_VARIABLE)
add_definitions(-DYOUR_DEFINE_VARIABLE=1)
endif (YOUR_DEFINE_VARIABLE)