summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2025-10-25 17:36:01 +0700
committerhathach <[email protected]>2025-10-26 01:04:15 +0700
commit42f000df8e52cfe0a46867a5e1fa5817cd58bc8a (patch)
tree88e1c0a8b33dd136f96486a88aaebb98cdc84c9f
parentd7c4bf14b464a509120ff18f94e9b02cd1c6f9fa (diff)
iar cstat require cmake at least 4.1
-rw-r--r--.github/workflows/static_analysis.yml19
-rw-r--r--examples/build_system/cmake/toolchain/arm_iar.cmake1
-rw-r--r--hw/bsp/family_support.cmake8
3 files changed, 20 insertions, 8 deletions
diff --git a/.github/workflows/static_analysis.yml b/.github/workflows/static_analysis.yml
index e060dfbc9..0af8ac42c 100644
--- a/.github/workflows/static_analysis.yml
+++ b/.github/workflows/static_analysis.yml
@@ -202,23 +202,34 @@ jobs:
with:
toolchain: 'arm-iar'
- - name: Run IAR C-STAT Analysis
+ - name: Install CMake 4.2
+ run: |
+ # IAR CSTAT requires CMake >= 4.1
+ wget -q https://github.com/Kitware/CMake/releases/download/v4.2.0-rc1/cmake-4.2.0-rc1-linux-x86_64.tar.gz
+ tar -xzf cmake-4.2.0-rc1-linux-x86_64.tar.gz
+ echo "${{ github.workspace }}/cmake-4.2.0-rc1-linux-x86_64/bin" >> $GITHUB_PATH
+
+ - name: Build and run IAR C-STAT Analysis
env:
IAR_LMS_BEARER_TOKEN: ${{ secrets.IAR_LMS_BEARER_TOKEN }}
run: |
# CMake run post build to generate C-STAT SARIF report
+ cmake --version
mkdir -p build
- cmake examples -B build -G Ninja -DBOARD=${{ matrix.board }} -DTOOLCHAIN=iar -DIAR_CSTAT=1 -DCMAKE_BUILD_TYPE=MinSizeRel
+ cmake examples/device/cdc_msc -B build -G Ninja -DBOARD=${{ matrix.board }} -DTOOLCHAIN=iar -DIAR_CSTAT=1 -DCMAKE_BUILD_TYPE=MinSizeRel
cmake --build build
+ # Merge sarif files for codeql upload
+ npm i -g @microsoft/sarif-multitool
+ npx @microsoft/sarif-multitool merge --merge-runs --output-file iar-cstat-${{ matrix.board }}.sarif build/cstat_sarif/*.sarif
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v4
with:
- sarif_file: build/cstat_sarif
+ sarif_file: iar-cstat-${{ matrix.board }}.sarif
category: IAR-CStat
- name: Upload artifact
uses: actions/upload-artifact@v5
with:
name: iar-cstat-${{ matrix.board }}
- path: build/cstat_sarif
+ path: iar-cstat-${{ matrix.board }}.sarif
diff --git a/examples/build_system/cmake/toolchain/arm_iar.cmake b/examples/build_system/cmake/toolchain/arm_iar.cmake
index 42b057020..f4c0a500e 100644
--- a/examples/build_system/cmake/toolchain/arm_iar.cmake
+++ b/examples/build_system/cmake/toolchain/arm_iar.cmake
@@ -19,6 +19,7 @@ find_program(CMAKE_IAR_CHECKS ichecks)
find_program(CMAKE_IAR_REPORT ireport)
if (IAR_CSTAT)
+cmake_minimum_required(VERSION 4.1)
set(CMAKE_C_ICSTAT ${CMAKE_IAR_CSTAT} --checks=${CMAKE_CURRENT_LIST_DIR}/cstat_sel_checks.txt --db=${CMAKE_BINARY_DIR}/cstat.db --sarif_dir=${CMAKE_BINARY_DIR}/cstat_sarif)
endif ()
diff --git a/hw/bsp/family_support.cmake b/hw/bsp/family_support.cmake
index 79a9f459b..912e0f4d7 100644
--- a/hw/bsp/family_support.cmake
+++ b/hw/bsp/family_support.cmake
@@ -300,10 +300,10 @@ function(family_configure_common TARGET RTOS)
COMMAND_EXPAND_LISTS
)
# generate C-STAT report
- add_custom_command(TARGET ${TARGET} POST_BUILD
- COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/cstat_report
- COMMAND ireport --db=${CMAKE_BINARY_DIR}/cstat.db --full --project ${TARGET} --output ${CMAKE_CURRENT_BINARY_DIR}/cstat_report/index.html
- )
+# add_custom_command(TARGET ${TARGET} POST_BUILD
+# COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/cstat_report
+# COMMAND ireport --db=${CMAKE_BINARY_DIR}/cstat.db --full --project ${TARGET} --output ${CMAKE_CURRENT_BINARY_DIR}/cstat_report/index.html
+# )
endif ()
endif ()