gpt4 book ai didi

cmake - 如何添加依赖于 "make install"的_custom_target

转载 作者:行者123 更新时间:2023-12-03 23:54:22 25 4
gpt4 key购买 nike

我想添加一个名为“包”的自定义目标,它取决于安装目标。
当我运行 make package它应该会导致第一次运行 make install之后,运行我的自定义命令来创建一个包。

我尝试了以下 DEPENDS install但它不起作用。

我收到错误消息:没有规则来制作目标 CMakeFiles/install.dir/all , CMakeFiles/package.dir/all 需要

install(FILES
"module/module.pexe"
"module/module.nmf"
DESTINATION "./extension")

add_custom_target(package
COMMAND "chromium-browser" "--pack-extension=./extension"
DEPENDS install)

编辑:我试过 DEPENDS install关键字和 add_dependencies(package install)但它们都不起作用。

根据 http://public.kitware.com/Bug/view.php?id=8438
无法将依赖项添加到像 install 这样的内置目标。或 test

最佳答案

您可以创建自定义目标,该目标将在之后运行 install 和其他一些脚本。

CMake 脚本

例如,如果您有一个 CMake 脚本 MyScript.cmake :

add_custom_target(
MyInstall
COMMAND
"${CMAKE_COMMAND}" --build . --target install
COMMAND
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_LIST_DIR}/MyScript.cmake"
WORKING_DIRECTORY
"${CMAKE_BINARY_DIR}"
)

您可以通过构建目标 MyInstall 来运行它:
cmake --build /path/to/build/directory --target MyInstall

Python 脚本

当然,您可以使用任何脚本语言。只记得对其他平台有礼貌
(所以编写 bash 脚本可能是个坏主意,它不适用于 Windows)。

例如python脚本 MyScript.py :
find_package(PythonInterp 3.2 REQUIRED)

add_custom_target(
MyInstall
COMMAND
"${CMAKE_COMMAND}" --build . --target install
COMMAND
"${PYTHON_EXECUTABLE}" "${CMAKE_CURRENT_LIST_DIR}/MyScript.py"
WORKING_DIRECTORY
"${CMAKE_BINARY_DIR}"
)

关于cmake - 如何添加依赖于 "make install"的_custom_target,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24163778/

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