2012-03-26 27 views
5

Estoy intentando crear un dosificador simple, que ejecuta una secuencia de comandos sobre un conjunto de archivos.Evite las citas en CMake add_custom_command

Así, después de archivos globbed, he creado el siguiente comando personalizado para ejecutar la secuencia de comandos:

add_custom_command(OUTPUT ${RESOURCE_GFX} COMMAND ${EXE_GFX_EXPORT} ${GFX_EXPORT_PARAMETERS} ${RESOURCE_SWF}) 

donde EXE_GFX_EXPORT es el programa de escritura, algo así como C:\Program Files (x86)\Scaleform\GFx SDK 3.1\Bin\gfxexport.exe; RESOURCE_SWF es el archivo en el que se ejecuta el script; y GFX_EXPORT_PARAMETERS son parámetros del script, algo en la forma de -i DDS -share_images -qp.

CMake "traduce" en este comando personalizado:

"C:\Program Files (x86)\Scaleform\GFx SDK 3.1\Bin\gfxexport.exe" "-i DDS -share_images -qp" "C:\path\to\file.swf" 

pero gfxexport.exe no puede manejar parámetros entre comillas dobles. ¿Hay alguna manera de evitar que CMake los ponga automáticamente alrededor de la variable GFX_EXPORT_PARAMETERS?

Gracias chicos, Raffaele.

Respuesta

7

Trate de usar la función separate_arguments en el parámetro GFX_EXPORT_PARAMETERS antes de invocar 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}) 
+0

perfecto! Funciona a las mil maravillas. Muchas gracias @sakra. – TaaTT4

Cuestiones relacionadas