2013-02-14 56 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