我正在尝试创建一个简单的批处理程序,它在一组文件上运行一个脚本。
因此,在 globbed 文件之后,我创建了以下自定义命令来执行脚本:
add_custom_command(OUTPUT ${RESOURCE_GFX} COMMAND ${EXE_GFX_EXPORT} ${GFX_EXPORT_PARAMETERS} ${RESOURCE_SWF})
哪里
EXE_GFX_EXPORT
是脚本程序,类似于C:\Program Files (x86)\Scaleform\GFx SDK 3.1\Bin\gfxexport.exe
; RESOURCE_SWF
是运行脚本的文件;和 GFX_EXPORT_PARAMETERS
是脚本的参数,形式为 -i DDS -share_images -qp
.CMake 将这个自定义命令“翻译”为:
"C:\Program Files (x86)\Scaleform\GFx SDK 3.1\Bin\gfxexport.exe" "-i DDS -share_images -qp" "C:\path\to\file.swf"
但是
gfxexport.exe
无法处理双引号括起来的参数。有没有办法避免 CMake 自动将它们放在 GFX_EXPORT_PARAMETERS
周围多变的?谢谢你们,
拉斐尔。
最佳答案
尝试使用 separate_arguments参数 GFX_EXPORT_PARAMETERS
上的函数在调用之前 add_custom_command
:
separate_arguments(GFX_EXPORT_PARAMETERS_LIST WINDOWS_COMMAND "${GFX_EXPORT_PARAMETERS}")
add_custom_command(OUTPUT ${RESOURCE_GFX} COMMAND ${EXE_GFX_EXPORT} ${GFX_EXPORT_PARAMETERS_LIST} ${RESOURCE_SWF})
关于cmake - 避免在 CMake add_custom_command 中引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9870162/