gpt4 book ai didi

cmake - cpack 和安装(代码 ...) - CPACK_PACKAGING_INSTALL_PREFIX 与 CMAKE_INSTALL_PREFIX

转载 作者:行者123 更新时间:2023-12-05 04:07:37 24 4
gpt4 key购买 nike

作为“安装后 Hook ”,我需要执行类似这样的安装命令

install(CODE "execute_process(COMMAND some_command ${CMAKE_INSTALL_PREFIX}/some_folder"))

它根据先前安装到 some_folder 中的文件在 some_folder 中创建一个文件(它编译这些文件的索引/缓存)。

这适用于安装目标,但是一旦使用 cpack ${CMAKE_INSTALL_PREFIX} 就不再是正确的位置。

是否有像 ${CMAKE_CURRENT_INSTALL_PREFIX} 这样的变量始终指向当前安装目录,而不管是否使用默认安装目标或 cpack 并且可以用于此目的?

我看到的唯一选择是尝试在较早阶段对原始文件执行命令,创建临时文件并安装临时文件。不幸的是,这更容易出错,因为 some_command 应该在安装后的“最终”文件上运行(为了创建有效的缓存)

最佳答案

答案非常简单(感谢来自 IRC 的 Nils Gladitz):

使用反斜杠转义变量 ${CMAKE_INSTALL_PREFIX} 会延迟它的扩展,直到安装时它保持正确的值,对于通过 CPack 的安装也是如此:

install(CODE "execute_process(COMMAND some_command \${CMAKE_INSTALL_PREFIX}/some_folder"))

关于cmake - cpack 和安装(代码 ...) - CPACK_PACKAGING_INSTALL_PREFIX 与 CMAKE_INSTALL_PREFIX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48477588/

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