Избегайте цитирования в CMake add_custom_command - PullRequest
7 голосов
/ 26 марта 2012

Я пытаюсь создать простой дозатор, который запускает скрипт над набором файлов.

Итак, после слияния файлов я создал следующую пользовательскую команду для выполнения скрипта:

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?

Спасибо, ребята, Раффаэль.

1 Ответ

10 голосов
/ 26 марта 2012

Попробуйте использовать функцию Отдельные_аргументы для параметра 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})
...