2016-07-27 7 views
3

In unserem Projekt verwenden wir CMake mit zwei verschiedenen Build-Zielen: Debug und Release.Build-Ziele entfernen: RelWithDebInfo, MinSizeRel

Clion bietet zwei zusätzliche Build-Ziele: RelWithDebInfo und MinSizeRel. Wenn Clion nun den CMake-Cache erstellt (für alle 4 verwenden wir nur 2), schlägt es fehl, weil wir außer debug oder release keine anderen Build-Ziele zulassen.

Ihre erste Abhilfe ist dies auf der Haupt CMakeList.txt zu verwenden:

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

Aber ist es möglich, diese beiden Konfiguration von Clion standardmäßig zu deaktivieren?

+0

Ich würde annehmen, dass was für Visual Studio funktioniert - Ändern von 'CMAKE_CONFIGURATION_TYPES' - funktioniert auch für Clion. Siehe z.B. ["Cmake-Generatoren für Visual Studio setzen CMAKE_CONFIGURATION_TYPES nicht"] (http://stackoverflow.com/questions/31661264/cmake-generators-for-visual-studio-do-not-set-cmake-configuration-types). – Florian

Antwort

1

Wenn Sie für klare CLion einzige Lösung suchen, ohne CMakeLists Wechsel gehen zu File->Settings->Build,Execution,Deployment->CMake und entfernen Konfigurationen, die Sie nicht wollen, zu behandeln. enter image description here

4

CLion generiert standardmäßig diese 4 Konfigurationen. Um es zu zwingen, nur Debuggen und Freigeben zu erzeugen, benutzen Sie in Ihrem CMake. Documentation.

+0

Ich habe dies festgelegt, um RelWithDebInfo nur zu bauen. Ich stelle jedoch fest, dass neben RelWithDebInfo auch ein '__default__' in den cmake-Produkten erstellt wurde. Gibt es eine Möglichkeit zur Konsolidierung, sodass nur eine Konfiguration ausgeführt wird? –

+0

Standardmäßig ist eine bestimmte Konfiguration für CLion erforderlich. Aber jetzt (2016.3) baut CLion nur eine Konfiguration auf einmal. Überprüfen Sie - https://blog.jetbrains.com/clion/2016/10/clion-2016-3-eap-cmake-overload-resolution/#cmake – nastasiak2512

Verwandte Themen