次の2つの間に違いはありますか?
set(FOO true CACHE BOOL "description")
option(FOO "description" ON)
背景:CMakeをしばらく使用していたとしても、今日はoption
コマンドにしか気づかなかったため、常にset
を使用していました。最初と2番目。
あなたの例では、違いはありません。ただし、違いがある場合があります。
Option
のデフォルト値はOFF
です。CMakeDependentOption
を使用すると、オプションを他のオプションに依存させることができますSet
は、BOOL
以外のタイプ、特に ;-lists を受け入れます。また、オプションを使用すると、ユーザーに安全に設定できることを示します。外部から内部変数を設定すると、無効な値でスクリプトが微妙に破損する場合があります。