C/C++ プロジェクトの build specification (ビルドスペック) ファイルの形式

C/C++ プロジェクト用の Klocwork build specification (ビルドスペック) は、kwinject.out というデフォルト名のセミコロンで区切られたテキストファイルです。

最初のフィールドは、行のタイプを識別するタグです。使用されるタグは次のとおりです。

タグ 説明
version build specification (ビルドスペック) 形式のバージョン
compile コンパイラの実行を追跡するために使用
link リンカー/ライブラリの実行、つまり実行可能ファイル/ライブラリの作成方法を追跡するために使用
config ユーザーのコンパイラ設定

バージョン行

バージョン行は、build specification (ビルドスペック) 形式のバージョンを定義するために使用されます。これは build specification (ビルドスペック) の最初の行にする必要があります。build specification (ビルドスペック) に使用できるバージョン行は 1 行のみです。

バージョン行の例:

version;108

バージョンを示すコードには、3 桁の整数を使用します。最初 (左側) の桁はメジャーバージョン (上の例の "1") を示し、最後の 2 桁はマイナーバージョン (上の例の "08") を示します (フルバージョンコードは "1.8")。

バージョン 1.4 以降は、build specification (ビルドスペック) がソースエンコーディングに UTF-8 を使用して生成され、マルチバイト文字 (日本語など) が許可されていることを示します。kwbuildproject により build specification (ビルドスペック) が UTF-8 エンコーディングで処理されることを保証するには、バージョンが version;104 以降である必要があります。

コンパイル行

コンパイル行はコンパイラの実行を追跡するために使用されます。

コンパイル行の例:

compile;/tmp/zlib-1.2.2;/usr/bin/gcc;/tmp/zlib-1.2.2/example.o;example.c;-DUSE_MMAP

フィールドは次のとおりです。

フィールド 説明
"compile" タグ コンパイル行のタグ
作業ディレクトリ リンカー実行時の作業ディレクトリ (上の例の /tmp/zlib-1.2.2 )
コンパイラ ユーザーのコンパイラ実行可能ファイルのフルパス (/usr/bin/gccなど)
出力ファイル "ネイティブ" オブジェクトファイルの名前 (/tmp/zlib-1.2.2/example.o など)
ソースファイル ソースファイルの名前 (example.c など)
コンパイラフラグ セミコロンで区切られた追加コンパイラオプション。通常は、インクルードディレクトリとマクロ定義のリスト (-DUSE_MMAP など)

リンク行

リンク行は、リンカーの実行、つまり実行可能ファイル/ライブラリの作成方法を追跡するために使用されます。

リンク行の例:

link;/tmp/zlib-1.2.2;/tmp/zlib-1.2.2/example;/tmp/zlib-1.2.2/example.o;/tmp/zlib-1.2.2/libz.a

フィールドは次のとおりです。

フィールド 説明
"link" タグ リンク行のタグ
作業ディレクトリ コンパイラ実行時の作業ディレクトリ (上の例の /tmp/zlib-1.2.2)
出力ファイル 実行可能ファイルまたはライブラリの名前 (/tmp/zlib-1.2.2/example など)
オブジェクトファイル 実行可能ファイル/ライブラリにリンクされたオブジェクトファイルやライブラリのセミコロン区切りリスト (/tmp/zlib-1.2.2/example.o;/tmp/zlib-1.2.2/libz.a など)

config 行

config 行は、ネイティブコンパイラにより暗黙的に使用されるデファインとインクルードディレクトリのリストを記録するために使用されます。この行はオプションですが、正確な解析を得るためには、システムのデファインとインクルードを指定する必要があります。

config 行の例 (一部省略):

config;/usr/bin/gcc;-e;gnu;-DGNUC=3;...;-J/usr/include;...

フィールドは次のとおりです。

フィールド 説明
"config" タグ config 行のタグ
コンパイラ コンパイラのパス (/usr/bin/gcc など)
フラグ Klocwork コンパイラに渡されるコンパイルオプションのセミコロン区切りリスト。リストされたフラグは、同じコンパイラを使用してすべてのコンパイルコマンド行に自動的に追加されます。