手動によるプロジェクトの作成は、常に利用可能なオプションです。手動で作成する方が時間がかかりますが、プロジェクトの内容と設定をより細かく制御できます。 ユーザーは、プロジェクトの内部に対する理解によって、自動生成プロジェクトの設定を調整したり、問題があった場合にプロジェクトを修復/再設定することができます。
プロジェクトを作成する
「プロジェクトの作成と構成」の説明にあったように、C++test プロジェクトは単なる CDT プロジェクトです。 C++test は、 独自の拡張/設定をC/C++ プロジェクトに追加するにすぎません。手動の C/C++ プロジェクト ウィザードを起動するには、「GUI からの C++test プロジェクトの作成」の説明のいずれかの方法を使ってプロジェクトを作成します。
プロジェクトを構成する
次に、適切なビルド設定を行う必要があります。この構成の詳細については 「プロジェクトとファイルのオプション設定」 を参照してください。ここでは、Tornado ベースのプロジェクトを構成するために重要な点についてだけ説明します。
オプション設定を参照し変更するには、次の操作を行います。
- プロジェクトのノードを右クリックし、ショートカット メニューの [プロパティ―] をクリックします。 [プロパティ] ダイアログが開きます。
- [Parasoft] > [C++test] > [ビルド設定] を選択します。
- 設定を確認し、必要に応じて変更します。(設定の詳細については、この後のセクションで説明します)。
まず、オプション ソースの設定を確認します。[Wind River Tornado プロジェクトのオプションを使用] または [ビルド システムのオプションを使用] を選択します。その他の利用可能なオプションは、選択したオプション ソースによって異なります。
[ビルド システムのオプションを使用] の設定
最初にプロジェクトを作成したとき、そのオプション ソースとしてデフォルトで [ビルド システムのオプションを使用] が設定されます。次のオプションを使ってプロジェクト設定を指定します。
- ビルド コマンド ライン: ビルド システムを起動するコマンドラインを入力します。このビルド システムは抽象になりえますが、デフォルトでは、make ベースのビルド システムが想定されて適切なコマンドがあらかじめ設定されます。コマンドはプロジェクトの Makefile でmake を実行し、プロジェクトのコンパイルおよびリンク オプションをスキャンします。 したがって、${CPPTEST_SCAN} マクロの背後にある特別なスキャナーが C/C++ コンパイラおよびリンカーを代替します。 -i および -B make オプションが非常に有効です (詳細については 「make ツールの差異と -i / -B オプション」 を参照)。また、make ターゲットとして起動する Tornado プロジェクトのルールを選択する必要があります。 ( 「Tornado プロジェクトのルールを使用する」を参照)
- ビルド作業ディレクトリ: ビルド コマンドを起動するディレクトリを指定します。
- 従属ファイル: テスト/ビルド アクションが実行されるたびに、変更があるかどうかをチェックするファイルを指定します。変更されたファイルが発見されると、ビルド コマンドは再実行されます。プロジェクトのオプションのソースとなる (あるいはオプションに影響を与える) すべてのファイルを指定する必要があります。通常は Makefile だけです。
[Wind River Tornado プロジェクトのオプションを使用] の設定
Tornado プロジェクト ファイルから直接オプションを抽出する場合、オプション ソースを [Wind River Tornado プロジェクトのオプションを使用] に設定します。次のオプションを使ってプロジェクト設定を指定します。
- Project file (.wpj): Tornado プロジェクト ファイルへのパスを指定します。
- ビルド コンフィギュレーション: プロジェクト ファイルから読み取られた利用可能なビルド構成の中から選択します。ビルド構成を再スキャンするには、[リフレッシュ] ボタンをクリックします。
2 つのオプション ソースに共通の設定
以下の設定は、両方のオプション ソースに共通です。
キャッシュのリセット スキャンしたすべてのオプションを消去して、次のテスト アクション時に強制的に再スキャンを実行します。例外については 「make ツールの差異と -i / -B オプション」 を参照してください。
コンパイラ設定 プロジェクト のソースのコンパイラおよびテスト用実行モジュール (Tornado/VxWorks の場合、再配置可能テスト) のビルドのために使用するコンパイラ セットとツールを指定できます。以下のオプションがあります。
- 種類: 現在登録されているすべてのコンパイラ から適切な種類コンパイラを選択します。
- Tornado のために設計された種類のリストについては 「サポートされる Tornado のバージョンとコンパイラ」を参照してください。
- カスタム コンパイラ ウィザードを使って、コンパイラの種類を複製/インポートできます。詳細については 「カスタム コンパイラ定義の追加」を参照してください。
- [自動検出] ボタンをクリックすると、コンパイラ実行ファイル セットおよびコンパイラの構成ディレクトリに格納されたコンパイラ バージョンの正規表現に基づいて、コンパイラの種類が自動検出されます。ただし、組込みソリューションで利用されているコンパイラは広範囲にわたるため、必ずしも期待される結果にならないことがあります。
- C コンパイラ: C コンパイラの実行ファイルを指定します。
- C++ コンパイラ: C++ コンパイラの実行ファイルを指定します。
- リンカー: リンカーの実行ファイルを指定します。
オプション コンパイルとリンクのオプションを指定できます。これらのオプションは、通常のホスト ベースのテストではほとんど使用されませんが、組込みテストでは役に立つ場合があります。 以下のオプションがあります。
- コンパイラ オプション: デフォルト値は
${cpptest:original_options} -DPARASOFT_CPPTEST
です。このオプションに必要なプラットフォーム依存オプションをアペンドします。詳細については 「ターゲット/プラットフォーム依存のオプションの設定」を参照してください。 - リンカー オプション: デフォルト値は
${cpptest:original_options}
です。単体テストを実行する場合、C++test ランタイム ライブラリへのパスをこのオプションにアペンドします。C++test ランタイム ライブラリのビルドについての詳細は、「ランタイム ライブラリのビルド」 を参照してください。 - ランタイム ライブラリ ソース: デフォルト値は
${cpptest:engine_loc}/runtime
です。別のランタイム ライブラリのソースを指定できます。詳細については 「ランタイム ライブラリのビルド」を参照してください。
make ツールの差異と -i/-B オプション
あらゆる make ツールは Makefile を解釈して実行するように設計されていますが、その機能、オプション、動作はベンダーとビルドによって異なるだけでなく、make ツールの直接の使用によってさえも異なります。make を使用する場合、予想外の問題が起こらないように、その機能と欠点を把握することが重要です。多くの場合、特に別のバージョンでは動作することがわかっている場合に make の出力をモニターして問題を診断するのは困難です。
次の 2 つの make オプションは C++test で頻繁に使用されますが、make のバージョンによっては利用できないことがあります。
- -i - Makefile コマンドからエラーが返っても、make を継続します。
- -B - ターゲットを無条件に呼び出します。従属関係を解決しますが、タイムスタンプの差異は無視します。
ご使用の make が -i
オプションをサポートしていない場合、ビルド コマンドがエラーなしで必ず実行するようにしてください。さもないと、プロジェクト中のファイルにおいてオプションをスキャンできないファイルが出てきます。
make が -B
オプションをサポートしていない場合、ユーザーが適切なソース (またはすべてのソース) にタッチするかプロジェクトをクリーンしない限り、従属ファイルが変わったときまたは [キャッシュのリセット] ボタンをクリックしたときに、C++test は過去にビルドしたプロジェクトを再スキャンしません。make が開始され、最新の状態であるという意味のメッセージが表示され、何も実行されません。この場合、スキャンの進行中にタッチ/クリーンを行う特別な make ターゲットを作成するのが有効かもしれません。
重要! Tornado の GNU make-3.74 は -B オプションをサポートしていません。
Tornado プロジェクトのルールを使用する
プロジェクトをビルドするために、Tornado は特別なデフォルト ルールまたはユーザー定義ルールを実行します。
デフォルト ルールは変更できません。その名前と番号は Tornado プロジェクト タイプに依存します。C++test でのテストに推奨する、ダウンロード可能なアプリケーション モジュールの場合、次の 3 つのデフォルト ルールがあります。
- <project_name>.out: テスト用実行モジュール (再配置可能テスト) をビルドします。
- objects: コンパイラだけを実行します。
- archive: コンパイルを実行し、その結果生成されるオブジェクトをアーカイブします。
デフォルト ルールと異なり、ユーザー定義ルールは追加、編集、削除できます。
ルールはビルド構成とは独立して存在します。各ビルド構成は 1 つのルールを持ち、このルールを実行します。ルールは Tornado 生成の Makefile で表現されます。プロジェクトのディレクトリ内から make <target>
を実行して、コマンドラインからプロジェクトをビルドできます。
このとき、ターゲットはデフォルト ルールまたはユーザー定義ルールから取得される可能性があります。( 環境がビルドコマンドを実行するときに、プロジェクトの Makefile が再生成される点に注意してください。そのため、プロジェクトの Makefile は .wpj プロジェクト ファイルに比較して古い可能性があります)。同じことが C++test プロジェクト ビルド コマンドに当てはまります。ほとんどの場合、 必要な作業は "<project_name>.out
" をアペンドすることだけです。