2012-01-16 44 views
2

我目前正在爲某些項目尋找舊make系統的替代品。我目前正在考慮的其中一個替代品是cmake。但從目前我所知道的情況來看,CMake更喜歡爲每個目錄設置一個配置文件,類似於Autotools和其他人所喜歡的配置文件。Cmake是否可以正確處理遞歸構建

我知道遞歸make應該是considered harmfull,因爲不是整個依賴關係圖都是知道的(詳見本文)。出於這個原因,依賴於遞歸make的其他工具要麼在所有情況下都不能正確工作,要麼需要一些包裝來解決這些問題。

我目前正試圖弄清楚CMake如何處理這種情況,以及在設計中是否考慮了論文中提到的問題。我會嘗試一下這篇文章中提到的例子,但是如果它們工作的話,它不會給我一個確定的事實,那就是遞歸構建在任何情況下都可以工作。

所以主要問題是:這個問題是否考慮CMake或不?如果是這樣,我可以在哪裏閱讀有關他們的解決方案

編輯

我發現CMake的FAQ entry在這個問題上,但我沒有真正的答案滿意。我想真正的答案是在那裏,但我找不到它,因爲我目前對CMake內部沒有任何知識,而且如果我可以事先做出決定,我不打算學習它們,這對我來說不是正確的工具目的。

回答

6

CMake不會根據CMakeLists.txt生成一個生成文件。它從所有這些信息收集所有信息,並創建一些令人難以置信的複雜信息,但大概是這樣編寫的,以便它的可靠性,並確保在相關CMakeLists.txt更改時重建文件。