2012-09-10 177 views
1

這裏的場景:生成IDE項目文件

在C/++中創建一個漂亮的軟件庫/模塊。

現在人們想讓新用戶輕鬆使用這個庫/模塊。

所以人們希望提供IDE項目文件,其中所有包含設置,編譯器標記和鏈接器設置都已正確設置。

一個想爲在不同的平臺上許多不同的IDE中,例如提供項目文件:Linux操作系統(32位& 64位),Windows(32位& 64位),蘋果(32位& 64位),代碼塊時,Eclipse CDT,KDevelop3,CodeLite,微軟的Visual Studio等

(假設所有路徑的對包括文件和庫文件,所有的編譯器標誌是已知的。例如,通過一個可下載的SDK的靜態路徑)

所以想要使用該庫的用戶只需:

  • 安裝庫/模塊
  • 選擇合適的項目文件(取決於用戶的操作系統和IDE上)
  • 開始編碼
  • (均包括設置,編譯器標誌&鏈接器設置已經正確的設置項目文件)
  • (無需用戶手動設置包括設置,編譯器標誌&鏈接器設置)

一個人怎麼能輕鬆地生成S從已知的包括設置,編譯器標誌和鏈接器設置中獲取項目文件。

我已經看過CMake(它非常接近最終目標),但它爲IDE項目文件創建了一個額外的CMake文件夾,並且不會將可能的示例源複製到構建目錄中。 (也許是有可能得到的CMake生成項目文件,而不CMake的文件夾,並與源文件複製到build文件夾?)

+0

標準品牌。用代碼捆綁項目文件是一個壞主意。一些IDE可以使用現有的Makefile。 – dmp

+1

Google開發了一個用於Chromium的工具gyp:http://code.google.com/p/gyp/wiki/GypVsCMake – TJD

+0

順便說一句,CMake的首選用法是不在二進制文件夾(構建輸出)源文件夾。我把它們放在一個完全不同的樹中,並且有一個關係,即一個源樹被用於多於一個編譯器/構建樹。這樣我可以獨立地定位32位版本和64位版本,並使用幾種不同的編譯器版本。 – drescherjm

回答

3

(均包括設置,編譯器標誌&鏈接器設置已經 正確設置在項目文件)

(無需用戶手動 設置包括設置,編譯器標誌&鏈接器設置)

這是可能的外核層如果你的項目沒有依賴關係。否則,您無法知道deps的庫和標題在用戶機器上的位置。

已經爲此創建了CMake - 查找依賴關係並生成項目文件。

但它會創建一個額外的CMake的文件夾添加到IDE項目文件

如果你正在談論的二進制目錄,則可以位於任何地方,在項目目錄沒有必要的。

並且也沒有將可能的示例源複製到構建目錄中。

這可能與configure_file函數或運行${CMAKE_PROGRAM} -E copy