2

マイクロコントローラを対象とするプロジェクトに CMake を使用することを検討しています。cmake -DCMAKE_TOOLCHAIN_FILE=Path/To/Toolchain.cmakeツールチェーン ファイルを作成し、 CMake にクロス コンパイルを実行させるために呼び出す方法を見つけました。

ただし、私が取り組んでいるほとんどのプロジェクトには、ホスト プラットフォーム用にコンパイルする必要があるコードもあります。多くの場合、これらは単体テストまたはその他のテスト ツールであり、コードの大部分をマイクロコントローラーで実行されるバイナリと共有します。まれなケースとして、異なる命令アーキテクチャを持つ 2 つのプロセッサを使用するプロジェクトがあり、ホスト コンパイラと 2 つの異なるクロス コンパイラが必要になることがあります。

それらすべてを支配する 1 つのビルドが必要です。を呼び出すだけでよい構造を持つことは可能ですか、それともターゲットごとにcmake /path/to/source && make複数の「ルート」ファイルを持つ唯一のソリューションですか?CMakeList.txt

4

1 に答える 1

2

各 cmake の実行は、1 つの特定のジェネレーター、つまり 1 つのプラットフォームをターゲットにします。

プラットフォームごとに CMakeLists ファイルの階層を 1 つ持つことで、目的を達成できます。cmake .. && make一連の呼び出しを行うことでプロジェクト全体が構築されるポイントに到達する必要があります。

ExternalProject_Add次に、カスタム コマンドを介して、またはカスタム コマンドを使用して、これらの個別のビルド ステップをすべて実行するマスター CMakeLists を作成します。プロジェクトの構造によっては、ビルドに必要なツールのみをこの方法で処理し、代わりに実際のプロジェクトのソースをマスター CMakeLists に直接追加することが理にかなっている場合があります。

于 2013-09-20T07:38:12.463 に答える