CMakeビルドシステムを使用して、いくつかのライブラリといくつかの実行可能ファイルをビルドします。ビルド製品はすべて特定のフォルダーに出力されます。
ここで問題となるのは、VS2010とVS2008のツールチェーンがありますが、必要なのはVS2008ライブラリ用のVS2008ツールチェーンだけです。出力実行可能ファイルは両方のツールチェーンのwin32ターゲットであるため、VS2010ツールチェーンを介して実行可能ファイルを1回ビルドするだけで済みますが、VS2008ツールチェーンは実行可能ファイルをスキップして目的のライブラリのみをビルドする必要があります(ビルド時間を節約できます)。
CMakeの基本スクリプトと全体的なセットアップも将来的に顧客に提供される可能性があるため、CMakeで、一般的な方法ですべての実行可能ファイルなどの特定のターゲットを無効にする方法があると非常に便利です。それ以外の場合は、 CMakeで実行可能ファイルのセットアップを忘れたときにエラーが発生することなくIF( BUILD_EXECUTABLES ) ... ENDIF()
、実行可能ファイルのセットアップの周りに多くの大きな構造を作成する必要があります。CMakeLists.txt
ビルドは、いくつかのバッチファイルを介してトリガーされます。理想的には、オプションをcmake
介して変数を渡したい(例)-D
-D BUILD_EXECUTABLES=false
マクロをラップしようとしましたが、存在しないターゲットについて文句を言うADD_EXECUTABLE
ような呼び出しがあるため、機能しません
。TARGET_LINK_LIBRARIES
出力ディレクトリを後で削除できるガベージフォルダに設定することもできますが、(すでに述べたように)ビルド時間を節約することはできません。(非常に大きなプロジェクトがあります。)
クリーンで一般的な方法でそれを達成する方法についてのアイデアはありますか?