gpt4 book ai didi

cmake - 每次都在安装阶段执行过程

转载 作者:行者123 更新时间:2023-12-04 10:57:36 27 4
gpt4 key购买 nike

我想运行程序以从 CMake 执行额外的安装任务。我尝试的解决方案,基于 INSTALL(CODE ...)是(这是一个真正的 MWE):

macro(MY_EXTRA_STUFF ARG)
execute_process(...)
endmacro()
install(CODE "MY_EXTRA_STUFF(${SOME_ARG})")

但是当我运行时 CMake 会提示 ninja install (或 make install ,取决于使用的生成器):
[0/1] Install the project...
-- Install configuration: ""
CMake Error at cmake_install.cmake:41 (MY_EXTRA_STUFF):
Unknown CMake command "MY_EXTRA_STUFF".


FAILED: CMakeFiles/install.util
cd /tmp && /usr/bin/cmake -P cmake_install.cmake
ninja: build stopped: subcommand failed.

有没有办法将我自己的代码走私到安装阶段?代码太长,无法放入 install(CODE "...")很好。在没有外部文件的情况下这样做的好处。谢谢!

最佳答案

代码传递给 install(CODE)执行为 独立 CMake 代码,因此它不应该使用来自 CMakeLists.txt 其余部分的定义(函数、宏、变量)。 .

即,install(CODE)行为类似于 install(SCRIPT)带有包含给定代码的独立脚本。

问题是配置阶段(当您调用 cmake 来配置您的项目时)和安装阶段,如您所见,调用 /usr/bin/cmake -P cmake_install.cmake , 是 单独 cmake 调用 .这些调用解析不同的文件,因此它们不知道彼此的上下文。

关于cmake - 每次都在安装阶段执行过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59083388/

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