我有自己的代码,这取决于第三方库,例如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在第一个构建步骤下载第三方库?
谢谢!
答案 0 :(得分:9)
ExternalProject
创建目标。您可以制作第一个目标,例如你的图书馆,依赖于那个目标。然后在开始构建库之前下载它。
答案 1 :(得分:5)
是的,它有效! 我刚添加了一行
add_dependencies(my_project yaml-cpp)
在编译my_project之前下载了yaml-cpp。
非常感谢你的帮助!