2014-03-12 19 views
3

假設我有a.cpp作爲源,我把它添加到一個cmake的目標:源文件的一些頭依賴,加入到解決方案資源管理器cmake的目標

add_executable(MY_TARG a.cpp) 

如果a.cpp包括a.h它將被添加作爲一個依賴對於目標,當我更改標題時,所有內容都將得到正確的重建,但a.h不會顯示在我的項目的源代碼列表中(例如在Visual Studio中)。

有沒有辦法在那裏添加它? 我可以區分系統標題(如<vector>)和來自同一目錄結構中文件夾的標題嗎?我可能希望只添加標題包含引號,而不是用括號("header.h"而不是<header.h>

我在尋找的東西自動 - 我已經有很多的CMakeLists.txt文件與上市那裏去只有.cpp文件通過所有這些似乎不切實際。

+0

我編輯了我的答案,列出了可能的自動化方式。 – Angew

回答

2

這是相當簡單 - 如果你想有一個文件被列爲IDE中的一個項目的一部分,將其列爲在C進行目標的一部分:

add_executable(MY_TARG a.cpp a.h) 

的CMake知道的足夠多將其識別爲一個頭文件(因此不會嘗試編譯它),但它會在生成的IDE項目中列出它。

編輯基於尋找自動改變現有系統的附加信息

,我不認爲這是很容易。但它應該仍然是可行的。編譯器通常可以列出他們編譯的文件包含的頭文件(例如,gcc有-MM)。您應該能夠使用此輸出和您最喜愛的文本處理語言來構建一次性轉換腳本。

+0

似乎我不能只是插入一個'-MM'開關到cmake中的我的CXX標誌,並期望看到輸出:) 我將不得不在我的cmake文件之外編寫一個單獨的腳本。 – onqtam

相關問題