...
これ らのユーティリティは、プロジェクトを自動作成するために C++test が使用できる既存のコードの ビルド プロセスから情報を収集します。ユーティリティが収集した情報を使って、プロジェクトを ビルドして手動で構成することもできます。
...
ビルド データ ファイルの概念
作業ディレクトリ、コンパイルのコマンドライン オプション、オリジナル ビルドのリンク プロセス といったビルド情報は、「ビルド データ ファイル」というファイルに保存されます。以下のサンプル はビルド データ ファイルからの抜粋です。
...
Note | ||
---|---|---|
| ||
以下の条件に当てはまる場合、必要な環境変数もビルド データ ファイルに格納できます。
以下の |
...
cpptestscan または cpptesttrace を使ってビルド データ ファイルを作成する
Anchor | ||||
---|---|---|---|---|
|
...
オプション | 環境変数 | 説明 | デフォルト | |
---|---|---|---|---|
-- cpptestscanOutputFile= <OUTPUT_FILE> -- cpptesttraceOutputFile= <OUTPUT_FILE> | CPPTEST_SCAN_OUTPUT_FILE) | ビルド情報を追加するファイルを定義します。 | cpptestscan.bdf | |
| CPPTEST_SCAN_PROJECT_NAME | C++test プロジェクトの名前を定義します。 | 現行の作業 ディレクトリの名前 | |
| CPPTEST_SCAN_RUN_ORIG_CMD | yes の場合、オリジナル コマ ンドラインが実行されます。 | yes | |
| CPPTEST_SCAN_QUOTE_CMD_LINE_MODE | C++test がコマンドラインの 実行を準備するときに、どのよ うにパラメーターを引用符で囲 むかを指定します。
cpptestscanQuoteCmdLineMode はLinux ではサポートさ れません。
| all | |
| CPPTEST_SCAN_CMD_LINE_PREFIX | [empty] ではなく、かつオリ ジナル実行ファイルの実行がオ ンの場合、指定のコマンドがオ リジナル コマンドラインの前 に付けられます。 | [empty] | |
| CPPTEST_SCAN_ENV_IN_OUTPUT | yes の場合、選択した環境変数 とコマンドライン パラメー ターが出力ファイルにダンプさ れます。 さらに詳しく設定する には --cpptestscanEnvFile または --cpptestscanEnvars オプ ションを使用します。 | no | |
| CPPTEST_SCAN_ENV_FILE | 有効な場合、指定したファイルにはすべてのビルド コマンドに共通の環境変数が保持されま す。メインの出力ファイルは差分だけを保持します。メインの出力ファイルのサイズを縮小す るには、このオプションを使用します。 --cpptestscanEnvInOutput を有効にしてこのオプションを使用してください。 | [empty] | |
| CPPTEST_SCAN_ENVARS | ダンプする環境変数名を指定するか、'*' を選択してすべての環境変数を指定します。 --cpptestscanEnvInOutput を有効にしてこのオプションを 使用してください。 | * | |
| CPPTEST_SCAN_USE_VARIABLE | スキャンされたビルド情報中の各 "VALUE" 文字列を "${VAR_NAME}" 変数の使用で置き換えます。 | [empty] | |
-- cpptesttraceTraceComm and | CPPTEST_SCAN_TRACE_COMMAND | ビルド プロセス情報を収集するときにトレースするコ マンド名を定義します。コ マンド名は正規表現で指定 します。コマンド名はビルド プロセスで使用されるオ リジナルのコンパイラ/ リ ンカー コマンドと一致しな ければなりません。 |
例: cpptestscan を使用するように GNU make ビルド コマンドを変更 する
...
- コンパイラの接頭辞として cpptestscan を使用し、CMake を使って Makefile を再生成します。PATH 変数で cpptestscan の実行ファイルが設定されていることを確認してください。
オリジナルの CMake コマンドが
cmake -G “Unix Makefiles” ../project_root
である場合、既存の CMake のキャッシュを削除して cmake を実行し、コンパイラ変数を上書きします。次の例は、C コンパイラとして gcc を使用し、 C++ コンパイラとして g++ を使用するものとします。Code Block rm CMakeCache.txt CC="cpptestscan gcc" CXX="cpptestscan g++" cmake -G "Unix Makefiles" ../project_root
- CMakeCache.txt ファイルを参照して、CMAKE_*_COMPILER 変数が cpptestscan をポイントしているかどうかを確認します。
- Makefile が再生成される場合、ステップ 5 に進みます。コンパイラが認識されなかったためにブートストラップのフェーズで cmake が失敗した場合、そのままステップ 2 に進みます。
以下の BASH スクリプトを作成して、CMake コンパイラのように振る舞う
cpptestscan
ラッパー スクリプトを用意します。この例では、C コンパイラとして gcc を使用し、C++ コンパイラとして g++ を使用するものとします。Code Block >cat cpptest_gcc.sh #!/bin/bash cpptestscan gcc --cpptestscanRunOrigCmd=no $* > /dev/null 2>&1 gcc $* exit $? >cat cpptest_g++.sh #!/bin/bash cpptestscan g++ --cpptestscanRunOrigCmd=no $* > /dev/null 2>&1 g++ $* exit $?
- 1 番目のスクリプトは
cpptestscan
を起動し、コンパイラを実行せずにオプションを抽出します。2 番目のスクリプトは実際のコンパイラを実行します。その目的は、CMake によって「認められる」ためにスクリプト全体が見た目も動作もコンパイラのようになるためです。
- 1 番目のスクリプトは
- 2 つのスクリプトに実行可能属性を与えて共通の場所に置き、Makefile をスキャンする必要があるユーザーが皆スクリプトにアクセスできるようにします。PATH 変数に
cpptestscan
とスクリプトを必ず設定してください。 - 用意されたスクリプトから Makefile を再生成するオプションを使ってオリジナルの CMake コマンドを拡張します。CMake を使って、コンパイラとして使用されるスクリプトによって Makefile を再生成します。
オリジナルの CMake コマンドが
cmake -G “Unix Makefiles” ../project_root
である場合、既存の CMake のキャッシュを削除して cmake を実行し、コンパイラ変数を上書きします。次の例は、C コンパイラとして gcc を使用し、 C++ コンパイ
ラとして g++ を使用するものとします。Code Block rm CMakeCache.txt cmake -G "Unix Makefiles" -D CMAKE_C_COMPILER=cpptest_gcc.sh -D CMAKE_CXX_COMPILER=cpptest_g++.sh ../project_root
- CMakeCache.txt ファイルを参照し、用意されたラッパーを CMAKE_*_COMPILER 変数がポイントしているかどうかを確認します。
cpptestscan
の環境変数を設定します。 出力する .bdf ファイルを必ず絶対パスで指定してください。Code Block export CPPTEST_SCAN_PROJECT_NAME=my_project export CPPTEST_SCAN_OUTPUT_FILE=$PROJ_ROOT/cpptestscan.bdf
- どの make 変数も上書きすることなく、通常と同じようにプロジェクト ビルドを実行します。 CPPTEST_SCAN_OUTPUT_FILE 変数で定義された場所にビルド データ ファイルが生成されます。この変数を設定していない場合は Makefile の場所に生成されます。
...
make ベースではないビルド システムの場合、cpptestscan と cpptesttrace の使用方法は上記の例と非常に似ています。通常、コンパイラはビルド スクリプト中のどこかで変数として定義されます。cpptestscan を使ってこのビルド システムからビルド データ ファイルを作成するには、オリジナルのコンパイラ実行ファイルに接頭辞として cpptestscan を付加します。cpptesttrace を使ってこのビルド システムからビルド データ ファイルを作成するには、ビルド コマンド全体に接頭辞として cpptesttrace を付加します。
Info |
---|
いつ cpptestscan を使うべきかビルド データ ファイルを準備する手続きをビルド システムに統合することを強く推奨します。統合すると、通常のビルドを実行するときに、別のアクションを実行することなく、ビルド データファイルを生成することができます。 それには、Makefile またはビルド スクリプトで、 コンパイラとリンカーの実行ファイルに接頭辞として cpptestscan を付加します。 いつ cpptesttrace を使うべきかMakefile / ビルド スクリプトを変更できない場合、またはビルド コマンドラインからコンパイラ/ リンカーの実行ファイルに接頭辞を付加するのがあまりにも複雑な場合、ビルド コマンド 全体の接頭辞として cpptesttrace を使用します。 |
GUI ウィザードで BDF ファイルをインポートしてプロジェクトを作成する
Anchor | ||||
---|---|---|---|---|
|
C++test でテストしたいプロジェクトのビルド データ ファイルを cpptestscan
または cpptesttrace で作成したら、プロジェクト作成ウィザードを使って C++test プロジェクトを作成できます。
Info | ||
---|---|---|
| ||
カスタム コンパイラを使用している場合、GUI ウィザードを開く前に、カスタム コンパイラを追加してください。詳細については「カスタム コンパイラを使用するテストの設定」を参照してください。 |
...
カスタム プロジェクト設定は、プレーン テキストのオプション ファイルで設定できます。-localsettings
スイッチを使ってオプション ファイルを cpptestcli
に渡します。詳細については「ローカル設定ファイル Testing from the Command Line Interface」の「ローカル設定ファイル (オプション ファイル)」 を参照してください。
例
ここでは、cpptestscan
を使ってコマンドラインから C++test プロジェクトを作成する方法について説明します。この例では C++test の ATM サンプルを使用します。このサンプルは<INSTALL_DIR>/Examples/ATM
ディレクトリにあります。
...
生成されたビルド データ ファイルを使って、GUI またはコマンドラインからプロジェクトを作成することができます