Linux、Windows、および Mac OS X (32 ビットと 64 ビットの両方) で実行される中規模の C++ プロジェクトがあります。一部のプラットフォームでは、複数のバリアントがあります (Linux の Gtk-2 および Gtk-3 バリアントなど)。主に趣味のプログラマであるため、各プラットフォーム専用のビルド マシン用のリソースはありません。そのため、すべてのビルドが Linux ボックスで行われるように、それぞれにクロスコンパイラをインストールしました。
1 つのコマンドで 10 種類ほどのバリアントすべてをビルドできるようにしたいと考えています。今のところ、makefile を作成する簡単で汚い Python スクリプトを使用してこれを実現しています (実際、最近 ninja に切り替えましたが、あまり関連性がないと思います)。バリアントごとに Windows インストーラー、Debian パッケージなどを作成します。しかし、プロジェクトが大きくなるにつれてスクリプトがうまくスケーリングされないため、よりクリーンなソリューションが必要です。
私の質問は次のとおりです。複数のツールキット (クロスコンパイラ) とカスタム コマンド (インストーラーなどを作成するため) を処理できる単一の Makefile (または忍者ビルド ファイルのような類似のもの) を作成できるメタビルド ツールは何ですか?
CMake (およびその他のいくつか) を試しましたが、複数のツールキットを操作する方法がわかりません。ほとんどのツールは、構成ごとに 1 つの Makefile を作成するようです。
編集:今、この答えはそれが不可能であると主張しています。理由がわかりません。15 分間の Python スクリプトでそれを実行できるのであれば、それを実行できるツールが必要だと思います。