Ho un comando personalizzato in un CMakeLists.txt:Perché CMake esegue il prefisso degli spazi con barre retroverse quando si esegue un comando?
set(testfiles "test1 test2")
add_custom_target(testtouch COMMAND touch ${testfiles})
Quando eseguo "fare testtouch VERBOSE = 1" Vedo che esegue:
touch test1\ test2
Questo è solo un esempio, ma Ho questo problema in un progetto reale e "\" stanno rompendo il comando. Nota che ottengo la variabile (qui testfiles) da uno script Trova e non posso semplicemente eliminare le virgolette doppie.
Perché CMake lo fa?
Come evitarlo?
Grazie per la risposta. Non riesco a cambiare l'impostazione della variabile perché la ricevo da un altro script. Posso manipolare la variabile in un modo per ottenere lo stesso? – Barth
Rispondi a me stesso: ho usato la seguente riga per farlo funzionare: string (REPLACE "" ";" testfile $ {testfiles}) – Barth
Questo vale anche per le opzioni di passaggio come "-o outfile". Nessuna possibilità di passare questo come una stringa; dobbiamo fornirlo come lista "-o; outfile", per quanto sia controintuitivo. –