[gelöst] Slash/Backslash ersetzen mit qmake built-in Func
Verfasst: 18. Mai 2015 08:11
Hallo zusammen,
ich arbeite mit Qt 5.4 und dem Qt Creator 3.3.0 unter Win7. In meiner Projektdatei möchte ich den lokalen Pfad der Qt-Dlls in eine separate Datei schreiben, um mit Inno Setup ein Softwarepaket zu schnüren. Das klappt an sich auch.
in .pro-Datei:
DLL_DIR = $$dirname(QMAKE_QMAKE) # speichert Pfad der qmake.exe, in dem sich auch die meisten Qt-Dlls befinden
DLL_DIR_ISS = "$$LITERAL_HASH define DllDir \"$$DLL_DIR\"" # erzeugt ein # define ...
write_file(./install/version.iss,DLL_DIR_ISS,append) # schreibt das # define ... in eine .iss Datei für Inno Setup
Der ausgegebene Pfad wird allerdings mit / angegeben, ich möchte ihn aber zuvor in \ wandeln, da alle Pfadangaben in der .iss-Datei mit \ sind. Dafür habe ich leider keine passende qmake-Funktion gefunden.
replace(DLL_DIR,/,\) # führt zu Fehlermeldung: Missing closing parenthesis in function call
replace(DLL_DIR,/,\\) # führt zu Fehlermeldung: 'replace' is not a recognized test function.
replace(DLL_DIR,/,"\\") # führt zu Fehlermeldung: 'replace' is not a recognized test function.
replace(DLL_DIR,/,\"\\\") # führt zu Fehlermeldung: 'replace' is not a recognized test function.
Auch mit vorangestelltem $$ vor DLL_DIR funktioniert es nicht oder mit dem / in "/" gekapselt. Kann mir da vielleicht jemand auf die Sprünge helfen?
Viele Grüße
Matthias
ich arbeite mit Qt 5.4 und dem Qt Creator 3.3.0 unter Win7. In meiner Projektdatei möchte ich den lokalen Pfad der Qt-Dlls in eine separate Datei schreiben, um mit Inno Setup ein Softwarepaket zu schnüren. Das klappt an sich auch.
in .pro-Datei:
DLL_DIR = $$dirname(QMAKE_QMAKE) # speichert Pfad der qmake.exe, in dem sich auch die meisten Qt-Dlls befinden
DLL_DIR_ISS = "$$LITERAL_HASH define DllDir \"$$DLL_DIR\"" # erzeugt ein # define ...
write_file(./install/version.iss,DLL_DIR_ISS,append) # schreibt das # define ... in eine .iss Datei für Inno Setup
Der ausgegebene Pfad wird allerdings mit / angegeben, ich möchte ihn aber zuvor in \ wandeln, da alle Pfadangaben in der .iss-Datei mit \ sind. Dafür habe ich leider keine passende qmake-Funktion gefunden.
replace(DLL_DIR,/,\) # führt zu Fehlermeldung: Missing closing parenthesis in function call
replace(DLL_DIR,/,\\) # führt zu Fehlermeldung: 'replace' is not a recognized test function.
replace(DLL_DIR,/,"\\") # führt zu Fehlermeldung: 'replace' is not a recognized test function.
replace(DLL_DIR,/,\"\\\") # führt zu Fehlermeldung: 'replace' is not a recognized test function.
Auch mit vorangestelltem $$ vor DLL_DIR funktioniert es nicht oder mit dem / in "/" gekapselt. Kann mir da vielleicht jemand auf die Sprünge helfen?
Viele Grüße
Matthias