1# SPDX-License-Identifier: Apache-2.0
2#
3# Copyright (c) 2024, Baumer (www.baumer.com)
4
5# Everything before `--` are arguments for cmake invocation, those must be ignored.
6# The first argument after `--` is the start of the compiler call, which is
7# what we want to get to invoke ECLAIR with the compiler call which is used in the zephyr
8# environment
9foreach(i RANGE ${CMAKE_ARGC})
10  if("${CMAKE_ARGV${i}}" STREQUAL "--")
11    math(EXPR end_of_options "${i} + 1")
12    break()
13  endif()
14endforeach()
15
16foreach(i RANGE ${end_of_options} ${CMAKE_ARGC})
17  list(APPEND ZEPHYR_COMPILER_CALL ${CMAKE_ARGV${i}})
18endforeach()
19
20list(APPEND ECLAIR_ARGS +incremental
21                        -project_name=@ECLAIR_PROJECT_NAME@
22                        -project_root=@ECLAIR_PROJECT_ROOT@
23                        -eval_file=@ECLAIR_ECL_DIR@/analysis.ecl
24                        -eval_file=@ECLAIR_ANALYSIS_ECL_DIR@/analysis_@ECLAIR_RULESET@.ecl
25                        @ECLAIR_ENV_ADDITIONAL_OPTIONS@)
26
27execute_process(
28  COMMAND @CMAKE_COMMAND@ -E env
29    ECLAIR_DIAGNOSTICS_OUTPUT=@ECLAIR_DIAGNOSTICS_OUTPUT@
30    ECLAIR_DATA_DIR=@ECLAIR_ANALYSIS_DATA_DIR@
31    CC_ALIASES=@CC_ALIASES@
32    CXX_ALIASES=@CXX_ALIASES@
33    AS_ALIASES=@AS_ALIASES@
34    LD_ALIASES=@LD_ALIASES@
35    AR_ALIASES=@AR_ALIASES@
36    @ECLAIR_ENV@ ${ECLAIR_ARGS} -- ${ZEPHYR_COMPILER_CALL}
37  COMMAND_ERROR_IS_FATAL ANY
38)
39