更改CLion中的默认CMakeLists.txt以包含警告

时间:2015-05-17 10:41:54

标签: c++ cmake clion

在CLion中,默认的CMakeLists.txt仅设置C ++ 11编译器标志。我希望在我的所有项目中默认都有警告和迂腐旗帜。

默认为

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模板吗?

1 个答案:

答案 0 :(得分:1)

注意不能通过编辑CmakeLists.txt来覆盖它!

另外,我建议制作相关文件的备份副本。

转到已安装/解压缩CLion的位置 然后

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 Project。享受!

(可以忽略/删除CmakeList.txt中设置的编译器标志的行)

可能是更好的解决方案:

由于Intellij的任何产品似乎都不支持这一点,我认为最好的解决方案是,如果您希望代码仍然可移植,则使用[实时模板](https://www.jetbrains.com/idea/help/live-templates.html

我现在使用一个名为flags的实时模板,其中我只粘贴了我常用的标志以及其他一些代码花絮。 因此,每当我在CMakeLists.txt中时,我都可以键入标志,然后按Tab键展开该文本。 你当然可以有很多版本的标志,并且使用实时模板可以减轻每次单独输入它们的负担。