2013-02-14 57 views
3

我正在嘗試使用CMake功能從構建樹中導出/導入目標(請參閱this wiki page)。我有這個dependency庫:在CMake中,是否可以構建從構建樹導入的依賴項?

add_library(dependency SHARED dependency.cpp) 
export(TARGETS dependency FILE dependency-targets.cmake) 

而且可執行在另一個項目中使用這個庫:

include(${DEPENDENCY_PATH}/dependency-targets.cmake) 

add_executable(main-app main.cpp) 
target_link_libraries(main-app dependency) 

這工作得很好。雖然我明白,這種導出/導入機制「僅」提供了一種方便的方式來引用外部二進制文件,但我想知道在運行make時是否可以編譯dependencymain-app?要麼使用導入機制(我懷疑)或使用另一個?

回答

1

你可以看看「superbuild」模式和ExternalProject

這個想法的要點是,你建立了一個「superbuild」項目,它只使用ExternalProject_Add()命令;這將設置您的真實項目及其所有依賴項。

+0

看起來像我正在尋找!我會研究這個,謝謝。 – piwi 2013-02-14 14:28:47

+0

實際上,ExternalProject似乎只是第一次建立依賴關係;如果依賴關係的某些來源發生變化,我仍然需要找出如何自動重建依賴關係......任何想法?謝謝, – piwi 2013-02-15 10:44:42