2012-03-26 22 views
5

Bir dosya kümesi üzerinde bir betik çalıştıran basit bir yığın oluşturmaya çalışıyorum.CMake içinde alıntı yapmaktan kaçınmak add_custom_command

Yani, globbed dosyaları sonra, komut dosyası çalıştırmak için aşağıdaki özel komutu oluşturduk

: EXE_GFX_EXPORT komut programı C:\Program Files (x86)\Scaleform\GFx SDK 3.1\Bin\gfxexport.exe gibi bir şey

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

; RESOURCE_SWF, komut dosyasının çalıştığı dosyadır; ve GFX_EXPORT_PARAMETERS komut dosyasının parametreleridir, -i DDS -share_images -qp biçiminde bir şey.

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

ama gfxexport.exe çift tırnak içine parametreleri işleyemez:

CKağıt bu özel komut içinde "çevirir". CMake'in otomatik olarak GFX_EXPORT_PARAMETERS değişkenini değiştirmesini önlemek için bir yol var mı?

Teşekkürler, Raffaele.

cevap

7

add_custom_command çağırmadan önce parametresinin GFX_EXPORT_PARAMETERS üzerinde separate_arguments işlevini kullanarak deneyin:

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

Mükemmel! Bir çekicilik gibi çalışır. Çok teşekkürler @sakra. – TaaTT4