qacli project create | modify

'create' サブコマンドは新しいPerforce QACプロジェクトを生成するのに使用し、'modify' サブコマンドは既存のPerforce QACプロジェクトを変更するのに使用します。


使用方法

project create:

project create  -P <directory> [-K <config name>] [-n <name>] [-A <acf-file>] [-R <rcf-file>] [-C <cct-file>] ...  [-a] [-U <user-messages-file>] [-V <vcf-file>] [--] [-h]

project modify:

project modify  -P <directory> [-K <config name>] [-n <name>] [-A <acf-file>] [-R <rcf-file>] [-C <cct-file>] ...  [-a] [-d] [-m <replace|update|merge>] [-U <user-messages-file>] [-V <vcf-file>] [--] [-h]


詳しい説明

qacli project create コマンドは新しいPerforce QACプロジェクトを生成しますが、以下の制約があります。

  • 指定したディレクトリパスに、Perforce QAC プロジェクトが存在してはならない
  • 指定したディレクトリは存在しなくてもかまわないが、その親ディレクトリは存在しなければならない
  • --qaf-project (-P)オプションの記述は必須だが、その他のオプションは任意である

任意の引数'--cct'は有効なコンパイラ互換テンプレートのパスである必要があります。指定されていない場合、デフォルトの"QAC_Generic_C.cct" "QAC_Generic_C++.cct” が使用される。つまり、CCTの一般的な用途は特定のコンパイラに紐づけされないということです。

複数のコンパイラをもつプロジェクトへサポートを追加するためにこの引数を複数回指定することができます。使用言語に最初に使用されたコンパイラはその言語のデフォルトコンパイラと判断されます。


任意の引数'--rcf'は有効なルール設定ファイルのパスである必要があります。指定されていない場合、デフォルトの"default-<locale>.rcf”が使用されます。英語環境では"default-en_US.rcf”、日本語環境では "default-ja_JP.rcf” になります。


任意の引数'--acf'は有効なコンパイラ互換テンプレートのパスである必要があります。指定されていない場合、デフォルトの "default.acf” が使用されます(C および、C++)。


任意の引数'--name'はプロジェクトの命名に使用することができます。プロジェクトの作成時にプロジェクト名を指定しない場合、親ディレクトリの名前がデフォルトで使用されます。有効なプロジェクト名には一定の制約があります。 詳細はファイル名を参照してください。


qacli project modify コマンドは既存のPerforce QACプロジェクトを変更するのに使用しますが、以下の制約があります。

  • 指定したディレクトリパスに、Perforce QAC プロジェクトが存在しなければならない

設定ファイルを更新するために任意の --update-method <replace|update|merge> 引数を使用することができます。このオプションはアップデートをどのようにインポートするかを指定します。詳細については、以下のオプション‑‑update‑method, ‑m (modify のみ) を参照してください。


任意の引数'--default' は指定したCCTを使用言語のデフォルトのCCTとして示唆するのに使用することができます。


ユーザメッセージファイルの管理

ユーザメッセージファイルを使用すると、各コンポーネントの独自のメッセージを既存、または新しく作成された診断番号に対して割当てることができます。必要に応じて、関連する html ヘルプファイルとメッセージのリファレンスを設定することもできます。

ユーザメッセージファイルは単純なXMLファイルで、手動またはGUIから作成することができます。詳細についてはユーザメッセージの作成を参照してください。

--user-messages オプションを qacli project create (または、 modify) と共に使用すると Perforce QAC  システムにユーザメッセージXMLファイルを追加します。

ユーザメッセージファイルは、個々のプロジェクトに対してではなく、Perforce QAC全体に適用されます。
XMLの構造をよく理解するために、GUIを使用して簡単なユーザメッセージファイルを作成し、それから、必要に応じてXML構造を複製することをお勧めします。

オプション

オプション名、短縮形 デフォルト 説明
‑‑acf, ‑A default.acf * 解析設定ファイルのパスを指定します。パスの代わりにファイル名が指定されている場合には、ユーザデータの保存先内を検索します。
‑‑auto‑cct, ‑a   プロジェクトの同期中に自動的に検知し、CCTを生成します。
‑‑cct, ‑C

QAC_Generic_C.cct *


QAC_Generic_C++.cct *

コンパイラ互換性テンプレートのパスを指定します。各ソース言語の最初のCCTはデフォルトCCTとして設定されます。パスの代わりにファイル名が指定されている場合には、ユーザデータの保存先内を検索します。
‑‑config, ‑K   複数の設定を持つプロジェクトに対しどの設定を使用するかを指定します。指定がない場合は、デフォルト設定が使用されます。
‑‑default, ‑d (modify のみ)   指定したCCTを使用言語のデフォルトのCCTとするようマークします。
‑‑help,‑h   使用方法の情報を表示し、終了します。
‑‑ignore‑rest, ‑‑   このフラグ以降のラベルの付いた引数をすべて無視します。
‑‑name, ‑n <親ディレクトリの名前>* 任意のプロジェクト名。プロジェクトの作成時にプロジェクト名を指定しない場合、親ディレクトリの名前がデフォルトで使用されます。特定の文字のみが使用可能です。 詳細についてはコンポーネントマニュアル、 付録 C のファイル名を参照してください。
‑‑qaf‑project, ‑P   Perforce QACプロジェクトへの有効なパスを指定します。
‑‑rcf, ‑R default-<locale>.rcf* ルール設定ファイルのパスを指定します。パスの代わりにファイル名が指定されている場合には、ユーザデータの保存先内を検索します。
‑‑update‑method, ‑m (modify のみ) 置換 設定ファイルをアップデートするときに、このオプションでどのようにアップデートをインポートするかを指定します。アップデートには3通りの方法があります。
  • 置換:既存のファイルが新しいファイルと置換されます。
  • 更新:既存のファイルが更新され、既存のコンポーネントマッピングが置き換えられます(RCF のみ)。
  • マージ:既存のファイルが更新され、同じコンポーネントの新、旧両方のファイルのルールセットがマージされます。新しく加えられたCCTが既存のCCTリストに追加されます(CCT のみ)。
‑‑user‑messages, ‑U   ユーザメッセージ設定ファイルのパスを指定します。パスの代わりにファイル名が指定されている場合には、ユーザデータの保存先内を検索します。
‑‑vcf, ‑V   バージョン管理設定ファイルのパスを指定します。パスの代わりにファイル名が指定されている場合には、ユーザデータの保存先内を検索します。

*プロジェクトを生成するときにはデフォルトの場所です。

基本のプロジェクト生成

以下のコマンドでプロキシコンパイラ(QAC Generic C および、 QAC Generic C++)を使用するPerforce QAC for CPerforce QAC for C++による1次解析が設定された新しいPerforce QACプロジェクトが生成されます。

qacli project create --qaf-project /home/kmac/sample_c 

デフォルトの解析メッセージが有効になり(すべてのメッセージ)、プロジェクトには sample_c という名前がつきます。

Auto CCT によるプロジェクト生成

以下のプロジェクト生成コマンドを使用したプロジェクトの同期中に、デフォルトACF、RCFをもつプロジェクトを生成し、自動的に検知しCCTを生成します。

qacli project create --qaf-project /home/kmac/sample_c --auto-cct 

詳細なプロジェクト生成

以下のコマンドでQACを使用し、gcc11.2コンパイラ、C++11用の設定がされたPerforce QACプロジェクトが生成されます。

qacli project create --qaf-project /home/kmac/sample_c --acf default_c.acf --rcf m3cm-5.5.0-en_US.rcf --cct GNU_GCC-gcc_11.2-unknown-C-c11.cct --name "Sample MISRA" 

デフォルトのMISRAメッセージが有効になり、プロジェクトには “Sample MISRA” という名前がつきます。

複数のCCTをもつプロジェクト生成

以下のコマンドでQACを使用し、g++11.2コンパイラ、C++11デフォルトのコンパイラをもつC++11およびC++14用の設定がされたPerforce QACプロジェクトが生成されます。

qacli project create --qaf-project /home/kmac/sample_c --cct GNU_GCC-g++_11.2-x86_64-generic-linux-C++-c++11.cct --cct GNU_GCC-g++_11.2-x86_64-generic-linux-C++-c++14.cct 

デフォルトの解析メッセージが有効になり(すべてのメッセージ)、プロジェクトには sample_c という名前がつきます。

プロジェクトのRCFを変更する

以下のMISRA C解析のセットアップをしたCプロジェクトを生成したとします。

qacli project create --qaf-project /home/kmac/sample_c --acf default_c.acf --rcf m3cm-5.5.0-en_US.rcf --cct GNU_GCC-gcc_11.2-unknown-C-c11.cct --name "Sample MISRA"

そこにMISRA C++のセットアップをしたC++をしたい場合、以下のようにコマンドに変更を加えることができます。

qacli project modify --qaf-project /home/kmac/sample_c --acf default.acf --rcf m2cpp-1.0.0-en_US.rcf --cct GNU_GCC-g++_11.2-x86_64-generic-linux-C++-c++11.cct –name "Sample MISRA C and C++" --update-method merge

このコマンドでQACを使用し、g++11.2コンパイラ、C++11デフォルトのコンパイラをもつC++11およびC++14用の設定がされたPerforce QACプロジェクトが生成されます。

デフォルトの解析メッセージが有効になり(すべてのメッセージ)、プロジェクトには sample_c という名前がつきます。

新しいCCTを追加する

以下のようなコマンドでプロジェクトを生成した場合:

qacli project create --qaf-project /home/kmac/sample_c --cct GNU_GCC-g++_11.2-x86_64-generic-linux-C++-c++11.cct

これに、C++14(デフォルトとして)を追加するには、以下のようにコマンドを変更します。

qacli project modify --qaf-project /home/kmac/sample_c --cct GNU_GCC-g++_11.2-x86_64-generic-linux-C++-c++14.cct --default --update-method merge

デフォルトのCCTを変更する

以下のようなコマンドで複数のCCTをもつプロジェクトを生成した場合:

qacli project create --qaf-project /home/kmac/sample_c --cct GNU_GCC-g++_11.2-x86_64-generic-linux-C++-c++11.cct --cct GNU_GCC-g++_11.2-x86_64-generic-linux-C++-c++14.cct 

C++11 CCTが最初に加えられたため、これがC++言語のデフォルトのCCTと判断されます。

デフォルトとしてC++14を追加するには、以下のようにコマンドを変更します。

qacli project modify --qaf-project /home/kmac/sample_c --cct GNU_GCC-g++_11.2-x86_64-generic-linux-C++-c++14.cct --default