キャッシュ変数の場合、変数の代わりにリストを使用することは可能ですか?
ここでキャッシュ変数を使用する方法
set(VAR "Value" CACHE INTERNAL "My Var")
set(VAR "${VAR} Value2" CACHE INTERNAL "My Var")
CMake リストはセミコロンで区切られているため、次set
のようにリストを直接指定できます。
set(VAR Value;Value2 CACHE INTERNAL "My Var")
とはいえ、リストはセミコロンで区切られた項目として保持されますがset
、各項目の間にスペースを使用して構成できます。例えば
set(MyList Value Value2) # list is Value;Value2
したがって、値にスペースが含まれている場合は、リストを引用符で囲む必要があります"
。
set(VAR "Value 1;Value 2" CACHE INTERNAL "My Var") # list is Value 1;Value 2
最後のポイントは、すでにリストが作成されている場合は、キャッシュするときにリスト変数を引用符で囲む必要がないということです。
set(MyList "Value 1;Value 2") # list is Value 1;Value 2
set(VAR ${MyList} CACHE INTERNAL "My Var") # no quotes required
私が理解しているように、list(APPEND...)
コマンドを使用して値を直接キャッシュできるかどうかを尋ねています。
答えはノーですが、あなたの試みはほぼ正しかったです。目的の効果を得るには、リストをキャッシュするときにスペースではなくセミコロンを使用する必要があります。
set(VAR "${VAR};Value2" CACHE INTERNAL "My Var")