如何告诉 CMake 在编译我的源之前下载外部项目
How to tell CMake to download external projects before compiling my sources
我有自己的代码,它依赖于第三方库,例如 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下载第三方库吗?
谢谢!
ExternalProject
创建目标。您可以设定第一个目标,例如您的图书馆,依赖于该目标。然后在您开始构建库之前下载它。
是的,它有效!
我刚刚添加了行
add_dependencies(my_project yaml-cpp)
编译前下载了 yaml-cpp my_project。
非常感谢您的帮助!
我有自己的代码,它依赖于第三方库,例如 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下载第三方库吗?
谢谢!
ExternalProject
创建目标。您可以设定第一个目标,例如您的图书馆,依赖于该目标。然后在您开始构建库之前下载它。
是的,它有效! 我刚刚添加了行
add_dependencies(my_project yaml-cpp)
编译前下载了 yaml-cpp my_project。
非常感谢您的帮助!