2016-07-27 2 views
3

В нашем проекте мы используем CMake с двумя разными целями построения: Debug и Release.Удалить цели сборки: RelWithDebInfo, MinSizeRel

Clion обеспечивает две дополнительные цели сборки: RelWithDebInfo и MinSizeRel. Теперь, когда Clion создает кеш CMake (для всех 4 мы используем только 2), он терпит неудачу, потому что мы не разрешаем другие цели сборки помимо отладки или выпуска.

Ваш первый обходной путь заключается в использовании этого на главной CMakeList.txt:

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

Но можно отключить эти две конфигурации из Clion по умолчанию?

+0

Я бы предположил, что то, что работает для Visual Studio - изменение 'CMAKE_CONFIGURATION_TYPES' - также работает для Clion. См. [«Генераторы Cmake для Visual Studio не устанавливают CMAKE_CONFIGURATION_TYPES»] (http://stackoverflow.com/questions/31661264/cmake-generators-for-visual-studio-do-not-set-cmake-configuration-types). – Florian

ответ

1

Если вы ищете чистое CLion только решение без изменения CMakeLists перейдите к File->Settings->Build,Execution,Deployment->CMake и удалите конфигурации, с которыми вы не хотите иметь дело. enter image description here

4

CLion по умолчанию создает эти 4 конфигурации. Поэтому, чтобы заставить его генерировать только Debug и Release, используйте set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "" FORCE) в вашем CMake. Documentation.

+0

Я установил это только для создания RelWithDebInfo. Тем не менее, я замечаю, что в продуктах cmake существует также '__default__', созданный вместе с RelWithDebInfo. Есть ли способ консолидироваться, поэтому запускается только одна конфигурация? –

+0

По умолчанию используется определенная конфигурация, необходимая для CLion. Но прямо сейчас (2016.3) CLion строит только одну конфигурацию за раз. Проверить - https://blog.jetbrains.com/clion/2016/10/clion-2016-3-eap-cmake-overload-resolution/#cmake – nastasiak2512

Смежные вопросы