Merge pull request #14246 from 0xc0170/cmake-refactor-arm-fm

ARM FM: refactor CMake targets
pull/14286/head
Martin Kojtal 2021-02-15 11:02:11 +00:00 committed by GitHub
commit 24c9d2458b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 158 additions and 85 deletions

View File

@ -1,11 +1,11 @@
# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
if("FVP_MPS2" IN_LIST MBED_TARGET_LABELS)
add_subdirectory(TARGET_FVP_MPS2)
endif()
add_library(mbed-arm-fm INTERFACE)
target_include_directories(mbed-core
add_subdirectory(TARGET_FVP_MPS2 EXCLUDE_FROM_ALL)
target_include_directories(mbed-arm-fm
INTERFACE
.
)

View File

@ -1,93 +1,22 @@
# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
if("FVP_MPS2_M0" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_FVP_MPS2_M0/device
)
add_subdirectory(TARGET_FVP_MPS2_M0 EXCLUDE_FROM_ALL)
add_subdirectory(TARGET_FVP_MPS2_M0P EXCLUDE_FROM_ALL)
add_subdirectory(TARGET_FVP_MPS2_M3 EXCLUDE_FROM_ALL)
add_subdirectory(TARGET_FVP_MPS2_M4 EXCLUDE_FROM_ALL)
add_subdirectory(TARGET_FVP_MPS2_M7 EXCLUDE_FROM_ALL)
set(SYSTEM_FILE TARGET_FVP_MPS2_M0/device/system_CMSDK_CM0.c)
add_library(mbed-fvp-mps2 INTERFACE)
if(${MBED_TOOLCHAIN} STREQUAL "ARM")
set(LINKER_FILE TARGET_FVP_MPS2_M0/device/TOOLCHAIN_ARM_STD/MPS2.sct)
set(STARTUP_FILE TARGET_FVP_MPS2_M0/device/TOOLCHAIN_ARM_STD/startup_MPS2.S)
elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
set(LINKER_FILE TARGET_FVP_MPS2_M0/device/TOOLCHAIN_GCC_ARM/MPS2.ld)
set(STARTUP_FILE TARGET_FVP_MPS2_M0/device/TOOLCHAIN_GCC_ARM/startup_MPS2.S)
endif()
elseif("FVP_MPS2_M0P" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_FVP_MPS2_M0P/device
)
set(SYSTEM_FILE TARGET_FVP_MPS2_M0P/device/system_CMSDK_CM0plus.c)
if(${MBED_TOOLCHAIN} STREQUAL "ARM")
set(LINKER_FILE TARGET_FVP_MPS2_M0P/device/TOOLCHAIN_ARM_STD/MPS2.sct)
set(STARTUP_FILE TARGET_FVP_MPS2_M0P/device/TOOLCHAIN_ARM_STD/startup_MPS2.S)
elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
set(LINKER_FILE TARGET_FVP_MPS2_M0P/device/TOOLCHAIN_GCC_ARM/MPS2.ld)
set(STARTUP_FILE TARGET_FVP_MPS2_M0P/device/TOOLCHAIN_GCC_ARM/startup_MPS2.S)
endif()
elseif("FVP_MPS2_M3" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_FVP_MPS2_M3/device
)
set(SYSTEM_FILE TARGET_FVP_MPS2_M3/device/system_CMSDK_CM3.c)
if(${MBED_TOOLCHAIN} STREQUAL "ARM")
set(LINKER_FILE TARGET_FVP_MPS2_M3/device/TOOLCHAIN_ARM_STD/MPS2.sct)
set(STARTUP_FILE TARGET_FVP_MPS2_M3/device/TOOLCHAIN_ARM_STD/startup_MPS2.S)
elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
set(LINKER_FILE TARGET_FVP_MPS2_M3/device/TOOLCHAIN_GCC_ARM/MPS2.ld)
set(STARTUP_FILE TARGET_FVP_MPS2_M3/device/TOOLCHAIN_GCC_ARM/startup_MPS2.S)
endif()
elseif("FVP_MPS2_M4" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_FVP_MPS2_M4/device
)
set(SYSTEM_FILE TARGET_FVP_MPS2_M4/device/system_CMSDK_CM4.c)
if(${MBED_TOOLCHAIN} STREQUAL "ARM")
set(LINKER_FILE TARGET_FVP_MPS2_M4/device/TOOLCHAIN_ARM_STD/MPS2.sct)
set(STARTUP_FILE TARGET_FVP_MPS2_M4/device/TOOLCHAIN_ARM_STD/startup_MPS2.S)
elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
set(LINKER_FILE TARGET_FVP_MPS2_M4/device/TOOLCHAIN_GCC_ARM/MPS2.ld)
set(STARTUP_FILE TARGET_FVP_MPS2_M4/device/TOOLCHAIN_GCC_ARM/startup_MPS2.S)
endif()
elseif("FVP_MPS2_M7" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_FVP_MPS2_M7/device
)
set(SYSTEM_FILE TARGET_FVP_MPS2_M7/device/system_CMSDK_CM7.c)
if(${MBED_TOOLCHAIN} STREQUAL "ARM")
set(LINKER_FILE TARGET_FVP_MPS2_M7/device/TOOLCHAIN_ARM_STD/MPS2.sct)
set(STARTUP_FILE TARGET_FVP_MPS2_M7/device/TOOLCHAIN_ARM_STD/startup_CMSDK_CM7.S)
elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
set(LINKER_FILE TARGET_FVP_MPS2_M7/device/TOOLCHAIN_GCC_ARM/MPS2.ld)
set(STARTUP_FILE TARGET_FVP_MPS2_M7/device/TOOLCHAIN_GCC_ARM/startup_MPS2.S)
endif()
endif()
set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE})
target_include_directories(mbed-core
target_include_directories(mbed-fvp-mps2
INTERFACE
.
drivers
SDK
)
target_sources(mbed-core
target_sources(mbed-fvp-mps2
INTERFACE
analogin_api.c
flash_api.c
@ -106,6 +35,6 @@ target_sources(mbed-core
drivers/lan91c111.c
SDK/fpga.c
${SYSTEM_FILE}
${STARTUP_FILE}
)
target_link_libraries(mbed-fvp-mps2 INTERFACE mbed-arm-fm)

View File

@ -0,0 +1,27 @@
# Copyright (c) 2021 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
add_library(mbed-fvp-mps2-m0 INTERFACE)
if(${MBED_TOOLCHAIN} STREQUAL "ARM")
set(LINKER_FILE device/TOOLCHAIN_ARM_STD/MPS2.sct)
set(STARTUP_FILE device/TOOLCHAIN_ARM_STD/startup_MPS2.S)
elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
set(LINKER_FILE device/TOOLCHAIN_GCC_ARM/MPS2.ld)
set(STARTUP_FILE device/TOOLCHAIN_GCC_ARM/startup_MPS2.S)
endif()
mbed_set_linker_script(mbed-fvp-mps2-m0 ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE})
target_include_directories(mbed-fvp-mps2-m0
INTERFACE
device
)
target_sources(mbed-fvp-mps2-m0
INTERFACE
device/system_CMSDK_CM0.c
${STARTUP_FILE}
)
target_link_libraries(mbed-fvp-mps2-m0 INTERFACE mbed-fvp-mps2)

View File

@ -0,0 +1,27 @@
# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
add_library(mbed-fvp-mps2-m0p INTERFACE)
if(${MBED_TOOLCHAIN} STREQUAL "ARM")
set(LINKER_FILE device/TOOLCHAIN_ARM_STD/MPS2.sct)
set(STARTUP_FILE device/TOOLCHAIN_ARM_STD/startup_MPS2.S)
elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
set(LINKER_FILE device/TOOLCHAIN_GCC_ARM/MPS2.ld)
set(STARTUP_FILE device/TOOLCHAIN_GCC_ARM/startup_MPS2.S)
endif()
mbed_set_linker_script(mbed-fvp-mps2-m0p ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE})
target_include_directories(mbed-fvp-mps2-m0p
INTERFACE
device
)
target_sources(mbed-fvp-mps2-m0p
INTERFACE
device/system_CMSDK_CM0plus.c
${STARTUP_FILE}
)
target_link_libraries(mbed-fvp-mps2-m0p INTERFACE mbed-fvp-mps2)

View File

@ -0,0 +1,27 @@
# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
add_library(mbed-fvp-mps2-m3 INTERFACE)
if(${MBED_TOOLCHAIN} STREQUAL "ARM")
set(LINKER_FILE device/TOOLCHAIN_ARM_STD/MPS2.sct)
set(STARTUP_FILE device/TOOLCHAIN_ARM_STD/startup_MPS2.S)
elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
set(LINKER_FILE device/TOOLCHAIN_GCC_ARM/MPS2.ld)
set(STARTUP_FILE device/TOOLCHAIN_GCC_ARM/startup_MPS2.S)
endif()
mbed_set_linker_script(mbed-fvp-mps2-m3 ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE})
target_include_directories(mbed-fvp-mps2-m3
INTERFACE
device
)
target_sources(mbed-fvp-mps2-m3
INTERFACE
device/system_CMSDK_CM3.c
${STARTUP_FILE}
)
target_link_libraries(mbed-fvp-mps2-m3 INTERFACE mbed-fvp-mps2)

View File

@ -0,0 +1,31 @@
# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
add_library(mbed-fvp-mps2-m4 INTERFACE)
target_include_directories(mbed-fvp-mps2-m4
INTERFACE
device
)
if(${MBED_TOOLCHAIN} STREQUAL "ARM")
set(LINKER_FILE device/TOOLCHAIN_ARM_STD/MPS2.sct)
set(STARTUP_FILE device/TOOLCHAIN_ARM_STD/startup_MPS2.S)
elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
set(LINKER_FILE device/TOOLCHAIN_GCC_ARM/MPS2.ld)
set(STARTUP_FILE device/TOOLCHAIN_GCC_ARM/startup_MPS2.S)
endif()
mbed_set_linker_script(mbed-fvp-mps2-m4 ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE})
target_include_directories(mbed-fvp-mps2-m4
INTERFACE
device
)
target_sources(mbed-fvp-mps2-m4
INTERFACE
device/system_CMSDK_CM4.c
${STARTUP_FILE}
)
target_link_libraries(mbed-fvp-mps2-m4 INTERFACE mbed-fvp-mps2)

View File

@ -0,0 +1,32 @@
# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
add_library(mbed-fvp-mps2-m7 INTERFACE)
target_include_directories(mbed-fvp-mps2-m7
INTERFACE
device
)
if(${MBED_TOOLCHAIN} STREQUAL "ARM")
set(LINKER_FILE device/TOOLCHAIN_ARM_STD/MPS2.sct)
set(STARTUP_FILE device/TOOLCHAIN_ARM_STD/startup_CMSDK_CM7.S)
elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
set(LINKER_FILE device/TOOLCHAIN_GCC_ARM/MPS2.ld)
set(STARTUP_FILE device/TOOLCHAIN_GCC_ARM/startup_MPS2.S)
endif()
mbed_set_linker_script(mbed-fvp-mps2-m7 ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE})
target_include_directories(mbed-fvp-mps2-m7
INTERFACE
device
)
target_sources(mbed-fvp-mps2-m7
INTERFACE
device/system_CMSDK_CM7.c
${STARTUP_FILE}
)
target_link_libraries(mbed-fvp-mps2-m7 INTERFACE mbed-fvp-mps2)