このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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 Studio Project 2022 | 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 Studio Project 2022 | 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 コンフィギュレーション (CMakeLists.txt
) を生成します。
コードのみを生成して、アルゴリズム エクスポート用に CMake コンフィギュレーション ファイルを使用する場合は、cmake
の実行時に CMAKE_POSITION_INDEPENDENT_CODE
変数を設定することで既定の動作をオーバーライドできます。
cmake -S pathToSource -B pathToProposedLocationOfDerivedFiles
-DMATLAB_ROOT=pathToUnzippedmlrFiles -DCMAKE_POSITION_INDEPENDENT_CODE=OFF
カスタム ツールチェーンを定義する場合は、target.CMakeBuilder
クラスの CommandLineCacheEntries
プロパティを使用して変数を設定できます。
toolchain = target.create('Toolchain','Name','My Toolchain','MakeToolType','CMake'); toolchain.Builder.CommandLineCacheEntries(end+1) = ... target.create('CMakeCacheEntry','Name','CMAKE_POSITION_INDEPENDENT_CODE','Value','OFF');
事前定義済みのツールチェーンを使用する場合は、before_make
ビルド フックまたは PostCodeGenerationCommand
フックで次のコードを使用できます。
cfg = coder.make.CMakeListsConfiguration(buildInfo);
cfg.PositionIndependentCode = 'Off';
生成された Microsoft Visual Studio ソリューションの位置の特定
モデルに Microsoft Visual Studio プロジェクト ツールチェーンを指定すると、ビルド プロセスでは、ソリューション (.sln
) ファイルと各種プロジェクト (.vcxproj
) ファイルがビルド フォルダーに作成されます。この例では、生成されたソリューションを見つける方法について説明します。
CounterModel
を開きます。openExample("CounterModel");
Microsoft Visual Studio Project 2019 | CMake (32-bit Windows)
ツールチェーンを指定します。set_param(gcs, ProdHWDeviceType="Intel->x86-32 (Windows32)"); set_param(gcs, Toolchain="Microsoft Visual Studio Project 2019 | CMake (32-bit Windows)");
モデルをビルドします。
slbuild("CounterModel");
(プロジェクトを含む) 生成されたソリューションを見つけるには、次を実行します。
dir(fullfile(pwd, "**", "*.sln"))
Files Found in: C:\Users\myName\exampleFolderPath\CounterModel_ert_rtw\build CounterModel.sln
参考
トピック
- カスタムの CMake ツールチェーン定義の作成
- Deploy Component Algorithm as Component Model Library by Using CMake (Embedded Coder)
- 生成コードの移動または共有
- 別の開発環境でのコードのコンパイル
- SIL シミュレーションおよび PIL シミュレーション (Embedded Coder)
- エクスターナル モード シミュレーションによるパラメーター調整、信号監視、コード実行プロファイリング