在构建过程中构建第三方库

时间:2016-10-28 22:49:26

标签: c++ build cmake

我有一个具有以下结构的项目

+--foo/
   |
   +-- CMakeLists.txt
   +-- src/
   +-- include/
   +-- third-party/
       |
       +-- thing.tar.gz

构建过程的一个步骤是膨胀和解压缩thing.tar.gz,使用CMake构建它,一旦准备就绪,继续编译并链接src(我的实际项目)下的任何内容。< / p>

我希望在build目录中完成所有这些 out of source 。最后,我希望我的构建过程如下:

$ cd /path/to/where/I/want/to/build/
$ cmake /path/to/directory/containing/CMakeFiles.txt/
$ make
# make inflates, untars, and builds thing.tar.gz
$ ls
# lists all the CMake stuff and the following folders:
# bin/ -> with all my application AND thing.tar.gz executables
# lib/ -> with all my libraries AND thing.tar.gz libraries
# include/ -> with all my headers AND thing.tar.gz headers

对于我的生活,我找不到一个简单的解决方案!到目前为止,我能够依赖EXECUTE_PROCESS提取到构建树中的文件夹,但我不能在生成的库上调用CMake,或者通知我的项目的其余部分嘿,我提取并且建立你的依赖[在这里]和[那里];你现在可以继续建设

你会如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

使用-DCMAKE_PREFIX_PATH=将cmake指向您自己的项目cmake调用期间安装依赖项的构建工件的位置。