1
我只是似乎無法圍繞CMake的逃生規則我的頭。鑑於:CMake的報價逃避connadrum
set(X A B C)
add_custom_target(works COMMAND DUMMY=0 X="${X}" env | grep ^X= COMMENT "This works")
add_custom_target(fails COMMAND X="${X}" env | grep ^X= COMMENT "This fails")
意圖是執行命令X="A B C" env
。自定義目標works
正確構建命令,其中爲fails
正確執行:
X=\"A B C\" env ...
但是,爲什麼?
可能重複的[cmake:何時引用變量?](http://stackoverflow.com/questions/35847655/cmake-when-to-quote-variables)嘗試'設置(X「ABC」)'不要'不要在'$ {X}'周圍加引號。 – Florian
@Florian,'set(X「A B C」)'導致:'「X = \」A B C \「」env',這仍然是錯誤的。 – Ben
我有完全相同的問題,'ExternalProject_Add_Step(COMMAND build --args =「my args」)'會執行'build --args = \「我的args \」'這是不正確的。如果我今晚找不到解決方案,我將開始賞金。 –