| include(RunCMake) |
| |
| if(RunCMake_GENERATOR MATCHES "Makefile|Ninja") |
| file(GLOB _renesas_toolchains |
| "${CMake_TEST_Renesas_TOOLCHAINS}/*/*/bin/ccr*.exe" ) |
| if(_renesas_toolchains STREQUAL "") |
| message(FATAL_ERROR "Could not find any Renesas toolchains at: ${CMake_TEST_Renesas_TOOLCHAINS}.") |
| endif() |
| endif() |
| |
| function(run_toolchain case) |
| set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${case}-build) |
| run_cmake_with_options(${case} ${ARGN}) |
| set(RunCMake_TEST_NO_CLEAN 1) |
| run_cmake_command(${case}-build ${CMAKE_COMMAND} --build .) |
| endfunction() |
| |
| foreach(_renesas_toolchain IN LISTS _renesas_toolchains) |
| cmake_path(GET _renesas_toolchain PARENT_PATH BIN_DIR) |
| cmake_path(GET _renesas_toolchain FILENAME BIN_NAME) |
| |
| if(BIN_NAME MATCHES "ccrx.exe") |
| # CC-RX |
| set(ENV{BIN_RX} ${BIN_DIR}) |
| run_toolchain(renesas-c |
| -DCMAKE_SYSTEM_NAME=Generic |
| -DCMAKE_C_COMPILER=${_renesas_toolchain} |
| -DCMAKE_C_FLAGS="-isa=rxv2" |
| -DCMAKE_EXE_LINKER_FLAGS="-lnkopt=-start=P,C,D/100,B/8000" |
| ) |
| run_toolchain(renesas-asm-rx |
| -DCMAKE_SYSTEM_NAME=Generic |
| -DCMAKE_C_COMPILER=${_renesas_toolchain} |
| -DCMAKE_ASM_COMPILER=${_renesas_toolchain} |
| -DCMAKE_C_FLAGS="-isa=rxv2" |
| -DCMAKE_ASM_FLAGS="-isa=rxv2" |
| ) |
| elseif(BIN_NAME MATCHES "ccrl.exe") |
| # CC-RL |
| run_toolchain(renesas-c |
| -DCMAKE_SYSTEM_NAME=Generic |
| -DCMAKE_C_COMPILER=${_renesas_toolchain} |
| -DCMAKE_C_FLAGS="-cpu=S2" |
| -DCMAKE_EXE_LINKER_FLAGS="-lnkopt=-auto_section_layout" |
| ) |
| run_toolchain(renesas-asm-rl |
| -DCMAKE_SYSTEM_NAME=Generic |
| -DCMAKE_C_COMPILER=${_renesas_toolchain} |
| -DCMAKE_ASM_COMPILER=${_renesas_toolchain} |
| -DCMAKE_C_FLAGS="-cpu=S2" |
| -DCMAKE_ASM_FLAGS="-cpu=S2" |
| ) |
| elseif(BIN_NAME MATCHES "ccrh.exe") |
| # CC-RH |
| run_toolchain(renesas-c |
| -DCMAKE_SYSTEM_NAME=Generic |
| -DCMAKE_C_COMPILER=${_renesas_toolchain} |
| -DCMAKE_C_FLAGS="-Xcommon=rh850" |
| -DCMAKE_EXE_LINKER_FLAGS="-lnkopt=-start=SU,SI,B_1,R_1,C_1" |
| ) |
| run_toolchain(renesas-asm-rh |
| -DCMAKE_SYSTEM_NAME=Generic |
| -DCMAKE_C_COMPILER=${_renesas_toolchain} |
| -DCMAKE_ASM_COMPILER=${_renesas_toolchain} |
| -DCMAKE_C_FLAGS="-Xcommon=rh850" |
| -DCMAKE_ASM_FLAGS="-Xcommon=rh850" |
| ) |
| endif() |
| endforeach() |