From bcddea504175e74e38a7d95b4699d1966480cc94 Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 12 Feb 2024 14:06:18 -0500 Subject: Tests/RunCMake/IAR: Simplify test project cmake code --- Tests/RunCMake/IAR/iar-asm.cmake | 3 +-- Tests/RunCMake/IAR/iar-c.cmake | 3 +-- Tests/RunCMake/IAR/iar-cxx.cmake | 3 +-- Tests/RunCMake/IAR/iar-lib.cmake | 8 +++----- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/Tests/RunCMake/IAR/iar-asm.cmake b/Tests/RunCMake/IAR/iar-asm.cmake index 7ff64f6..1c19182 100644 --- a/Tests/RunCMake/IAR/iar-asm.cmake +++ b/Tests/RunCMake/IAR/iar-asm.cmake @@ -1,5 +1,4 @@ enable_language(ASM) -add_executable(exec-asm) -target_sources(exec-asm PRIVATE module.asm) +add_executable(exec-asm module.asm) target_link_options(exec-asm PRIVATE ${LINKER_OPTS}) diff --git a/Tests/RunCMake/IAR/iar-c.cmake b/Tests/RunCMake/IAR/iar-c.cmake index a36f096..c67f298 100644 --- a/Tests/RunCMake/IAR/iar-c.cmake +++ b/Tests/RunCMake/IAR/iar-c.cmake @@ -1,5 +1,4 @@ enable_language(C) -add_executable(exec-c) -target_sources(exec-c PRIVATE module.c) +add_executable(exec-c module.c) target_link_options(exec-c PRIVATE ${LINKER_OPTS}) diff --git a/Tests/RunCMake/IAR/iar-cxx.cmake b/Tests/RunCMake/IAR/iar-cxx.cmake index 6b005b5..60385a7 100644 --- a/Tests/RunCMake/IAR/iar-cxx.cmake +++ b/Tests/RunCMake/IAR/iar-cxx.cmake @@ -1,5 +1,4 @@ enable_language(CXX) -add_executable(exec-cxx) -target_sources(exec-cxx PRIVATE module.cxx) +add_executable(exec-cxx module.cxx) target_link_options(exec-cxx PRIVATE ${LINKER_OPTS}) diff --git a/Tests/RunCMake/IAR/iar-lib.cmake b/Tests/RunCMake/IAR/iar-lib.cmake index 78b3136..64082f1 100644 --- a/Tests/RunCMake/IAR/iar-lib.cmake +++ b/Tests/RunCMake/IAR/iar-lib.cmake @@ -1,10 +1,8 @@ enable_language(C) -add_library(iar-test-lib) -target_sources(iar-test-lib PRIVATE libmod.c) +add_library(iar-test-lib libmod.c) -add_executable(exec-lib-c) -target_sources(exec-lib-c PRIVATE module.c) +add_executable(exec-lib-c module.c) target_compile_definitions(exec-lib-c PRIVATE __USE_LIBFUN) -target_link_libraries(exec-lib-c LINK_PUBLIC iar-test-lib) +target_link_libraries(exec-lib-c PRIVATE iar-test-lib) target_link_options(exec-lib-c PRIVATE ${LINKER_OPTS}) -- cgit v0.12 From cc268d58e23c3e6bed066647960aeaf81a41d0c7 Mon Sep 17 00:00:00 2001 From: Felipe Torrezan Date: Mon, 12 Feb 2024 14:01:28 -0500 Subject: Tests/RunCMake/IAR: Update architecture-specific link flags --- Tests/RunCMake/IAR/RunCMakeTest.cmake | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/Tests/RunCMake/IAR/RunCMakeTest.cmake b/Tests/RunCMake/IAR/RunCMakeTest.cmake index 2049740..12cf66d 100644 --- a/Tests/RunCMake/IAR/RunCMakeTest.cmake +++ b/Tests/RunCMake/IAR/RunCMakeTest.cmake @@ -15,16 +15,22 @@ foreach(_iar_toolchain IN LISTS _iar_toolchains) cmake_path(GET TOOLKIT_DIR FILENAME ARCH) # Sets the minimal requirements for linking each target architecture - if(ARCH STREQUAL rl78) - set(LINK_OPTS -"--config_def _STACK_SIZE=256 \ ---config_def _NEAR_HEAP_SIZE=0x400 \ ---config_def _FAR_HEAP_SIZE=4096 \ ---config_def _HUGE_HEAP_SIZE=0 \ ---config_def _NEAR_CONST_LOCATION_START=0x2000 \ ---config_def _NEAR_CONST_LOCATION_SIZE=0x6F00 \ ---define_symbol _NEAR_CONST_LOCATION=0 \ ---config ${TOOLKIT_DIR}/config/lnkrl78_s3.icf" ) + if(ARCH STREQUAL "avr") + string(CONCAT LINK_OPTS + "-I${TOOLKIT_DIR}/../lib " + "-f ${TOOLKIT_DIR}/../src/template/lnk3s.xcl " + ) + elseif(ARCH STREQUAL "rl78") + string(CONCAT LINK_OPTS + "--config_def _STACK_SIZE=256 " + "--config_def _NEAR_HEAP_SIZE=0x400 " + "--config_def _FAR_HEAP_SIZE=4096 " + "--config_def _HUGE_HEAP_SIZE=0 " + "--config_def _NEAR_CONST_LOCATION_START=0x2000 " + "--config_def _NEAR_CONST_LOCATION_SIZE=0x6F00 " + "--define_symbol _NEAR_CONST_LOCATION=0 " + "--config ${TOOLKIT_DIR}/config/lnkrl78_s3.icf " + ) else() set(LINK_OPTS "") endif() -- cgit v0.12 From 9f52953df5d51f2e81ac82d4b96a129d4f5dab07 Mon Sep 17 00:00:00 2001 From: Felipe Torrezan Date: Mon, 12 Feb 2024 14:03:51 -0500 Subject: Tests/RunCMake/IAR: Enable IAR extended keywords --- Tests/RunCMake/IAR/iar-c.cmake | 1 + Tests/RunCMake/IAR/iar-cxx.cmake | 1 + Tests/RunCMake/IAR/iar-lib.cmake | 1 + 3 files changed, 3 insertions(+) diff --git a/Tests/RunCMake/IAR/iar-c.cmake b/Tests/RunCMake/IAR/iar-c.cmake index c67f298..5e7e740 100644 --- a/Tests/RunCMake/IAR/iar-c.cmake +++ b/Tests/RunCMake/IAR/iar-c.cmake @@ -1,4 +1,5 @@ enable_language(C) add_executable(exec-c module.c) +target_compile_options(exec-c PRIVATE -e) target_link_options(exec-c PRIVATE ${LINKER_OPTS}) diff --git a/Tests/RunCMake/IAR/iar-cxx.cmake b/Tests/RunCMake/IAR/iar-cxx.cmake index 60385a7..6056d32 100644 --- a/Tests/RunCMake/IAR/iar-cxx.cmake +++ b/Tests/RunCMake/IAR/iar-cxx.cmake @@ -1,4 +1,5 @@ enable_language(CXX) add_executable(exec-cxx module.cxx) +target_compile_options(exec-cxx PRIVATE -e) target_link_options(exec-cxx PRIVATE ${LINKER_OPTS}) diff --git a/Tests/RunCMake/IAR/iar-lib.cmake b/Tests/RunCMake/IAR/iar-lib.cmake index 64082f1..17e6c95 100644 --- a/Tests/RunCMake/IAR/iar-lib.cmake +++ b/Tests/RunCMake/IAR/iar-lib.cmake @@ -3,6 +3,7 @@ enable_language(C) add_library(iar-test-lib libmod.c) add_executable(exec-lib-c module.c) +target_compile_options(exec-lib-c PRIVATE -e) target_compile_definitions(exec-lib-c PRIVATE __USE_LIBFUN) target_link_libraries(exec-lib-c PRIVATE iar-test-lib) target_link_options(exec-lib-c PRIVATE ${LINKER_OPTS}) -- cgit v0.12 From a772c2c3845f0c5d3c46563bb746c05973cc4cec Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 9 Feb 2024 16:09:26 -0500 Subject: Tests/RunCMake/IAR: Extend tests to actually build Extend the tests from commit 37e44707bc (IAR: Add tests covering IAR toolchains, 2023-10-21) to actually drive the generated build system. --- Tests/RunCMake/IAR/RunCMakeTest.cmake | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/Tests/RunCMake/IAR/RunCMakeTest.cmake b/Tests/RunCMake/IAR/RunCMakeTest.cmake index 12cf66d..2fefa6a 100644 --- a/Tests/RunCMake/IAR/RunCMakeTest.cmake +++ b/Tests/RunCMake/IAR/RunCMakeTest.cmake @@ -8,6 +8,13 @@ if(RunCMake_GENERATOR MATCHES "Makefile|Ninja") 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(_iar_toolchain IN LISTS _iar_toolchains) message(STATUS "Found IAR toolchain: ${_iar_toolchain}") cmake_path(GET _iar_toolchain PARENT_PATH BIN_DIR) @@ -17,8 +24,8 @@ foreach(_iar_toolchain IN LISTS _iar_toolchains) # Sets the minimal requirements for linking each target architecture if(ARCH STREQUAL "avr") string(CONCAT LINK_OPTS - "-I${TOOLKIT_DIR}/../lib " - "-f ${TOOLKIT_DIR}/../src/template/lnk3s.xcl " + "-I${TOOLKIT_DIR}/lib " + "-f ${TOOLKIT_DIR}/src/template/lnk3s.xcl " ) elseif(ARCH STREQUAL "rl78") string(CONCAT LINK_OPTS @@ -41,30 +48,26 @@ foreach(_iar_toolchain IN LISTS _iar_toolchains) PATHS ${BIN_DIR} REQUIRED ) - set(RunCMake_TEST_OPTIONS + run_toolchain(iar-c -DCMAKE_SYSTEM_NAME=Generic -DCMAKE_C_COMPILER=${_iar_toolchain} -DCMAKE_EXE_LINKER_FLAGS=${LINK_OPTS} ) - run_cmake(iar-c) - set(RunCMake_TEST_OPTIONS + run_toolchain(iar-cxx -DCMAKE_SYSTEM_NAME=Generic -DCMAKE_CXX_COMPILER=${_iar_toolchain} -DCMAKE_EXE_LINKER_FLAGS=${LINK_OPTS} ) - run_cmake(iar-cxx) - set(RunCMake_TEST_OPTIONS + run_toolchain(iar-asm -DCMAKE_SYSTEM_NAME=Generic -DCMAKE_ASM_COMPILER=${IAR_ASSEMBLER} - ) - run_cmake(iar-asm) + ) - set(RunCMake_TEST_OPTIONS + run_toolchain(iar-lib -DCMAKE_SYSTEM_NAME=Generic -DCMAKE_C_COMPILER=${_iar_toolchain} -DCMAKE_EXE_LINKER_FLAGS=${LINK_OPTS} - ) - run_cmake(iar-lib) + ) endforeach() -- cgit v0.12