2009-08-05 92 views
3

我使用cmake來構建,測試和安裝我的項目。 我的方式是有點粗:我用一個腳本,這樣讓亂源的構建:在多部分cmake項目中獲取外部源代碼的正確方法

DIR=debug_build && 
rm -fr ./${DIR} && 
mkdir -p ${DIR} && 
cd ${DIR} && 
cmake -D CMAKE_BUILD_TYPE=Debug [email protected] .. && 
make 

我想我至少可以把它放到makefile文件,但是,這不是很奇怪使用Makefile以運行cmake生成新的Makefiles並運行另一個make?

什麼是正確的方法來做到這一點? cmake是否有避免調用「cd」的選項?

最近它變得更加複雜了,因爲我已經發布了一個我想分別編譯,測試和分發的庫。我想避免重複我在頂部CMakeLists.txt中的所有內容。

如何正確使用cmake做到這一點?

回答

1

不,CMake沒有任何這樣的選項。我通常喜歡使用包裝器Makefile來控制CMake調用。

這裏的主要問題是Makefile生成器不支持在運行make時指定配置,就像Visual Studio生成器那樣。我認爲這是一個功能請求,但這將是非常有創意的程序來解決。

+0

您可以詳細說明使用make來控制cmake的主要問題嗎? – 2009-08-05 22:52:19

1

這似乎是處理此問題的最常見形式。我通常看到(和使用過)批處理腳本(unix上的shell腳本或者Windows上的批處理文件)來處理這個問題,所以運行./build會創建build文件夾,在那裏創建CD,運行cmake,build,然後去回到原始文件夾。

0

也可以使用CMake GUI,它會自動創建生成文件夾,如果它不存在。