如何在编译源代码之前告诉CMake下载外部项目

时间:2015-03-06 13:22:19

标签: cmake

我有自己的代码,这取决于第三方库,例如yaml-cpp。我想在编译自己的源代码之前下载这些第三方库。但是,我没有设法用CMake做到这一点。

我设法下载了yaml-cpp:

ExternalProject_Add(yaml-cpp
                URL https://yaml-cpp.googlecode.com/files/yaml-cpp-0.5.1.tar.gz
                PREFIX ${CMAKE_CURRENT_BINARY_DIR}/yaml-cpp
                CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>

但是当我输入

cmake ..
make

之前编译过我的来源。实际上,yaml-cpp是在最后一步下载的。

您是否知道如何告诉CMake在第一个构建步骤下载第三方库?

谢谢!

2 个答案:

答案 0 :(得分:9)

ExternalProject创建目标。您可以制作第一个目标,例如你的图书馆,依赖于那个目标。然后在开始构建库之前下载它。

答案 1 :(得分:5)

是的,它有效! 我刚添加了一行

add_dependencies(my_project yaml-cpp)

在编译my_project之前下载了yaml-cpp。

非常感谢你的帮助!