Auto CCTs
製品付属のStatic CCT
と異なり、この方法で生成されたCCTは使用されたコンパイラオプション特有の設定を持ちます。
例えば、特定のC++標準規格をサポートする適切な設定はビルドシステムで使用されている--std
フラグに応じてCCT内に配置されます。
これにより、より正確な解析結果を出すことができますし、標準のCCTを手動で更新するよりも時間を短縮できます。生成されたCCTはユーザデータ領域に格納され、generated_cct_C.cct
または、generated_cct_CPP.cct
という名前が付けられプロジェクトフォルダにもコピーされます。
他のプロジェクトに対する新たなCCTを生成すると、ユーザデータ領域に格納されている前のプロジェクトのために作成されたCCTのテンポラリコピーが上書きされます。
すべての同期のタイプはCCTを生成することができますが、すべてが同じレベルのものを生成できるわけではなく、他にくらべて限りのあるものもあります。これは多くの要素に左右されます。通常、INJECT
と MONITOR
が最も完成したCCTを提供します。
JSON
および、BUILD_LOG
同期方法には以下の制限事項があります。
- 同期が子プロセスの検査(これはコンパイラが他のコンパイラのフロントエンドでしかない場合、不可欠)ができない場合、CCTの生成は失敗します。
- この方法の使用中に実行中のプロセスから環境に関する情報をコピーすることができないため、コンパイラを起動する必要があります。CCTの生成に失敗した場合、GUIにエラーが表示されます。CLI はリターンコード26を返します。
CCTの生成にはコンパイラの情報を取得するために必ずコンパイラを呼出す必要があります。これは JSON
および、BUILD_LOG
同期メソッドを使用したときにも適用されます。
CCT の生成が有効になっている同期を実行するときにコンパイラの呼出しができない場合、同期は失敗します。
INJECT (またはMONITOR)を使用した同期の例
INJECTを実行スクリプトまたは、コマンドのパラメータとして使用することにより、ビルドプロセスが開始されます。ビルドが実行されるとプロセスがモニタされ、ソースファイルおよび従属情報が抽出され、指定されたPerforce QACプロジェクトに追加されます。
これにより、現在のディレクトリでLinux / UNIX
の「make」
コマンドが実行され、現在のディレクトリ内のすべてのビルドファイルと依存関係がPerforce QACプロジェクトに同期されます。
コンパイラがサポートされていない場合でも、同期処理は検知したファイルを追加しますが障害がレポートされ、コマンドはゼロでなエラーコードを返します。このコンパイラのサポートを以降のリリースで必要とする場合、ログレベルをTRACE
にセットし、コンパイラの詳細と共にログファイルの結果を東陽テクニカに送付してください。
Auto CCT
をサポートするコンパイラを表示するには、以下のコマンドを使用します。
使用するコンパイラはAuto CCT
の生成に対応しているけれども、実行ファイル名が求められる形式でない場合、QAC_QAINJECT_PROG
環境変数により既存のフィルタに実行ファイルをマッピングすることが可能です。
例えば、GNU
コンパイラの実行ファイル名が gcc100
である場合、実行ファイルは環境変数を gcc100=qa_gnu
と設定することにより既存のGNU
フィルタにマッピングすることができます。さらに、各設定間にカンマを加えることで複数のマッピングを指定することが可能です。例: