gpt4 book ai didi

c++ - 如何在配置主要项目时构建 cmake ExternalProject?

转载 作者:太空狗 更新时间:2023-10-29 20:36:37 25 4
gpt4 key购买 nike

当安装目标困惑时,引用 ExternalProjects 可能会很痛苦。因此,在为给定项目生成主项目文件之前,可能需要构建和安装一次 ExternalProjects。 CMake 是否可行以及如何实现?

最佳答案

您可以在 execute_process 中使用 cmake 调用来配置和构建 CMake 项目,其中包含 ExternalProject:

other_project/CMakeLists.txt:

project(other_project)
include(ExternalProject)

ExternalProject_Add(<project_name> <options...>)

CMakeLists.txt:

# Configure external project
execute_process(
COMMAND ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR}/other_project
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/other_project
)

# Build external project
execute_process(
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}/other_project
)

这种方式 other_project 将在目录 ${CMAKE_BINARY_DIR}/other_project 中配置和构建。如果您不在 ExternalProject_Add 调用中禁用安装,那么它将在构建 other_project 时执行。

通常,您希望从主项目中的变量中推导出 ExternalProject 的一些选项,如 SOURCE_DIRBINARY_DIRINSTALL_DIR。您有两种方法可以实现:

  1. 使用 configure_fileother_project 创建 CMakeLists.txt,从主项目调用(在 execute_process 之前)命令)。

  2. 将来自主项目的变量作为 -D 参数传递给 ${CMAKE_COMMAND}


分离 execute_process 顺序调用 COMMANDS 很重要。否则,如果将单个 execute_process 与多个 COMMANDS 一起使用,这些命令将只是“管道”(同时执行,但第一个命令的输出被视为第二个命令的输入) .

关于c++ - 如何在配置主要项目时构建 cmake ExternalProject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37553280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com