我們使用CMake爲Visual Studio 2008生成解決方案文件。除了構建庫和可執行文件的常規源項目之外,我還希望有一個僅包含配置文件的項目。這些文件用於在運行時配置項目的行爲。他們不需要構建項目,但將它們包含在解決方案中可以方便地編輯這些文件。我能做到這add_custom_target
使用像這樣:如何讓CMake創建一個僅包含配置文件的Visual Studio項目?
file(GLOB ini_files ${PROJECT_SOURCE_DIR}/../config/ini/*)
source_group(ini FILES ${ini_files})
file(GLOB xml_files ${PROJECT_SOURCE_DIR}/../config/xml/*)
source_group(xml FILES ${xml_files})
add_custom_target(config SOURCES ${ini_files} ${xml_files})
這給了我一個包含配置文件的子文件夾的「配置」項目。但是,還有一個名爲「config」的鏈接指向一些不存在的文件。我認爲這應該是這個規則創建的目標的鏈接。由於沒有什麼可以建立的,這仍然是一個死路。現在我的問題是:
- 是add_custom_target正確的方式來實現我想要的? 如果不是,那麼更好的解決方案是什麼?
- 如果是正確的方法,我該如何擺脫與目標名稱的鏈接?另外,我想刪除「CMake Rules」文件夾以使配置項目儘可能地乾淨。
謝謝你這個有見地的答案。將這些文件添加到現有的項目中,我自己記住了;但問題是,這些項目實際上構建了我們項目外部框架使用的模塊(動態庫,dll或其他文件)。所以也許會把配置文件放到它們所屬的模塊中;有些被多重使用。還有一些文件將框架配置爲使用模塊,因此不會被任何模塊讀取。我知道,對於Unix Makefiles來說這沒有用,但是這個項目的唯一目的是將配置文件添加到VS. – ahans
@ahans沒有什麼能阻止你在多個項目中包含文件。開銷很小,因爲沒有文件會被複制。 – SirDarius
有趣的一點。這並不能解決配置框架的文件問題。我會牢記這一點,可能會在某些時候派上用場。現在我通過使用'add_library'解決了這個問題。這正是我想要的。 – ahans