避免在CMake add_custom_command中引用

Taa*_*TT4 7 quotes cmake

我正在尝试创建一个简单的batcher,它在一组文件上运行脚本.

因此,在globbed文件之后,我创建了以下自定义命令来执行脚本:

add_custom_command(OUTPUT ${RESOURCE_GFX} COMMAND ${EXE_GFX_EXPORT} ${GFX_EXPORT_PARAMETERS} ${RESOURCE_SWF})
Run Code Online (Sandbox Code Playgroud)

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"
Run Code Online (Sandbox Code Playgroud)

gfxexport.exe无法处理双引号包围的参数.有没有办法避免CMake自动将它们置于GFX_EXPORT_PARAMETERS变量之外?

谢谢你们,Raffaele.

sak*_*kra 10

在调用之前尝试在参数上使用separate_arguments函数:GFX_EXPORT_PARAMETERSadd_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})
Run Code Online (Sandbox Code Playgroud)