2015-05-17 17 views
5

Trong CLion, CMakeLists.txt mặc định chỉ đặt cờ trình biên dịch C++ 11. Tôi muốn có cảnh báo và cờ pedantic theo mặc định trong tất cả các dự án của tôi.Thay đổi CMakeLists.txt mặc định trong CLion để bao gồm các cảnh báo

Đây là theo mặc định

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

và tôi muốn có này theo mặc định vì vậy tôi không cần phải thay đổi nó mỗi khi tôi tạo một dự án mới

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

Trong "Cài đặt" - "Tệp và mẫu mã" Tôi có thể thay đổi mẫu tiêu đề/nguồn C++ nhưng không thay đổi mẫu CMakeLists.txt. Có cách nào tôi có thể thay đổi mẫu CMakeLists.txt mặc định trong CLion?

+0

Tôi thấy rằng yêu cầu tính năng đã được mở https://youtrack.jetbrains.com/issue/CPP-547 – ipa

Trả lời

2

Hãy cẩn thận rằng điều này không thể bị ghi đè bằng cách chỉnh sửa CmakeLists.txt!

Ngoài ra, tôi khuyên bạn nên tạo bản sao lưu của tệp được đề cập.

Đến vị trí mà bạn đã cài đặt/giải nén Clion và sau đó

bin/cmake/share/cmake-3.2/Modules 

và tìm kiếm các file có tên "CMakeCXXInformation.cmake"

Có chỉ cần viết/dán cờ của bạn sau này mô hình:

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

Bạn có thể ghi/dán ở bất cứ nơi nào bạn muốn - trên cùng/dưới cùng của tệp.

Lưu tệp, tải lại bạn Dự án Cmake. Thưởng thức!

(The phù hợp với cờ biên dịch đặt trong CmakeList.txt thể bỏ qua/xóa)

 

Có lẽ một giải pháp tốt hơn:

Vì đây dường như không có được hỗ trợ bởi bất kỳ sản phẩm nào của Intellij, tôi nghĩ giải pháp tốt nhất, nếu bạn muốn mã vẫn có thể di chuyển là sử dụng [mẫu trực tiếp] (https://www.jetbrains.com/idea/help/live-templates.html)

Bây giờ tôi sử dụng một mẫu sống được gọi là cờ, trong đó tôi chỉ dán cờ thường được sử dụng của tôi và cũng có một số mã khác. Vì vậy, bất cứ khi nào tôi ở CMakeLists.txt tôi có thể gõ cờ và sau đó nhấn Tab để mở rộng văn bản đó. Tất nhiên bạn có thể có nhiều phiên bản cờ và sử dụng các mẫu trực tiếp cho chúng sẽ giảm bớt gánh nặng của việc phải nhập chúng riêng lẻ mỗi lần.

+0

Đây không phải là câu trả lời. Nó thậm chí không thực sự đủ điều kiện như một bình luận vì nó không yêu cầu thêm thông tin hoặc đề xuất cải tiến cho câu hỏi ban đầu. Nó có lẽ chỉ nên là một upvote cho câu hỏi. – Fraser

+0

Xin lỗi nhưng điều này không trả lời được câu hỏi của tôi. Với giải pháp của bạn, các cài đặt cmake bị thay đổi và không thay đổi CMakeLists.txt mặc định. Trong trường hợp này, tôi sẽ không bật cờ trình biên dịch nếu tôi sử dụng mã trên một máy khác hoặc người khác đang sử dụng nó. – ipa

+0

OP, bạn có mong đợi những thay đổi 'mặc định' bạn thực hiện trên một máy 'kỳ diệu' xuất hiện trên một máy khác không? Một sự kiện ma thuật như vậy sẽ không xảy ra. – user3629249

Các vấn đề liên quan