Rust の初回統合ビルド解析を実行する
このトピックでは、以下の方法について学習します。
Rust サポートを有効にする
Rust サポートを有効にするには、以下のようにします。
-
プラットフォームに適した
kwrustZIP アーカイブをダウンロードします。 -
既存の Klocwork ビルドツールまたはコマンドラインツールインストール (バージョン 2026.1 以降) に ZIP を直接抽出します。
抽出すると、Rust ツールのサポートが追加され、kwfilter.conf による rustc コンパイラマッピングが有効になります (既存のバージョンが上書きされます)。
Rust プロジェクトを解析する
アドオンがインストールされると、他の言語と同じワークフローに従って Rust プロジェクトを解析できるようになります。
Kwcheck の使用例:
kwinject --overwrite sh -c 'cargo clean && cargo build'
kwcheck create
kwcheck set license.host=<license host>
kwcheck import kwinject.out
kwcheck run --rebuild
kwcheck list
注記:
-
現在、build specification (ビルドスペック) を生成する場合は
--overwriteフラグが必要です。 -
すべてのビルトイン‑Klocwork Rust チェッカーはデフォルトで有効になります。この動作は将来のリリースで進化する可能性があります。
Validate で Rust チェッカーを構成する
Klocwork には、ネイティブ Rust チェッカーと Clippy‑ベースのチェッカーという 2 種類の Rust チェッカーが含まれています。デフォルトでは、Rust は、適切な分類基準がロードされるまでは Validate の UI に言語としてリストされません。
Rust チェッカーを有効にするには、以下のようにします。
-
プロジェクトの [構成] タブに移動します。
-
ネイティブ Rust チェッカーの場合は、taxonomies/rs.base.tconf をロードします。
-
Clippy ベースのチェッカーの場合は、taxonomies/rs_clippy.tconf をロードします。
Rust が構成パネルに言語として表示され、それぞれのチェッカーを有効/無効にすることができるようになります。
拡張構成を実行する
Klocwork が Rust プロジェクトアーティファクトに影響を与えないようにする
デフォルトで、Klocwork は Rust プロジェクトをインプレースで再コンパイルします。つまり、生成されたアーティファクトの一部が置き換えられるということです。プロジェクトで cargo を使用する場合は、buildspec テンプレート変数を使用してこれを防ぐことができます。
以下の手順を実行してください。
-
Kwinject を実行します。
kwinject -w -o buildspec.tpl --variable RUST_TARGET=/absolute/path/to/target sh -c 'cargo clean && cargo build'
-
kwbuildproject を実行します。
kwbuildproject -V RUST_TARGET=/absolute/path/to/another/folder -o tables buildspec.tpl
-
kwcheck を実行します。
kwcheck import buildspec.tpl kwcheck set-var RUST_TARGET=/absolute/path/to/another/folder kwcheck run --rebuild
追加のコンパイラまたは解析オプションを渡す
C/C++ と同様に、以下のオプションを使用して、追加の Rust 固有のコンパイラまたは解析フラグを渡すことができます。
-
--add-rs-compiler-options
-
--add-rs-analysis-options
CLEF タイムアウトを無効にするには、以下の例を参照してください。
kwbuildproject --add-rs-analysis-options "--clef-option --lef-time-limit=-1"