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

ipa*_*ipa 6 c++ cmake clion

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

这是默认情况

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
Run Code Online (Sandbox Code Playgroud)

我希望默认情况下这样,所以每次创建新项目时都不需要更改它

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -W -Wall -Wextra -pedantic")
Run Code Online (Sandbox Code Playgroud)

在"设置" - "文件和代码模板"中,我可以更改C++标头/源模板,但不能更改CMakeLists.txt模板.有什么办法可以在CLion中更改默认的CMakeLists.txt模板吗?

Mug*_*rel 0

请注意,这不能通过编辑 CmakeLists.txt 来覆盖!

我还建议对相关文件进行备份。

转到您安装/解压 CLion 的位置,然后

bin/cmake/share/cmake-3.2/Modules
Run Code Online (Sandbox Code Playgroud)

并查找名为“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")
Run Code Online (Sandbox Code Playgroud)

您可以将其写入/粘贴到您想要的任何位置 - 文件的顶部/底部。

保存文件,重新加载 Cmake 项目。享受!

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

 

可能是更好的解决方案:

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

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