将CLion中默认的CMakeLists.txt更改为包含警告信息

9
在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 模板?

我看到一个功能请求被打开了 https://youtrack.jetbrains.com/issue/CPP-547 - ipa
1个回答

0

请注意,无法通过编辑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项目即可。祝您使用愉快!

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

 

可能更好的解决方案:

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

我现在使用一个名为flags的实时模板,在其中粘贴了我的常用标志以及其他一些代码片段。因此,每当我在CMakeLists.txt中键入flags并按Tab键扩展该文本时,您可以拥有许多版本的标志,并使用实时模板来减轻每次输入它们的负担。


这不是一个答案。它甚至不能算作评论,因为它既没有要求更多信息,也没有建议改进原问题。它可能只应该是对问题的点赞。 - Fraser
1
抱歉,这并没有回答我的问题。使用您的解决方案会更改cmake设置,而不是更改默认的CMakeLists.txt。在这种情况下,如果我在另一台机器上使用代码或其他人使用它,则不会启用编译器标志。 - ipa
OP,你期望在一台机器上所做的“默认”更改会“神奇地”出现在另一台机器上吗?这样的神奇事件是不会发生的。 - user3629249

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接