From 5845f3d42db32f42e83f22073a88d583ff325953 Mon Sep 17 00:00:00 2001 From: Ledion Daja Date: Wed, 21 Sep 2022 16:23:49 +0200 Subject: Fix cmake CMAKE_SYSTEM_PROCESSOR string matches To avoid unwanted matches of regexps, example: "cortex-m3" matches string "cortex-m33", several string MATCHES have been reworked. Change-Id: Ib923fbed9edbfba7de0af005c67b5527acdf40f9 --- cmsis.cmake | 6 +++--- rtos/CMakeLists.txt | 2 +- rtos/freertos_config/CMakeLists.txt | 26 +++++++++++++------------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/cmsis.cmake b/cmsis.cmake index c7922c4..f8a916f 100644 --- a/cmsis.cmake +++ b/cmsis.cmake @@ -25,11 +25,11 @@ endif() string(TOUPPER "ARMCM${CPU_NUMBER}" ARM_CPU) # Set CPU specific features -if(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m33") +if(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m33(\\+|$)") set(ARM_FEATURES "_DSP_FP") -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m4") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m4(\\+|$)") set(ARM_FEATURES "_FP") -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m7") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m7(\\+|$)") set(ARM_FEATURES "_DP") else() set(ARM_FEATURES "") diff --git a/rtos/CMakeLists.txt b/rtos/CMakeLists.txt index 6c91a83..3266c14 100644 --- a/rtos/CMakeLists.txt +++ b/rtos/CMakeLists.txt @@ -24,7 +24,7 @@ endif() # Include ThreadX # Only enable cortex-m55 until cortex-m33 is sorted out upstream -if((CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m55") AND +if((CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m55(\\+|$)") AND (CORE_SOFTWARE_RTOS_LOWER STREQUAL "threadx" OR CORE_SOFTWARE_RTOS_LOWER STREQUAL "all")) #threadx build requires 2 defines: THREADX_ARCH (format: cortex_m4) and THREADX_TOOLCHAIN (ac5/ac6/gnu). #set them according to existing defines CMAKE_SYSTEM_PROCESSOR and CMAKE_CXX_COMPILER_ID: diff --git a/rtos/freertos_config/CMakeLists.txt b/rtos/freertos_config/CMakeLists.txt index 554a492..86958c5 100644 --- a/rtos/freertos_config/CMakeLists.txt +++ b/rtos/freertos_config/CMakeLists.txt @@ -16,23 +16,23 @@ # limitations under the License. # -if(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m3") +if(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m3(\\+|$)") add_compile_definitions(CPU_CORTEX_M3) -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m33") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m33(\\+|$)") add_compile_definitions(CPU_CORTEX_M33) -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m4") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m4(\\+|$)") add_compile_definitions(CPU_CORTEX_M4) -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m55") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m55(\\+|$)") add_compile_definitions(CPU_CORTEX_M55) -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m7") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m7(\\+|$)") add_compile_definitions(CPU_CORTEX_M7) -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m85") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m85(\\+|$)") add_compile_definitions(CPU_CORTEX_M85) else() message(FATAL_ERROR "Unsupported compiler ${CMAKE_SYSTEM_PROCESSOR}.") endif() -if((${TARGET} STREQUAL "mps2") OR (${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m55")) +if((${TARGET} STREQUAL "mps2") OR (${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m55(\\+|$)")) set("SYSTEM_CORE_CLOCK" "25000000") else() set("SYSTEM_CORE_CLOCK" "32000000") @@ -66,28 +66,28 @@ target_sources(freertos_kernel PRIVATE target_sources(freertos_kernel PRIVATE ${FREERTOS_KERNEL_PATH}/portable/MemMang/heap_3.c) -if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m3") +if(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m3(\\+|$)") target_sources(freertos_kernel PRIVATE ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM3/port.c ) target_include_directories(freertos_kernel PUBLIC ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM3 ) -elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m4") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m4(\\+|$)") target_sources(freertos_kernel PRIVATE ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM4F/port.c ) target_include_directories(freertos_kernel PUBLIC ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM4F ) -elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m7") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m7(\\+|$)") target_sources(freertos_kernel PRIVATE ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM7/r0p1/port.c ) target_include_directories(freertos_kernel PUBLIC ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM7/r0p1 ) -elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m33") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m33(\\+|$)") target_sources(freertos_kernel PRIVATE ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM33_NTZ/non_secure/port.c ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM33_NTZ/non_secure/portasm.c @@ -95,7 +95,7 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m33") target_include_directories(freertos_kernel PUBLIC ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM33_NTZ/non_secure ) -elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m55") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m55(\\+|$)") # TODO: using the same port files as Cortex-M33. Update for Cortex-M55. target_sources(freertos_kernel PRIVATE ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM33_NTZ/non_secure/port.c @@ -104,7 +104,7 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m55") target_include_directories(freertos_kernel PUBLIC ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM33_NTZ/non_secure ) -elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m85") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m85(\\+|$)") # TODO: using the same port files as Cortex-M33. Update for Cortex-M85. target_sources(freertos_kernel PRIVATE ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM33_NTZ/non_secure/port.c -- cgit v1.2.1