このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
コード生成後のビルド プロセスのカスタマイズ
コード ジェネレーターは、コード生成後に必要なビルド プロセスをカスタマイズするために使用できる一連のツール (ビルド情報オブジェクトを含む) を与えます。ターゲットを開発したり、サードパーティ ツールをアプリケーション開発環境内へ統合したりするためにこのカスタマイズを使用できます。
カスタマイズを設定するためのワークフロー
次の図と手順に、コード生成後のカスタマイズを設定するための一般的なワークフローを示します。
該当する場合は、makefile の生成を抑制します。
モデルを作成します。
許容できるビルド結果になるまで、コマンドを変更してモデルをリビルドします。
ビルド情報オブジェクト
モデル ビルドの開始時に、ビルド プロセスは以下のビルド オプションと依存関係情報を一時的なビルド情報オブジェクトへ記録します。
コンパイラ オプション
プリプロセッサ識別子の定義
リンカー オプション
ソース ファイルとパス
インクルード ファイルとパス
プリコンパイル済みの外部ライブラリ
関数の多様なセットを使用して、このオブジェクトに関する情報の取得と追加を行うことができます。使用可能な関数の一覧および関数の詳細については、コード コンパイルのカスタマイズコード コンパイルのカスタマイズ (Embedded Coder)を参照してください。コード生成後のコマンドをプログラムで、関数を使用してコード生成後のビルド プロセスを制御する方法を説明します。
コード生成後のコマンドをプログラム
アプリケーションによっては、コード生成後にビルド プロセスの方法を制御することができます。このアプローチは、たとえば、自身のターゲットを開発したり、ビルド プロセスで作業を続ける前に解析ツールを生成コードに適用する場合に使用できます。コード生成後のコマンドをプログラムし、定義することによって、このレベルをビルド プロセスに適用することができます。
コード生成後のコマンドは、通常、モデルのビルド情報オブジェクトに関するデータの取得や追加を行う関数を呼び出す MATLAB® 言語ファイルです。コマンドをスクリプトや関数としてプログラムすることができます。
コマンドをプログラムするもの | 結果 |
---|---|
スクリプト | スクリプトはモデル名とビルド情報へのアクセスを直接得ることができます |
関数 | 関数はモデル名とビルド情報を引数として渡すことができます |
コード生成後のコマンドがユーザー定義の関数を呼び出す場合は、関数が MATLAB パス上にあることを確認してください。ビルド プロセスがコマンド内で使用する関数を見つけることができない場合は、ビルド プロセス エラーが発生します。
この場合、コード コンパイルのカスタマイズコード コンパイルのカスタマイズ (Embedded Coder)に記載されたビルド情報関数の組み合わせを呼び出すことにより、モデルのコード生成後のビルド プロセスをカスタマイズできます。
以下の例にコード生成後のコマンドの一部を示します。このコマンドは、解析用のモデルのために生成されたソース ファイルとインクルード ファイルのファイル名とパスを取得します。
function analyzegencode(buildInfo) % Get the names and paths of source and include files % generated for the model and then analyze them. % buildInfo - build information for my model. % Define cell array to hold data. MyBuildInfo={}; % Get source file information. MyBuildInfo.srcfiles=getSourceFiles(buildInfo, true, true); MyBuildInfo.srcpaths=getSourcePaths(buildInfo, true); % Get include (header) file information. MyBuildInfo.incfiles=getIncludeFiles(buildInfo, true, true); MyBuildInfo.incpaths=getIncludePaths(buildInfo, true); % Analyze generated code. . . .
コード生成後のコマンドを定義
コード生成後のコマンドのプログラムを作成した後、コマンドが存在していることをビルド プロセスに知らせ、モデルのビルド プロセスにそれを追加しなければなりません。PostCodeGenCommand
モデル コンフィギュレーション パラメーターでコマンドを定義します。コード生成後のコマンドを定義すると、ビルド プロセスは、生成コードを生成してディスクに書き込んだ後、makefile を生成する前にそのコマンドを評価します。
以下の構文行が示すように、コンフィギュレーション パラメーターを設定する時に指定する引数は、スクリプト、関数、または関数のセットとしてコマンドをプログラムするかどうかによりさまざまに異なります。
メモ
コマンドを関数として定義すると、任意の数の入力引数を指定することができます。関数にモデルの名前とビルド情報を渡すには、識別子 modelName
と buildInfo
を引数として指定します。
スクリプト
set_param(model, 'PostCodeGenCommand',... 'pcgScriptName');
関数
set_param(model, 'PostCodeGenCommand',... 'pcgFunctionName(modelName)');
複数のステートメントを実行する場合
pcgFunctions=... 'pcgFunction1Name(modelName);... pcgFunction2Name(buildInfo)'; set_param(model, 'PostCodeGenCommand',... pcgFunctions);
以下の set_param
への呼び出しは PostCodGenCommand
を定義し、関数 analyzegencode
を評価します。
set_param(model, 'PostCodeGenCommand',... 'analyzegencode(buildInfo)');
PostCodeGenCommand によるビルド プロセスのカスタマイズと生成コードの外部環境への再配置
この例では、ビルド情報プログラミング インターフェイスとモデル コンフィギュレーション パラメーター [コード生成後のコマンド] (PostCodeGenCommand
) を使用してビルド プロセスをカスタマイズする方法を説明します。この例では、[コード生成後のコマンド] は rtwdemo_buildinfo_data
に設定されます。ビルド プロセスは、コード生成の後その関数を呼び出します。
この例では、ビルド コンフィギュレーション関数 rtwmakecfg.m
を使用する方法も説明します。
モデル例を開く
モデル例 rtwdemo_buildinfo
を開きます。
open_system('rtwdemo_buildinfo');
モデルからのコードの生成
コードを生成します。コード ジェネレーターはファイル BuildInfo.html
を作成します。これは、ビルド情報オブジェクトをドキュメント化するものです。
ビルド プロセスのカスタマイズと出力の確認
ビルド プロセスのカスタマイズとビルド情報オブジェクトのコード生成後のクエリを確認します。Web ブラウザーでファイル BuildInfo.html
を開きます。このファイルは、モデル向けに作成されたコードを確認するのに使用できるハイパーリンクを提供します。あるいは、MATLAB コマンド ウィンドウで次を行います。
ビルド プロセスのコード生成後の段階中に実行されるよう構成された関数を表示するには、次のように入力します。
get_param('rtwdemo_buildinfo','PostCodeGenCommand');
ビルド情報オブジェクトのプログラミング インターフェイスを学習するには、次のように入力します。
rtwdemo_buildinfo_data(buildInfo);
例で関数
rtwmakecfg
がどのように使用されているかを学習するには、次のように入力します。
edit rtwmakecfg.m;
ビルド プロセスで
buildInfo.mat
ファイルに保存されるビルド情報オブジェクト データを表示するには、ファイルrtwdemo_<target>_rtw\buildInfo.mat
を開きます。
コード生成後の関数
rtwdemo_buildinfo_data.m
の内容を表示するには、次のように入力します。
edit rtwdemo_buildinfo_data.m;
ファイルの最後で、関数は packNGo
を呼び出して、ビルド情報オブジェクトが再配置のために識別するソース ファイルとオブジェクト ファイルをパッケージ化します。
関連するトピック
makefile 生成の抑制
コード ジェネレーターでは、ビルド プロセス中に makefile の生成を抑制できます。たとえば、makefile を使用しないビルド プロセスにツールを統合させるときにこのサポートを使用できます。
コード ジェネレーターに makefile を生成しないように指示するには、次のいずれかを行います。
[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成] ペインの [makefile の生成] オプションをオフにします。
コンフィギュレーション パラメーター
GenerateMakefile
の値をoff
に設定します。
makefile 生成を抑制する時には以下のような注意が必要です。
明示的に make コマンドまたはテンプレート makefile を指定することはできません。
コード生成後のコマンドをプログラムとコード生成後のコマンドを定義で説明するように、コード生成後のコマンド内でコード生成後のプロセス用の指示 (コンパイルとリンクを含む) を指定します。