2012-10-01 233 views
1

在ROOT文件夾中,我有一個CMakeFiles.txt,其中包含:add_subdirectory(gtest)。問題是,ROOT構建了一個名爲API的文件,這是gtest正確構建所需的。CMake依賴關係 - 如何在構建子目錄之前構建根目錄

API依賴於由ROOT生成的文件。我如何獲得它,以便在執行API的CMakeList之前API等待ROOT完全完成構建?我可以添加什麼樣的延遲?

謝謝!

回答

0

沒有看到你的文件很難提供細節,但你只需告訴CMake gtest取決於API。有了這些信息,CMake會按照適當的順序生成事物。

+0

命令是什麼?我有項目(根)和項目(gtest),我只需在gtest的CMake中添加add_dependencies(gtest root)? – user1607549

+0

我基本上希望在開始構建gtest之前在ROOT中完成所有工作......我該怎麼做?我真的被卡住了:( – user1607549

+2

這是錯誤的想法,CMake不明白「做這個,然後做這個,然後做這個」,而是告訴它什麼取決於什麼,並且找出一個序列構建一些能夠確保在開始構建其他部分之前需要的所有部分的東西,如果gtest依賴於根中的所有內容,那麼可以設置依賴關係,並且您將獲得所需的內容。 gtest不依賴於,不要試圖強迫CMake在根中構建所有東西;它將確保所有內容都能及時生成並被使用。 –