我用我的CMakeLists.txt
ExternalProject_Add
命令添加一些外部項目。我想檢索一些項目屬性(正是我想從Find<package>.cmake
獲得預處理器定義,如<project>_DEFINITIONS
)。cmake的外部項目屬性列表
有沒有辦法讓所有允許的項目屬性使用作爲ExternalProject_Get_property
命令參數?例如,我知道source_dir和binary_dir,我。即是這樣的:
ExternalProject_Get_property(<my project> binary_dir)
或者有什麼辦法可以下載過外部項目後,立即使用find_package
功能?我肯定知道該項目的find_package
在啓動構建後工作(即,在已經配置了外部項目之後)。它會自動設置所有必要的變量(如<project>_DEFINITIONS
),但顯然find_package(<project>)
最初不可用(即在配置外部項目之前)。
好的,謝謝。在構建項目源代碼樹本身之前,是否有任何方法可以強制* configuration *或* building *用於外部項目**? – avtomaton
命令[execute_process](https://cmake.org/cmake/help/v3.0/command/execute_process.html)在配置階段立即*執行其操作*。如果你在**'find_package'之前調用這個命令**並且說它建立了外部項目,那麼'find_package'就會找到這個項目。 – Tsyvarev