我想添加名为" package"的自定义目标。这取决于安装目标。
当我运行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
答案 0 :(得分:5)
您可以创建自定义目标,然后运行install和其他一些脚本。
例如,如果你有一个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
当然,您可以使用任何脚本语言。只记得对其他平台礼貌 (所以编写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}"
)