CMake を使用して、クロス プラットフォーム/クロス コンパイラ ソリューションを構築する予定です。次のようなツリーを想像してください。
事業 |__含める |__src |__buildrules
ディレクトリ buildrules には、私の CMake 拡張機能と共通のサブプロジェクト オプションに加えて、さまざまなプラットフォーム (.sh .bat ファイル) でビルドを開始するためのいくつかのスクリプトが含まれます。同じソース ツリーを使用して、異なるコンパイラ/構成を使用してビルドするつもりです。したがって、NT では、開発用の VS プロジェクト ファイルと、コマンド ライン バッチ ビルド用の NMake メイクファイルを作成できる必要があります。Linux では、同じツリーを使用して、32/64 バリアントで異なるコンパイラ (gcc、clang、icc) を使用してビルドできます。したがって、buildrules は CMake キャッシュのディレクトリではありません。構成/ジェネレーターごとに異なる名前 (構成/ジェネレーターに固有の名前) の異なるビルド ディレクトリが必要です。
現在、ほとんどすべての CMake チュートリアルは、「ビルド サブディレクトリを作成し、cmake を実行し、make を実行する」といった内容から始まります。これは私にはむしろ望ましくないようです。「シングルクリック」で実行できるように、完全に自動化されたビルドシステムが必要です。buildrules (たとえば、ショートカット バッチ ファイルの 1 つ) からいくつかのコマンドを実行できるようにしたいのですが、プロジェクト ルートの下に適切な名前のビルド ディレクトリを作成し (まだ存在しない場合)、そのディレクトリで cmake を実行してキャッシュを生成します (以前に行われていなかった場合)、正しいツールを呼び出してビルドを開始します。UNIX では make を呼び出し、Windows コマンド ラインでは nmake を呼び出し、VC ソリューションではツールを開始するか、バッチ ビルドを呼び出します。
最も重要なことは、これらすべてを cmake 自体で実行したいということです。さまざまなプラットフォーム固有のツールを使用して、さらに別の移植性レベルを作成したくありません。私が許容できる唯一のプラットフォーム固有のものは、cmake cmake.exe の違いです。
それで、あなたはこれができると思いますか?
誰かがこのセットアップで私を助けてくれれば、本当に感謝しています。
ありがとうございました。