CMake:在安装时执行目标 Debug 或 Release
CMake : execute target Debug or Release at install time
在我的 CMake 项目中,我生成了一个目标“MyProgram”
ADD_EXECUTABLE(MyProgram ...)
然后,在安装时,我想执行这个程序(带有一些参数)所以我使用
INSTALL(SCRIPT MyScript.cmake)
但是使用 Windows + MSVC,我找不到调用正确可执行文件的方法:
- 在调试模式下我想调用
${EXECUTABLE_OUTPUT_PATH}/Debug/MyProgram.exe
- 在发布模式下我想调用
${EXECUTABLE_OUTPUT_PATH}/Release/MyProgram.exe
我对 cmake-generator-expressions 略知一二,但我无法让它与 install(SCRIPT)
一起使用。
如有任何帮助,我们将不胜感激!
要么生成了解可执行文件各自位置的不同脚本文件,要么使用例如install(SCRIPT "MyScript$<CONFIG>.cmake")
分别使用 MyScriptDebug.cmake
或 MyScriptRelease.cmake
进行调试或发布配置,或者使用 install(CODE)
允许您将参数传递给脚本:
CMakeLists.txt
install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -D \"MY_PROGRAM=$<TARGET_FILE:MyProgram>\" -P MyScript.cmake)")
MyScript.cmake
execute_process(COMMAND ${MY_PROGRAM} ...)
...
虽然调用单个程序可能不需要脚本文件;您可以直接使用
调用程序
install(CODE "execute_process(COMMAND \"$<TARGET_FILE:MyProgram>\" ...)")
在我的 CMake 项目中,我生成了一个目标“MyProgram”
ADD_EXECUTABLE(MyProgram ...)
然后,在安装时,我想执行这个程序(带有一些参数)所以我使用
INSTALL(SCRIPT MyScript.cmake)
但是使用 Windows + MSVC,我找不到调用正确可执行文件的方法:
- 在调试模式下我想调用
${EXECUTABLE_OUTPUT_PATH}/Debug/MyProgram.exe
- 在发布模式下我想调用
${EXECUTABLE_OUTPUT_PATH}/Release/MyProgram.exe
我对 cmake-generator-expressions 略知一二,但我无法让它与 install(SCRIPT)
一起使用。
如有任何帮助,我们将不胜感激!
要么生成了解可执行文件各自位置的不同脚本文件,要么使用例如install(SCRIPT "MyScript$<CONFIG>.cmake")
分别使用 MyScriptDebug.cmake
或 MyScriptRelease.cmake
进行调试或发布配置,或者使用 install(CODE)
允许您将参数传递给脚本:
CMakeLists.txt
install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -D \"MY_PROGRAM=$<TARGET_FILE:MyProgram>\" -P MyScript.cmake)")
MyScript.cmake
execute_process(COMMAND ${MY_PROGRAM} ...)
...
虽然调用单个程序可能不需要脚本文件;您可以直接使用
调用程序install(CODE "execute_process(COMMAND \"$<TARGET_FILE:MyProgram>\" ...)")