CMake ビルド プロセスの構成
CMake は、サードパーティが提供するオープンソースのビルド プロセス管理ツールです。Simulink® モデルから生成されたコードをビルドするために、このソフトウェアには以下に対する CMake ツールチェーン定義が用意されています。
Windows® 上の Microsoft® Visual C++® および MinGW®、Linux® 上の GCC、および Mac コンピューター上の Xcode (Ninja および makefile ジェネレーターを使用)。
Microsoft Visual Studio® および Xcode プロジェクトのビルド。
サポートされているツールチェーンが開発用コンピューターにインストールされている場合は、使用するモデルに対応する CMake ツールチェーン定義を指定できます。slbuild
を実行した場合、Ctrl+B を押した場合、またはソフトウェアインザループ (SIL)、プロセッサインザループ (PIL)、あるいはエクスターナル モード シミュレーションを実行した場合、CMake は以下を行います。
コンフィギュレーション (
CMakeLists.txt
) ファイルを使用して標準ビル ドファイルを生成する。コンパイラとその他のビルド ツールを実行して実行可能コードを作成する。
次のことも実行できます。
target
パッケージを使用して、カスタムの CMake ツールチェーン定義を提供する。詳細については、カスタムの CMake ツールチェーン定義の作成を参照してください。アルゴリズム エクスポート用のコードとコンフィギュレーション ファイルのみを生成する。
CMake ツールチェーン定義の指定
[コンフィギュレーション パラメーター] ダイアログ ボックスで、以下の操作を実行します。
[ハードウェア実行] ペインで、ターゲット デバイスのパラメーター値を指定します。これにより、使用可能なツールチェーン定義の選択を決定します。詳細については、使用可能な CMake ツールチェーン定義を参照してください。
[コード生成] ペインで、以下のパラメーターを指定します。
ツールチェーン — ドロップダウン リストから、CMake ツールチェーン定義を選択します。
ビルド構成 — 以下の値のいずれかを選択します。
Release
— 最適化が有効になります。Debug
— 最適化が無効になり、デバッグ シンボルが生成されます。RelWithDebInfo
— 最適化が有効になり、デバッグ シンボルが生成されます。MinSizeRel
— サイズについて最適化され、デバッグ シンボルが生成されません。Specify — [CMake Configure] フィールドおよび [CMake Build] フィールドでツールチェーンの詳細を指定できます。
ツールチェーンの詳細 — [ビルド構成] が
[Specify]
の場合、以下のフィールドに入力します。CMake Configure — 下流ツール用のプロジェクト ビルド システムのビルダー アーティファクトを生成する際に CMake に渡す追加のコマンド ライン引数。
CMake Build — CMake をビルド モードで使用する際に CMake に渡す追加のコマンド ライン引数。
詳細については、https://cmake.org/cmake/help/latest/manual/cmake.1.htmlを参照してください。
使用可能な CMake ツールチェーン定義
プラットフォーム | 付属のツールチェーン定義 | 定義を利用可能にするデバイス ベンダーとタイプ |
---|---|---|
Windows | Microsoft Visual C++ 2017 v15.0 | CMake/nmake (64-bit Windows) |
|
Microsoft Visual C++ 2017 v15.0 | CMake/Ninja (64-bit Windows) | ||
Microsoft Visual Studio Project 2017 | CMake (64-bit Windows) | ||
Microsoft Visual Studio Project 2019 | CMake (64-bit Windows) | ||
Microsoft Visual C++ 2019 v16.0 | CMake/Ninja (64-bit Windows) | ||
Microsoft Visual C++ 2022 v17.0 | CMake/nmake (64-bit Windows) | ||
Microsoft Visual C++ 2022 v17.0 | CMake/Ninja (64-bit Windows) | ||
MinGW64 | CMake/gmake (64-bit Windows) | ||
MinGW64 | CMake/Ninja (64-bit Windows) | ||
Microsoft Visual C++ 2017 v15.0 | CMake/nmake (32-bit Windows) |
| |
Microsoft Visual C++ 2017 v15.0 | CMake/Ninja (32-bit Windows) | ||
Microsoft Visual Studio Project 2017 | CMake (32-bit Windows) | ||
Microsoft Visual Studio Project 2019 | CMake (32-bit Windows) | ||
Microsoft Visual C++ 2019 v16.0 | CMake/nmake (32-bit Windows) | ||
Microsoft Visual C++ 2019 v16.0 | CMake/Ninja (32-bit Windows) | ||
Microsoft Visual C++ 2022 v17.0 | CMake/nmake (32-bit Windows) | ||
Microsoft Visual C++ 2022 v17.0 | CMake/Ninja (32-bit Windows) | ||
Linux | GNU gcc/g++ | CMake/gmake (64-bit Linux) |
|
GNU gcc/g++ | CMake/Ninja (64-bit Linux) | ||
Mac | Xcode with Clang | CMake/gmake (64-bit Mac) |
|
Xcode with Clang | CMake/Ninja (64-bit Mac) | ||
Xcode with Clang Project | CMake (64-bit Mac) |
メモ
[テスト ハードウェアを製品ハードウェアと同じにする] チェック ボックスがオフになっている場合、デバイス ベンダーとタイプ用の [テスト ハードウェア] 設定によって、付属のツールチェーン定義を利用できるかどうかが制御されます。
アルゴリズム エクスポート用のコードと CMake コンフィギュレーション ファイルのみの生成
生成されたコードを別の開発環境にエクスポートするには、以下のワークフローを使用します。
[コンフィギュレーション パラメーター] ダイアログ ボックスの [ツールチェーン] ドロップダウン リストから、
[CMake]
を選択します。このオプションでは、コード ジェネレーターは以下を行います。Simulink モデルから C および C++ ソース コードを生成するが、コードのビルドは行わない。
特定のビルド ツールに依存しない CMake コンフィギュレーション (
CMakeLists.txt
) ファイルを作成する。
[コードとアーティファクトのパッケージ化] チェック ボックスをオンにします。
コードを生成します。これにより、ソース コードと CMake コンフィギュレーション ファイルを含む ZIP ファイルが生成されます。
その ZIP ファイルを開発環境に移動します。
パッケージ化されたファイルを解凍します。
CMake ビルド ツールとコンフィギュレーション ファイルを使用して実行可能ファイルを作成します。
ZIP ファイルに mlrFiles.zip
(matlabroot
フォルダー ツリーからの静的依存関係) が含まれている場合は、CMake ビルド ツールに解凍したファイルの場所を指定する必要があります。開発環境で、以下のコマンドを実行して MATLAB_ROOT
CMake キャッシュ・エントリを設定します。
cmake -S pathToSource -B pathToProposedLocationOfDerivedFiles -DMATLAB_ROOT=pathToUnzippedmlrFiles
詳細については、Deploy Component Algorithm as Component Model Library by Using CMake (Embedded Coder)を参照してください。
参考
関連するトピック
- カスタムの CMake ツールチェーン定義の作成
- Deploy Component Algorithm as Component Model Library by Using CMake (Embedded Coder)
- 生成コードの移動または共有
- 別の開発環境でのコードのコンパイル
- SIL シミュレーションおよび PIL シミュレーション (Embedded Coder)
- エクスターナル モード シミュレーションによるパラメーター調整、信号監視、コード実行プロファイリング