コンポーネント

すべてのPerforce QACプロジェクトには少なくとも1つのコンポーネントが必要です。ほとんどのプロジェクトは複数のコンポーネントを使用します。コンポーネントには 以下の種類があります。

  • Primary:基本的な解析を提供します。翻訳単位で機能し、言語に特化しています。例えば、QAC(C言語)、QACPP (C++言語)など。
  • Secondary: Namecheck、M3CMなどのコンポーネントで、機能強化された則有の機能を提供します。翻訳単位ベースです。
  • Whole Program: RCMA、データフローなどのコンポーネントで、翻訳単位で生成されたすべての出力からプロジェクトレベルの解析を提供します。
以下のセクションでは component_key は<name>-<version>形式のフルフォーマット、"qac-9.3.0”の形式で表示されていますが、"qac” などコンポーネント名だけを指定することもできます。同一コンポーネントの複数のバージョンが設定されている場合、システムは最新のバージョンを選択します。
同じコンポーネントが、特定のプロジェクト内で複数のツールチェーンに存在する場合、 --toolchain (-T)オプションを使用した、曖昧さの除去が必要になります。
オプションの名前にダッシュ(-)を前置する必要はありません。例えば、-o enabledataflow、
-o -enabledataflow はどちらも有効です。

コンポーネントを一覧表示する

システム上の使用可能なコンポーネントを一覧表示するには以下のコマンドを使用します。

qacli pprops --list-components 

システム上の使用可能な、指定されたツールチェーンをサポートするコンポーネントを一覧表示するには以下のコマンドを使用します。

qacli pprops --list-components -T <toolchain> 

特定のプロジェクトで使用されているコンポーネントを一覧表示するには以下のコマンドを使用します。

qacli pprops --list-components -P <directory> 

指定したプロジェクトで使用された、特定のツールチェーンをサポートするコンポーネントを一 覧表示するには以下のコマンドを使用します。

qacli pprops --list-components -T <toolchain> -P <directory> 

プロジェクト内のツールチェーンにコンポーネントを追加する

プロジェクトにコンポーネントをを追加するには以下のオプションを使用します。

qacli pprops --add -c <component_key> -T <toolchain> -P <directory>

独立したコンポーネントをプロジェクトに追加するには--force-dependencies, -f オプションを使用します。

qacli pprops --add -c <component_key> --force-dependencies -P <directory>

プロジェクトからツールチェーンコンポーネントを削除する

プロジェクトからツールチェーンコンポーネントを削除するには以下のコマンドを使用します。

qacli pprops --remove -c <component_key> -T <toolchain> -P <directory> 

プロジェクトにおけるツールチェーンコンポーネントのアップグレード

コンポーネントをアップグレードするには、上記のコンポーネントを追加するコマンドを使用し、既存のコンポーネントをアップグレードします。しかし、RCFはアップグレードされません。

RCFもアップグレードしたい場合は以下のコマンドを使用します。

qacli project modify -P <directory> --rcf <rcf-path>

RCFファイルの置換、更新、マージには追加の --update-method オプションを使用します。以下の値が使用可能です。

  • replace(置換): ファイルは指定したものに置き換えられます。RCFではこれがデフォルトです。
  • update(更新): 既存のファイルが更新され、既存のコンポーネントのマッピングが置き換えられます。
  • merge(マージ): 既存のファイルが更新され、同じコンポーネントを持つ両方のファイルのルールセットがマージされます(マージする際に、新旧の値が異なる競合があった場合は、新しい値が使用されます)。

デフォルトのRCFを既に使用していて、デフォルトのマッピングが必要な場合は updateを選択してください。

RCFをカスタマイズした場所、カスタマイズを維持したい場所(可能な場合)を merge により指定します。