是否有一個變量,我可以在cmake中使用,使其行爲就像它通過了-q選項?這將是很好,因爲我有一個非常模塊化的構建,與cmakes輸出混亂。我在一個C++項目中使用它。告訴cmake安靜
11
A
回答
8
沒有我知道的變量。但是,您可以在下面的技巧添加到您的頂級的CMakeLists.txt(在project
調用之前)開始有所控制輸出:
function(message)
list(GET ARGV 0 MessageType)
if(MessageType STREQUAL FATAL_ERROR OR
MessageType STREQUAL SEND_ERROR OR
MessageType STREQUAL WARNING OR
MessageType STREQUAL AUTHOR_WARNING)
list(REMOVE_AT ARGV 0)
_message(${MessageType} "${ARGV}")
endif()
endfunction()
這將覆蓋的CMake的內置message
命令,並抑制所有STATUS
和無類型的消息,讓更重要的類型正確輸出。
例如,一個WARNING
消息將改變從
CMake Warning at CMakeLists.txt:14 (message): This is a dummy warning message.
到
CMake Warning at CMakeLists.txt:8 (_message): This is a dummy warning message. Call Stack (most recent call first): CMakeLists.txt:14 (message)
注意,在那裏生成的警告消息在調用棧中列出,而不是在實際的行輸出消息的第一行。
最後,這對於指示配置嘗試成功或失敗的彙總輸出沒有影響。
3
從cmake 3.1開始,設置CMAKE_INSTALL_MESSAGE
也非常有用。例如,set(CMAKE_INSTALL_MESSAGE LAZY)
將跳過-- Up-to-date:
消息。
相關問題
- 1. cmake的投訴安裝
- 2. 如何告訴CMake鏈接源目錄中的靜態庫?
- 3. 如何告訴CMake安裝目錄取決於僞目標?
- 4. 有沒有辦法告訴CMake生成幾個安裝規則?
- 5. 我如何告訴cmake我希望我的項目靜態鏈接庫?
- 6. 直接告訴gcc靜態鏈接庫
- 7. 告訴Rails緩存靜態文件組
- 8. 如何告訴cmake在通過apt-get安裝後找到提升?
- 9. 如何告訴CMake的使用相對路徑
- 10. 如何告訴cmake在哪裏輸出其構建數據?
- 11. 如何告訴cmake執行這兩個步驟來使用winpcap?
- 12. Cmake:告訴find_package尋找32位庫(而不是64位lib)
- 13. cmake:如何告訴庫哪裏可以找到依賴關係
- 14. 如何告訴cmake/cpack(NSIS)部署所需的庫?
- 15. 如何告訴CMake使用Windows路徑,而不是Cygwin的?
- 16. 如何告訴CMake在哪裏可以在Windows上找到pthread.h
- 17. 如何告訴cmake不要創建控制檯窗口?
- 18. 告訴IKImageBrowserView不要安排預加載
- 19. 告訴文件
- 20. 告訴gerrit dependendies
- 21. addChild告訴root.gotoAndStop();
- 22. 請告訴我
- 23. 告訴庫
- 24. 在Centos中安裝QT - CMake警告如何安裝OpenBR
- 25. CMake安裝
- 26. 告訴scipy.optimize.minimize失敗
- 27. django告訴朋友
- 28. C#告訴靜態GIF除了動畫之外
- 29. 告訴autoconf(僅)一個庫必須靜態鏈接
- 30. 告訴TypeScript該類有靜態和實例方法
酷!所以你可以做任何你想要的消息類型然後呢? – alexmherrmann
有沒有辦法停止調用堆棧的東西?感謝你的回答! – alexmherrmann
@alexhairyman並非如此,但您需要它來追蹤錯誤/警告的實際來源。如果你不想看到甚至是錯誤/警告,你總是可以去掉'function'內的所有東西,這樣'message'就成爲一個空操作。或者將錯誤類型留在'if'中,並忽略警告。 – Fraser