CMake によって生成された Makefile があります。CMake 実行可能ファイルへの次のパスが Makefile に設定されています。
CMAKE_COMMAND = /home/xyz/opt/cmake/cmake-3.1.1/bin/cmake
Fortify sourceanalyzer を統合してスキャンを実行するにはどうすればよいですか?
CMake によって生成された Makefile があります。CMake 実行可能ファイルへの次のパスが Makefile に設定されています。
CMAKE_COMMAND = /home/xyz/opt/cmake/cmake-3.1.1/bin/cmake
Fortify sourceanalyzer を統合してスキャンを実行するにはどうすればよいですか?
私は同じ課題を抱えていましたが、次のように実行して解決しました:
それが役に立てば幸い。
私は、CMake ビルド システムを HP Fortify SCA と統合する任務を負っていましたが、このスレッドに出くわしました。このスレッドでは、いくつかの洞察が得られましたが、HP Fortify に関連する詳細が不足していたため、実装を共有すると思いました。
ソース ディレクトリと同じレベルに fortify_tools ディレクトリを作成しました。fortify_tools 内には、ツールチェーン ファイルと、ツールチェーン ファイルを介して cmake_compilers として設定される fortify_cc、fortify_cxx、および fortify_ar スクリプトがあります。
fortify_cc
#!/bin/bash
sourceanalyzer -b <PROJECT_ID> gcc $@
fortify_cxx
#!/bin/bash
sourceanalyzer -b <PROJECT_ID> g++ $@
fortify_ar
#!/bin/bash
sourceanalyzer -b <PROJECT_ID> ar $@
注: PROJECT_ID の代わりにプロジェクト名を挿入してください
スクリプトを使用するように cmake を設定するには、ツールチェーン ファイルを使用します。
fortify_linux_toolchain.cmake
INCLUDE (CMakeForceCompiler)
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_VERSION 1)
#specify the compilers
SET(CMAKE_C_COMPILER ${CMAKE_SOURCE_DIR}/fortify_tools/fortify_cc)
SET(CMAKE_CXX_COMPILER ${CMAKE_SOURCE_DIR}/fortify_tools/fortify_cxx)
SET(CMAKE_AR_COMPILER ${CMAKE_SOURCE_DIR}/fortify_tools/fortify_ar)
ツールチェーン ファイルを使用してメイクファイルを生成するには
ccmake -DCMAKE_TOOLCHAIN_FILE=../fortify_tools/foritfy_linux_toolchain.cmake ../
Makefile を構成および生成し、プロジェクトをビルドします。
プロジェクトがビルド ディレクトリ内からビルドされたら、Fortify レポートを生成します。
sourceanalyzer -Xmx2400M -debug -verbose -b <PROJECT_ID> -scan -f <PROJECT_ID>.fpr
最後のステップが CMake の外部にあることは理解していますが、ビルド後のアクションとしてスキャン ステップを実行するために cmake_custom_command を作成できると確信しています。
最後に、これは単なる Linux の実装ですが、必要なバッチ ファイルと Windows 固有のツールチェーン ファイルを作成することにより、概念は Windows にうまく拡張されます。