2015-05-17 110 views
5

在CLion中,默認CMakeLists.txt僅設置C++ 11編譯器標誌。我想在我的所有項目中默認都有警告和迂腐旗幟。更改CLion中的默認CMakeLists.txt以包含警告

這是默認

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

,我想在默認情況下有這樣的,所以我不必每次我創建一個新項目

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

在時間來改變它「設置」 - 「文件和代碼模板」我可以更改C++頭/源模板,但不能更改CMakeLists.txt模板。有什麼方法可以更改CLion中的默認CMakeLists.txt模板?

+0

我看到功能請求已打開https://youtrack.jetbrains.com/issue/CPP-547 – ipa

回答

2

請注意,這不能通過編輯CmakeLists.txt來覆蓋!

另外我建議製作有問題的文件的備份副本。

進入的位置中已經安裝/解壓縮克利翁 然後

bin/cmake/share/cmake-3.2/Modules 

,並查找名爲「CMakeCXXInformation.cmake」

有隻寫在文件/粘貼下面這你們的旗幟型號:

#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") 

你可以寫/粘貼這個任何你想要的地方 - 文件的頂部/底部。

保存該文件,重新載入Cmake項目。請享用!

(與CmakeList.txt設置編譯器標誌線可以忽略/刪除)

 

可能是一個更好的解決方案:

因爲這似乎並沒有被如果你想要代碼仍然是便攜式的,我認爲最好的解決方案是使用[live模板](https://www.jetbrains.com/idea/help/live-templates.html

我現在使用一個名爲標誌的實時模板,其中我只粘貼了我常用的標誌以及其他一些代碼花絮。 因此,無論何時我在CMakeLists.txt中,我都可以鍵入標誌,然後按Tab鍵展開該文本。 你當然可以有許多版本的標誌,並使用它們的實時模板將減輕每次單獨輸入它們的負擔。

+0

這不是一個答案。它甚至沒有真正的評論資格,因爲它沒有要求提供更多的信息,或者建議對原始問題進行改進。它應該只是對問題的滿意。 – Fraser

+0

對不起,但這不是回答我的問題。使用您的解決方案,cmake設置會被更改,而不會更改默認的CMakeLists.txt。在這種情況下,如果我在其他機器上使用代碼或其他人正在使用它,我不會啓用編譯器標誌。 – ipa

+0

OP,您是否期待您在一臺機器上進行'默認'更改以'神奇'出現在另一臺機器上?這樣的神奇事件不會發生。 – user3629249