6
私はCMakeLists.txtにカスタムコマンドを持っている:私は "testtouch VERBOSE = 1を作る" を実行すると、私はそれが実行されることがわかりコマンドを実行するときにCMakeがスペースの前にバックスラッシュを付けるのはなぜですか?
set(testfiles "test1 test2")
add_custom_target(testtouch COMMAND touch ${testfiles})
:
touch test1\ test2
これは一例ですが、私は実際のプロジェクトでこの問題を抱えており、 "\"はコマンドを破っています。 Findスクリプトから変数(ここではtestfiles)を取得するだけで、二重引用符を取り除くことはできません。
なぜCMakeはそれをしますか?
どうすればよいですか?
は、あなたの答えをいただき、ありがとうございます。私は別のスクリプトからそれを受け取るので、私は変数の設定を変更することはできません。同じように変数を操作することはできますか? – Barth
自分自身に返信:私はそれを動作させるために次の行を使いました:文字列( "" "testfile $ {testfiles}) – Barth
これは" -o outfile "のようなオプションを渡す場合でも保持されます。これを文字列として渡す機会はありません。私たちはリスト "-o; outfile"としてそれを供給する必要がありますが、直観に反します。 –