Newer
Older
mbed-os / tools / cmake / cores / Cortex-M4F.cmake
@Rajkumar Kanagaraj Rajkumar Kanagaraj on 6 Nov 2020 1 KB CMake: add mbed-os and mbed-baremetal targets
# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

# Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
    target_compile_definitions(${target}
        INTERFACE
            __CORTEX_M4
            ARM_MATH_CM4
            __FPU_PRESENT=1
            __CMSIS_RTOS
            __MBED_CMSIS_RTOS_CM
    )

    if(${mbed_toolchain} STREQUAL "GCC_ARM")
        list(APPEND common_toolchain_options
            "-mthumb"
            "-mcpu=cortex-m4"
            "-mfpu=fpv4-sp-d16"
            "-mfloat-abi=softfp"
        )

        target_compile_options(${target}
            INTERFACE
                ${common_toolchain_options}
        )

        target_link_options(${target}
            INTERFACE
                ${common_toolchain_options}
        )
    elseif(${mbed_toolchain} STREQUAL "ARM")
        list(APPEND compile_options
            "-mcpu=cortex-m4"
            "-mfpu=fpv4-sp-d16"
            "-mfloat-abi=hard"
        )

        target_compile_options(${target}
            INTERFACE
                $<$<COMPILE_LANGUAGE:C>:${compile_options}>
                $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
                $<$<COMPILE_LANGUAGE:ASM>:-mcpu=Cortex-M4>
        )

        target_link_options(${target}
            INTERFACE
                "--cpu=Cortex-M4"
        )
    endif()
endfunction()