2015-09-13 167 views
1

我有一個cmake項目,依賴於另一個庫。其他庫也使用cmake,但其構建步驟似乎更像獨立項目而非庫。所以,當我的cmake嘗試將add_subdirectory()添加到庫cmake時,我收到諸如「CPack.cmake已包含在內的錯誤!!」並找不到「CPack自述文件資源文件」。所以,除非有一些聰明的技巧,我假設add_subdirectory()在這裏不是一個現實的選擇嗎?將圖書館建設整合到我的項目建設中的最佳選擇是什麼?Cmake項目依賴於cmake項目

掠過我頭腦一對夫婦的想法是:

  1. 使用自定義命令生成庫的建設的CMake在飛行文件,那麼更多的自定義命令開球構建。

  2. 只需手動構建庫並將預構建的二進制文件與我的項目存儲在各種os/arch/compiler組合中即可。

想法?

回答

3

可能您最好的選擇是使用ExternalProject模塊 - 特別是ExternalProject_Add函數。

這將讓你做任何或所有:下載,更新/補丁,配置,構建,安裝和測試相關庫。它適用於任何構建系統,但顯然特別適合使用CMake項目。

如果你看着做你選擇1 - 這可能是更容易只看修改其他圖書館的CMakeLists.txt允許它通過add_subdirectory包含在自己的項目。