1# Copyright (c) 2024 Basalte bv
2# SPDX-License-Identifier: Apache-2.0
3
4cmake_minimum_required(VERSION 3.20.0)
5find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
6
7project(sbom_spdx)
8target_sources(app PRIVATE ${ZEPHYR_BASE}/misc/empty_file.c)
9
10enable_testing()
11include(CTest)
12
13set(
14  SPDX_FILES
15  app.spdx
16  zephyr.spdx
17  build.spdx
18  modules-deps.spdx
19)
20
21set(SPDX_VERSIONS_TO_TEST "2.2" "2.3")
22
23foreach(spdx_version ${SPDX_VERSIONS_TO_TEST})
24  string(REPLACE "." "_" version_suffix ${spdx_version})
25
26  add_test(
27    NAME spdx_gen_${version_suffix}
28    COMMAND west spdx -d ${CMAKE_BINARY_DIR} --spdx-version ${spdx_version}
29  )
30
31  foreach(spdx_file ${SPDX_FILES})
32    get_filename_component(basename ${spdx_file} NAME_WE)
33
34    add_test(
35      NAME spdx_validate_${basename}_${version_suffix}
36      COMMAND pyspdxtools -i ${CMAKE_BINARY_DIR}/spdx/${spdx_file}
37    )
38
39    set_tests_properties(
40      spdx_validate_${basename}_${version_suffix}
41      PROPERTIES DEPENDS spdx_gen_${version_suffix}
42    )
43  endforeach()
44endforeach()
45