Main Content

コード生成後のビルド プロセスのカスタマイズ

コード ジェネレーターは、コード生成後に必要なビルド プロセスをカスタマイズするために使用できる一連のツール (ビルド情報オブジェクトを含む) を与えます。ターゲットを開発したり、サードパーティ ツールをアプリケーション開発環境内へ統合したりするためにこのカスタマイズを使用できます。

カスタマイズを設定するためのワークフロー

次の図と手順に、コード生成後のカスタマイズを設定するための一般的なワークフローを示します。

  1. コード生成後のコマンドをプログラムします

  2. コード生成後のコマンドを定義します

  3. 該当する場合は、makefile の生成を抑制します

  4. モデルを作成します。

  5. 許容できるビルド結果になるまで、コマンドを変更してモデルをリビルドします。

ビルド情報オブジェクト

モデル ビルドの開始時に、ビルド プロセスは以下のビルド オプションと依存関係情報を一時的なビルド情報オブジェクトへ記録します。

  • コンパイラ オプション

  • プリプロセッサ識別子の定義

  • リンカー オプション

  • ソース ファイルとパス

  • インクルード ファイルとパス

  • プリコンパイル済みの外部ライブラリ

関数の多様なセットを使用して、このオブジェクトに関する情報の取得と追加を行うことができます。使用可能な関数の一覧および関数の詳細については、コード コンパイルのカスタマイズを参照してください。コード生成後のコマンドをプログラムで、関数を使用してコード生成後のビルド プロセスを制御する方法を説明します。

コード生成後のコマンドをプログラム

アプリケーションによっては、コード生成後にビルド プロセスの方法を制御することができます。このアプローチは、たとえば、自身のターゲットを開発したり、ビルド プロセスで作業を続ける前に解析ツールを生成コードに適用する場合に使用できます。コード生成後のコマンドをプログラムし、定義することによって、このレベルをビルド プロセスに適用することができます。

コード生成後のコマンドは、通常、モデルのビルド情報オブジェクトに関するデータの取得や追加を行う関数を呼び出す MATLAB® 言語ファイルです。コマンドをスクリプトや関数としてプログラムすることができます。

コマンドをプログラムするもの結果
スクリプトスクリプトはモデル名とビルド情報へのアクセスを直接得ることができます
関数関数はモデル名とビルド情報を引数として渡すことができます

コード生成後のコマンドがユーザー定義の関数を呼び出す場合は、関数が MATLAB パス上にあることを確認してください。ビルド プロセスがコマンド内で使用する関数を見つけることができない場合は、ビルド プロセス エラーが発生します。

この場合、コード コンパイルのカスタマイズに記載されたビルド情報関数の組み合わせを呼び出すことにより、モデルのコード生成後のビルド プロセスをカスタマイズできます。

以下の例にコード生成後のコマンドの一部を示します。このコマンドは、解析用のモデルのために生成されたソース ファイルとインクルード ファイルのファイル名とパスを取得します。

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 を生成する前にそのコマンドを評価します。

以下の構文行が示すように、コンフィギュレーション パラメーターを設定する時に指定する引数は、スクリプト、関数、または関数のセットとしてコマンドをプログラムするかどうかによりさまざまに異なります。

メモ

コマンドを関数として定義すると、任意の数の入力引数を指定することができます。関数にモデルの名前とビルド情報を渡すには、識別子 modelNamebuildInfo を引数として指定します。

スクリプト

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) を使用してビルド プロセスをカスタマイズする方法を説明します。この例では、[コード生成後のコマンド]BuildInfoModel_data に設定されます。ビルド プロセスは、コード生成の後その関数を呼び出します。

この例では、ビルド コンフィギュレーション関数 rtwmakecfg.m を使用する方法も説明します。

モデル例を開く

モデル例 BuildInfoModel を開きます。

open_system('BuildInfoModel');

モデルからのコードの生成

コードを生成します。コード ジェネレーターはファイル BuildInfo.html を作成します。これは、ビルド情報オブジェクトをドキュメント化するものです。

ビルド プロセスのカスタマイズと出力の確認

ビルド プロセスのカスタマイズとビルド情報オブジェクトのコード生成後のクエリを確認します。Web ブラウザーでファイル BuildInfo.html を開きます。このファイルは、モデル向けに作成されたコードを確認するのに使用できるハイパーリンクを提供します。あるいは、MATLAB コマンド ウィンドウで次を行います。

  • ビルド プロセスのコード生成後の段階中に実行されるよう構成された関数を表示するには、次のように入力します。

get_param('BuildInfoModel','PostCodeGenCommand');

  • ビルド情報オブジェクトのプログラミング インターフェイスを学習するには、次のように入力します。

BuildInfoModel_data(buildInfo);

  • 例で関数 rtwmakecfg がどのように使用されているかを学習するには、次のように入力します。

edit rtwmakecfg.m;

  • ビルド プロセスで buildInfo.mat ファイルに保存されるビルド情報オブジェクト データを表示するには、ファイル BuildInfoModel_grt_rtw\buildInfo.mat を開きます。

  • コード生成後の関数 BuildInfoModel_data.m の内容を表示するには、次のように入力します。

edit BuildInfoModel_data.m;

ファイルの最後で、関数は packNGo を呼び出して、ビルド情報オブジェクトが再配置のために識別するソース ファイルとオブジェクト ファイルをパッケージ化します。

関連するトピック

makefile 生成の抑制

コード ジェネレーターでは、ビルド プロセス中に makefile の生成を抑制できます。たとえば、makefile を使用しないビルド プロセスにツールを統合させるときにこのサポートを使用できます。

コード ジェネレーターに makefile を生成しないように指示するには、次のいずれかを行います。

  • [コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成] ペインの [makefile の生成] オプションをオフにします。

  • コンフィギュレーション パラメーター GenerateMakefile の値を off に設定します。

makefile 生成を抑制する時には以下のような注意が必要です。

参考