2015-05-17 13 views
5

In CLion il CMakeLists.txt predefinito imposta solo il flag del compilatore C++ 11. Mi piacerebbe avere avvertenze e la pedante flag di default in tutti i miei progetti.Cambia CMakeLists.txt predefinito in CLion per includere gli avvisi

Questo è per default

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 

e mi piacerebbe avere questa di default in modo da non dover cambiare ogni volta che creo un nuovo progetto

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -W -Wall -Wextra -pedantic") 

Nel "Impostazioni" - "Modelli di file e codice" Posso modificare il modello di intestazione/sorgente C++ ma non il modello CMakeLists.txt. C'è un modo per cambiare il modello CMakeLists.txt predefinito in CLion?

+0

Ho visto che è stata aperta una richiesta di funzionalità https://youtrack.jetbrains.com/issue/CPP-547 – ipa

risposta

2

Fai attenzione che questo non possa essere sovrascritto modificando CmakeLists.txt!

Inoltre, si consiglia di eseguire una copia di backup del file in questione.

Vai alla posizione in cui è stato installato/decompresso Clion e poi

bin/cmake/share/cmake-3.2/Modules 

e cercare il file denominato "CMakeCXXInformation.cmake"

Non basta scrivere/incollare le bandiere che seguono questo modello:

#This should be my default compiler flags 
SET(CMAKE_CXX_FLAGS "-std=c++11 -Wall -Werror -Wextra -pedantic - 
Wshadow -Woverloaded-virtual -Winvalid-pch -Wcast-align -Wformat=2 - 
Wformat-nonliteral -Wmissing-declarations -Wmissing-format-attribute - 
Wmissing-include-dirs -Wredundant-decls -Wswitch-default") 

È possibile scrivere/incollare ovunque si desideri: alto/basso del file.

Salvare il file, ricaricare il progetto Cmake. Godere!

(La linea con le bandiere del compilatore impostati nel CmakeList.txt può essere ignorato/cancellato)

 

Probabilmente una soluzione migliore:

Dal momento che questo non sembra essere supportato da uno qualsiasi dei prodotti di Intellij, penso che la soluzione migliore, se si desidera che il codice sia ancora portatile, è utilizzare un modello [live] (https://www.jetbrains.com/idea/help/live-templates.html)

Ora utilizzo un modello live chiamato flags in cui ho appena incollato le mie flag comunemente utilizzate e anche altre informazioni sul codice. Quindi ogni volta che mi trovo in CMakeList.txt posso digitare i flag e quindi premere Tab per espandere quel testo. Ovviamente potresti avere molte versioni di flag e usare modelli live per loro per alleggerire il peso di doverli digitare ogni volta singolarmente.

+0

Questa non è una risposta. Non è nemmeno un commento, dal momento che non richiede ulteriori informazioni o suggerisce miglioramenti alla domanda originale. Probabilmente dovrebbe essere solo un upvote per la domanda. – Fraser

+0

Scusa ma questo non risponde alla mia domanda. Con la tua soluzione le impostazioni di cmake sono state modificate e non è stato modificato il CMakeLists.txt predefinito. In questo caso non avrò i flag del compilatore abilitati se uso il codice su una macchina diversa o qualcun altro lo sta usando. – ipa

+0

OP, ti aspetti che le modifiche "predefinite" apportate su una macchina vengano visualizzate "magicamente" su un'altra macchina? Un tale evento magico non accadrà. – user3629249