2012-03-26 38 views
5

Tôi đang cố gắng tạo một trình tạo gói đơn giản, chạy tập lệnh trên một tập hợp các tệp.Tránh trích dẫn trong CMake add_custom_command

Vì vậy, sau khi file globbed, tôi đã tạo ra các lệnh tùy chỉnh sau đây để thực thi kịch bản:

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

nơi EXE_GFX_EXPORT là chương trình kịch bản, một cái gì đó giống như C:\Program Files (x86)\Scaleform\GFx SDK 3.1\Bin\gfxexport.exe; RESOURCE_SWF là tệp mà tập lệnh chạy; và GFX_EXPORT_PARAMETERS là các tham số của tập lệnh, một cái gì đó ở dạng -i DDS -share_images -qp.

CMake "dịch" lệnh này tùy chỉnh trong:

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

nhưng gfxexport.exe không thể xử lý các thông số bao quanh bởi dấu ngoặc kép. Có cách nào để tránh CMake tự động đặt chúng xung quanh biến số GFX_EXPORT_PARAMETERS không?

Xin cảm ơn các bạn, Raffaele.

Trả lời

7

Hãy thử sử dụng các chức năng separate_arguments trên tham số GFX_EXPORT_PARAMETERS trước khi gọi 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

Perfect! Nó hoạt động như một say mê. Cảm ơn bạn rất nhiều @ luân xa. – TaaTT4

Các vấn đề liên quan