2016-07-27 119 views
3

在我们的项目中,我们使用CMake和两个不同的构建目标:调试和发布。删除构建目标:RelWithDebInfo,MinSizeRel

克利翁确实提供了两个额外的构建目标:RelWithDebInfo和MinSizeRel。现在,当Clion创建CMake缓存(对于全部4个,我们只使用2个)时,它会失败,因为除了调试或发布之外,我们不允许其他构建目标。

你的第一个解决方法是使用这个主CMakeList.txt:

if(NOT ${CMAKE_BUILD_TYPE} MATCHES "Debug|Release") 
    return() 
endif() 

但是,它可以在默认情况下从克利翁禁用这两个配置?

+0

我会假设什么适用于Visual Studio - 更改'CMAKE_CONFIGURATION_TYPES' - 也适用于Clion。见例如[“Visual Studio的Cmake生成器不设置CMAKE_CONFIGURATION_TYPES”](http://stackoverflow.com/questions/31661264/cmake-generators-for-visual-studio-do-not-set-cmake-configuration-types)。 – Florian

回答

1

如果您正在寻找明确的CLion唯一的解决方案而不改变CMakeListsFile->Settings->Build,Execution,Deployment->CMake并删除您不想处理的配置。 enter image description here

4

CLion默认生成这4种配置。所以强制它在你的CMake中只生成Debug和Release使用set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "" FORCE)Documentation

+0

我已经设置这只是建立RelWithDebInfo。但是,我注意到在cmake产品中还有一个与RelWithDebInfo一起创建的'__default__'。有什么办法可以整合,只有一个配置运行? –

+0

默认是CLion所需的一些特定配置。但是现在(2016.3)CLion一次只构建一个配置。检查 - https://blog.jetbrains.com/clion/2016/10/clion-2016-3-eap-cmake-overload-resolution/#cmake – nastasiak2512