2017-05-30 200 views
1

我正在研究一個項目,將Google測試(gtest)作爲依賴項的鏈接。使用Google測試項目中包含的CMakeLists,通過CMake的接口依賴項,Google測試頭包含在項目中。包含CMake項目依賴包含目錄與-isystem

target_link_libraries (our_project gtest gmock)

一些我們已經使用了我們的項目的警告標誌打印在谷歌測試 - 例如萬噸警告,GCC的-Wsuggest-override。理想情況下,這些警告不會被打印出來,因爲它們起源於一個庫中,並且我認爲包含帶有-isystem的庫頭是正確的方法。但是,我不確定如何配置CMake使用指定庫的-isystem

有沒有一種方法可以指定庫依賴作爲系統庫而不修改gtest,並忽略它的警告?

回答

0

target_include_directories()提供了一個SYSTEM選項,它可以做你想做的。或者,如果目標是導入的庫目標,則填充INTERFACE_SYSTEM_INCLUDE_DIRECTORIES屬性,而不是INTERFACE_INCLUDE_DIRECTORIES屬性。

+0

我知道這個標誌,但需要在上游庫中進行更改。如何在不修改上游庫的情況下進行這種更改? – leecbaker

+0

我試圖修改目標的INTERFACE_SYSTEM_INCLUDE_DIRECTORIES屬性,但不會刪除警告。 (gtest_include_dirs gtest INCLUDE_DIRECTORIES) set_target_properties(gtest PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES gtest_include_dirs) – leecbaker