更新:これは、IDE を変更する方法には実際には答えません。これは、C++/Python/Java の一種の Maven 代替品です。ビルドするために IDE を変更する必要はありません。その場合は、別の IDE または IDE ファイルを生成/変更するシステムが必要です。(クロスプラットフォームの c/c++ プロジェクト ファイル ジェネレーターについては、CMakeを参照してください。)
私はシステムを作成しました (最初は 2 つの異なる場所で Ant/Beanshell で、次に現在の仕事で Python で書き直しました)。サードパーティは (誰かによって) 個別にコンパイルされ、保存され、HTTP 経由で共有されます。
やや急ぎの説明は次のとおりです。
開始時に、ビルド システムはリポジトリ内のすべてのモジュールを調べ、各モジュールのセットアップ ターゲットを実行します。これにより、現在のコード リビジョンが使用するサードパーティ ライブラリまたはアプリの特定のバージョンがダウンロードされます。次に、これらが解凍され、PATH/INCLUDE などが追加され (または、小さなライブラリの場合は、現在のリポジトリの単一のディレクトリにコピーされ)、Visual Studio が /useenv で起動されます。
各モジュールのファイルは、必要なものをチェックし、Visual Studio、Matlab、Maya などのインストールとライセンスが必要な場合は、ローカル コンピューター上にある必要があります。それが存在しない場合、cmd ファイルは適切なエラー メッセージで失敗します。このようにして、正しいバージョンがそこにあることを確認することもできます
そのため、関係するローカル ディスクには多数のディレクトリがあります。%work% は、グローバル環境変数を使用して設定する必要があります。少なくとも重い C++ を実行している場合は、システムまたはソース チェックアウトとは別のディスクを使用することをお勧めします。
- %work% <- すべての一時ファイル、解凍、および各作業コピーの一時ファイルのローカル ストア
- %work%/_cache <- ダウンロードした zip (2 GB)
- %work%/_local <- ローカル zip (開発用または旅行中に他の方法で取得するため)
- %work%/_unzip <- _cache (10 GB) 内のファイルの解凍
- %work%&_content <- テクスチャ/3D モデルおよびその他の大きなファイル (手動で同期、これは現在 5 GB で、VC にも適していません)
- %work%/D_trunk/ <- d:/trunk にチェックアウトされた作業コピーの保存
- %work%/E_branches/v2 <- e:/branches/v2 にチェックアウトされた作業コピーの保存
したがって、trunk が Boost 1.37 を使用し、branches/v2 が 1.39 を使用する場合、boost-1.39 と boost-1.37 の両方が /_cache/ (zip として) および /_unzip/ (raw ファイルとして) に存在します。
d:/trunk/BuildSystem/Visual Studio.cmd からのバット ファイルを使用して Visual Studio を起動すると、INCLUDE は /_unzip/boost-1.37 を指しますが、e:/branches/v2/BuildSystem/Visual Studio.cmd を実行すると、INCLUDE は /_unzip/boost-1.37 を指します。 /_unzip/boost-1.39.
リポジトリでは、小さなブートストラップ バイナリ セット (つまり、wget と 7z) のみを保存する必要があります。
現在、約 2 GB の圧縮データをダウンロードしており、これは 10 GB に解凍されます (pdb ファイルは巨大です!)。そのため、これをソース管理から除外することが不可欠です。このシステムを使用することで、SVN の代わりに Mercurial (または Git) などの DVCS を使用するのに十分なほどリポジトリのサイズを小さく保つことができます。これは非常に優れています。(個別に http サービスを提供するディレクトリの代わりに、Mercurials の bigfiles 拡張またはファイル共有を使用することを考えています。)
それは完璧に動作します。開発者は、チェックアウトし、ローカル キャッシュの環境変数を設定してから、リポジトリ内の特定のバッチ ファイルを介して Visual Studio を実行するだけです。解凍やコンパイルなどはありません。新しい開発者は、自分のコンピューターをすぐにセットアップできます。(Visual Studio のインストールには、桁違いに時間がかかります。)
初めて新しいコンピューターを使用するときは時間がかかりますが、その後はわずか数秒で完了します。ダウンロード/解凍はローカル コンピューターで共有されます。追加のブランチ/バージョンをチェックアウトしても、より多くのスペースを占有しません。オフラインでの作業も可能です。新しいファイルがアップロードされている場合は、zip ファイルを手動で取得するだけです。(このメカニズムは、サードパーティ ライブラリの新しいバージョン/コンパイルをテストするために不可欠です。)
基本はbitbucket のレポにありますが、公開する前にさらに作業が必要です。ドキュメントと磨きとは別に、次のことを計画しています。
- 生のvcprojファイルの代わりにcmakeを使用するように拡張して、よりクロスプラットフォームにします。
- サードパーティのパッケージのチェックアウト/ダウンロードから、それらのビルドと圧縮 (ダウンロードをローカル リポジトリに保存することを含む) までのプロセス全体をスクリプト化します...現在、それは私の開発コンピューターにあります。良くない。修正します。:)
moc に関しては、これを .vcproj ファイルに保存するQt の Visual Studio アドインを使用します。うまくいきます。私はCMakeがこれに対する最良の答えの1つであると思います