2015-05-17 54 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