Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake 两个子项目A和B,A依赖于B并检查B中存在的特征_Cmake_Dependencies_Botan - Fatal编程技术网

Cmake 两个子项目A和B,A依赖于B并检查B中存在的特征

Cmake 两个子项目A和B,A依赖于B并检查B中存在的特征,cmake,dependencies,botan,Cmake,Dependencies,Botan,我正在尝试创建一个CMake项目,该项目集成了两个子项目,具体来说是和。rnpgp的构建系统基于CMake,botan使用Python配置脚本生成生成文件。 问题在于,在CMake运行期间,rnpgp检查botan中的功能,因此需要编译的botan库。但是,直到我真正调用make,botan才开始构建,我不能这样做,因为rnpgp无法配置,因为botan尚未构建 在CMake中指定这种依赖关系的正确方法是什么?您可以在CMake配置阶段使用CMake运行botan Python脚本并运行make

我正在尝试创建一个CMake项目,该项目集成了两个子项目,具体来说是和。rnpgp的构建系统基于CMake,botan使用Python配置脚本生成生成文件。 问题在于,在CMake运行期间,rnpgp检查botan中的功能,因此需要编译的botan库。但是,直到我真正调用
make
,botan才开始构建,我不能这样做,因为rnpgp无法配置,因为botan尚未构建

在CMake中指定这种依赖关系的正确方法是什么?

您可以在CMake配置阶段使用CMake运行botan Python脚本并运行
make
。这样,在运行mpgp CMake时,将构建botan库并可供参考:

# Run the Python script to configure the botan Makefile.
execute_process(COMMAND
    python ${CMAKE_SOURCE_DIR}/botan/configure.py
    WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
)
# Run 'make' from the botan directory where the 'Makefile' was created.
execute_process(COMMAND
    make
    WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/botan/build"
)

这是一个粗略的例子,它可能看起来像什么。您可能需要稍微修改路径,以匹配系统上安装botan的位置,以及botan生成构建工件的位置(即生成文件的位置)。

您是否有一些代码可以共享并告诉我们问题出在哪里?我主要想做的是在未安装botan的系统上基于cmake构建rnpgp。就这样。