2012-03-26 12 views
5

Ich versuche, einen einfachen Batcher zu erstellen, der ein Skript über eine Reihe von Dateien ausführt.Vermeiden Sie das Zitieren in CMake add_custom_command

So, nach globbed Dateien, ich den folgenden benutzerdefinierten Befehl erstellt habe das Skript auszuführen:

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

wo EXE_GFX_EXPORT ist das Skript-Programm, so etwas wie C:\Program Files (x86)\Scaleform\GFx SDK 3.1\Bin\gfxexport.exe; RESOURCE_SWF ist die Datei, auf der das Skript ausgeführt wird; und GFX_EXPORT_PARAMETERS sind Script-Parameter, etwas in Form von -i DDS -share_images -qp.

CMake "übersetzt" dieser benutzerdefinierte Befehl in:

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

aber gfxexport.exe keine Parameter in doppelten Anführungszeichen umgehen kann. Gibt es eine Möglichkeit zu vermeiden CMake automatisch legt sie um GFX_EXPORT_PARAMETERS Variable?

Danke Jungs, Raffaele.

Antwort

7

Versuchen Sie, die separate_arguments Funktion auf den Parameter mit GFX_EXPORT_PARAMETERS vor add_custom_command Aufruf:

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! Es wirkt wie ein Zauber. Vielen Dank @sakra. – TaaTT4

Verwandte Themen