私のアプリケーションは、コア、多くの共有ライブラリ、およびこれらの共有ライブラリを使用する多くのプラグインで構成されています。option()
各プラグインを有効/無効にするためにcmakeコマンドを使用しています。
私がやりたいことは、有効なプラグインのいずれかで必要な場合にのみ、共有ライブラリをビルドしてインストールすることです。
共有ライブラリのディレクトリで次を使用してみました。
set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL true)
ただし、ターゲットはまだ Visual Studio でビルドされています。Linux の GNU make は、それらのビルドを正しく回避します。install()
ただし、必要なライブラリはどちらのシステムでもインストールされなくなりました。
私もライブラリターゲットに追加しようとしましたが、cmake はターゲットが無効になっている場合EXCLUDE_FROM_DEFAULT_BUILD false
の未定義の動作について不平を言いました。install()