From 8f47212085eb9587ac98753b31258556c319a8b4 Mon Sep 17 00:00:00 2001 From: Robert Walton Date: Wed, 27 Jan 2021 12:26:54 +0000 Subject: [PATCH 1/3] cmake: Remove whitespace from mbed-os/CMakeLists.txt --- CMakeLists.txt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0dcb70c22ad..cb08bb51e83 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,6 @@ target_link_libraries(mbed-baremetal INTERFACE mbed-core ) - # Validate selected C library type # The C library type selected has to match the library that the target can support if(${MBED_C_LIB} STREQUAL "small") @@ -35,7 +34,7 @@ if(${MBED_C_LIB} STREQUAL "small") " we are using the standard C library instead." ) set(MBED_C_LIB "std" CACHE STRING "") - endif() + endif() endif() elseif(NOT ${MBED_C_LIB} IN_LIST MBED_TARGET_SUPPORTED_C_LIBS) message(FATAL_ERROR @@ -67,7 +66,7 @@ target_compile_definitions(mbed-core # Add compile definitions for backward compatibility with the toolchain # supported. New source files should instead check for __GNUC__ and __clang__ -# for the GCC_ARM and ARM toolchains respectively. +# for the GCC_ARM and ARM toolchains respectively. if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") target_compile_definitions(mbed-core INTERFACE From 0e491cc0cfe3499ed7aea3e59c7933b2310aaaa2 Mon Sep 17 00:00:00 2001 From: Robert Walton Date: Wed, 27 Jan 2021 12:27:48 +0000 Subject: [PATCH 2/3] cmake: Refactor mbed_set_mbed_target_linker_script Move the mbed_set_mbed_target_linker_script function into its own file and make it set the linkerscript on the target passed in, rather than setting the linkerscript on the top level mbed-core target. We use CMake's automatic forwarding of usage requirements to forward the linker script to the top level target. This commit also adds a condition to check whether the MBED_TARGET is a CMake buildsystem target. If it is we will just link to it in the idiomatic CMake way, if it's not then we use the 'old' mechanism of setting the linkerscript for the mbed-core target. This check will be useful when we refactor MBED_TARGETS to be CMake buildsystem targets as it will allow us to do the refactoring incrementally. --- CMakeLists.txt | 65 ++++++++++++----------------- tools/cmake/mbed_greentea.cmake | 2 - tools/cmake/set_linker_script.cmake | 51 ++++++++++++++++++++++ 3 files changed, 77 insertions(+), 41 deletions(-) create mode 100644 tools/cmake/set_linker_script.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index cb08bb51e83..9d1d45ef0ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,7 @@ cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) include(${MBED_CONFIG_PATH}/mbed_config.cmake) +include(tools/cmake/set_linker_script.cmake) add_library(mbed-core INTERFACE) @@ -86,6 +87,15 @@ target_include_directories(mbed-core ${CMAKE_CURRENT_SOURCE_DIR} ) +# We need to generate a "response file" to pass to the C preprocessor because of path length +# limitations on Windows. We set the response file and bind the path to a global property here. +# We query this global property when we set the linker script for the MBED_TARGET being built. +# +# TODO: Remove this and find a more idiomatic way of passing compile definitions to CPP without +# using global properties. +mbed_generate_options_for_linker(${APP_TARGET} LINKER_PREPROCESS_DEFINITIONS) +set_property(GLOBAL PROPERTY COMPILE_DEFS_RESPONSE_FILE ${LINKER_PREPROCESS_DEFINITIONS}) + # These targets are made visible here so their source files which # are spread in different directories can be referenced and can be linked against # by libraries that depend on them. @@ -110,6 +120,22 @@ add_subdirectory(features EXCLUDE_FROM_ALL) add_subdirectory(cmsis/CMSIS_5/CMSIS/RTOS2 EXCLUDE_FROM_ALL) add_subdirectory(cmsis/device/rtos EXCLUDE_FROM_ALL) +# This is a temporary workaround to prevent the build from failing for MBED_TARGETS that +# haven't been converted to build system targets yet. +# The refactored MBED_TARGETS set the linker script and forward it to the build system as a +# usage requirement. The 'old' mechanism was to set the linker script on the top level mbed-core +# target. This was needed because MBED_TARGETS were not registered as buildsystem targets, +# preventing CMake from working its usage requirements magic and forcing us to set the linker +# script globally. +# +# TODO: Remove when all MBED_TARGETS have been converted to build system targets. +if(TARGET ${MBED_TARGET}) + target_link_libraries(mbed-core INTERFACE ${MBED_TARGET}) +else() + get_property(LINKER_SCRIPT GLOBAL PROPERTY MBED_TARGET_LINKER_FILE) + mbed_set_linker_script(mbed-core ${LINKER_SCRIPT}) +endif() + # # Configures the application # @@ -122,45 +148,6 @@ function(mbed_configure_app_target target) ) endfunction() -# -# Specifies linker script used for linking `target`. -# -function(mbed_set_mbed_target_linker_script target) - get_property(mbed_target_linker_script GLOBAL PROPERTY MBED_TARGET_LINKER_FILE) - mbed_generate_options_for_linker(${target} _linker_preprocess_definitions) - if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") - set(CMAKE_PRE_BUILD_COMMAND - COMMAND "arm-none-eabi-cpp" ${_linker_preprocess_definitions} -x assembler-with-cpp -E -Wp,-P - ${mbed_target_linker_script} -o ${CMAKE_BINARY_DIR}/${target}.link_script.ld - - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - BYPRODUCTS "${CMAKE_BINARY_DIR}/${target}.link_script.ld" - ) - target_link_options(mbed-core - INTERFACE - "-T" "${CMAKE_BINARY_DIR}/${target}.link_script.ld" - "-Wl,-Map=${CMAKE_BINARY_DIR}/${target}${CMAKE_EXECUTABLE_SUFFIX}.map" - ) - elseif(MBED_TOOLCHAIN STREQUAL "ARM") - set(CMAKE_PRE_BUILD_COMMAND COMMAND "") - target_link_options(mbed-core - INTERFACE - "--scatter=${mbed_target_linker_script}" - "--predefine=${_linker_preprocess_definitions}" - "--map" - ) - endif() - add_custom_command( - TARGET - ${target} - PRE_LINK - ${CMAKE_PRE_BUILD_COMMAND} - COMMENT - "Link line:" - VERBATIM - ) -endfunction() - # # Converts output file of `target` to binary file and to Intel HEX file. # diff --git a/tools/cmake/mbed_greentea.cmake b/tools/cmake/mbed_greentea.cmake index 161d394d725..dca5c6b6349 100644 --- a/tools/cmake/mbed_greentea.cmake +++ b/tools/cmake/mbed_greentea.cmake @@ -43,8 +43,6 @@ macro(mbed_greentea_add_test) mbed_configure_app_target(${TEST_NAME}) - mbed_set_mbed_target_linker_script(${TEST_NAME}) - target_include_directories(${TEST_NAME} PRIVATE . diff --git a/tools/cmake/set_linker_script.cmake b/tools/cmake/set_linker_script.cmake new file mode 100644 index 00000000000..0c2a38a6ef9 --- /dev/null +++ b/tools/cmake/set_linker_script.cmake @@ -0,0 +1,51 @@ +# Copyright (c) 2021 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +# +# Preprocesses and sets the linker script for an Mbed target. +# +function(mbed_set_linker_script input_target raw_linker_script_path) + set(LINKER_SCRIPT_PATH ${CMAKE_BINARY_DIR}/${input_target}.link_script.ld) + # To avoid path limits on Windows, we create a "response file" and set the path to it as a + # global property. We need this solely to pass the compile definitions to GCC's preprocessor, + # so it can expand any macro definitions in the linker script. + get_property(_linker_preprocess_definitions GLOBAL PROPERTY COMPILE_DEFS_RESPONSE_FILE) + if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") + add_custom_command( + OUTPUT + ${LINKER_SCRIPT_PATH} + PRE_LINK + COMMAND + ${CMAKE_C_COMPILER} ${_linker_preprocess_definitions} + -E -x assembler-with-cpp + -P ${raw_linker_script_path} + -o ${LINKER_SCRIPT_PATH} + WORKING_DIRECTORY + ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT + "Link line:" + VERBATIM + ) + # CMake will not let us add PRE_LINK commands to INTERFACE targets, and input_target could + # be an INTERFACE target. + # To get around this we create an intermediate custom target depending on the preprocessed + # linker script output by CPP. We add this custom target as a dependency of input_target. + # This ensures CMake runs our custom command to preprocess the linker script before trying + # to build input_target. + set(LinkerScriptTarget ${input_target}LinkerScript) + add_custom_target(${LinkerScriptTarget} DEPENDS ${LINKER_SCRIPT_PATH} VERBATIM) + add_dependencies(${input_target} ${LinkerScriptTarget}) + target_link_options(${input_target} + INTERFACE + "-T" "${LINKER_SCRIPT_PATH}" + "-Wl,-Map=${CMAKE_BINARY_DIR}/${APP_TARGET}${CMAKE_EXECUTABLE_SUFFIX}.map" + ) + elseif(MBED_TOOLCHAIN STREQUAL "ARM") + target_link_options(${input_target} + INTERFACE + "--scatter=${raw_linker_script_path}" + "--predefine=${_linker_preprocess_definitions}" + "--map" + ) + endif() +endfunction() From d9e184b6c6737c0cc41b414495f78349c93d4794 Mon Sep 17 00:00:00 2001 From: Robert Walton Date: Thu, 28 Jan 2021 12:24:54 +0000 Subject: [PATCH 3/3] cmake: Refactor ST targets Refactor all ST targets to be CMake buildsystem targets. This removes the need for checking MBED_TARGET_LABELS repeatedly and allows us to be more flexible in the way we include MBED_TARGET source in the build. A side effect of this is it will allow us to support custom targets without breaking the build for 'standard' targets, as we use CMake's standard mechanism for adding build rules to the build system, rather than implementing our own layer of logic to exclude files not needed for the target being built. Using this approach, if an MBED_TARGET is not linked to using `target_link_libraries` its source files will not be added to the build. This means custom target source can be added to the user's application CMakeLists.txt without polluting the build system when trying to compile for a standard MBED_TARGET. --- targets/CMakeLists.txt | 1 + targets/TARGET_STM/CMakeLists.txt | 49 ++++++--------- .../TARGET_STM/TARGET_STM32F0/CMakeLists.txt | 22 +++---- .../STM32Cube_FW/CMakeLists.txt | 6 +- .../TARGET_STM32F030x8/CMakeLists.txt | 10 ++- .../TARGET_STM32F070xB/CMakeLists.txt | 14 +++-- .../TARGET_NUCLEO_F070RB/CMakeLists.txt | 8 ++- .../TARGET_STM32F072xB/CMakeLists.txt | 14 +++-- .../TARGET_NUCLEO_F072RB/CMakeLists.txt | 8 ++- .../TARGET_STM32F091xC/CMakeLists.txt | 14 +++-- .../TARGET_NUCLEO_F091RC/CMakeLists.txt | 8 ++- .../TARGET_STM/TARGET_STM32F1/CMakeLists.txt | 18 +++--- .../STM32Cube_FW/CMakeLists.txt | 6 +- .../TARGET_STM32F103x8/CMakeLists.txt | 10 ++- .../TARGET_STM32F103xB/CMakeLists.txt | 19 +++--- .../TARGET_NUCLEO_F103RB/CMakeLists.txt | 16 +++++ .../TARGET_STM/TARGET_STM32F2/CMakeLists.txt | 30 ++++----- .../STM32Cube_FW/CMakeLists.txt | 6 +- .../TARGET_STM32F207xG/CMakeLists.txt | 14 +++-- .../TARGET_NUCLEO_F207ZG/CMakeLists.txt | 8 ++- .../TARGET_STM/TARGET_STM32F3/CMakeLists.txt | 25 ++++---- .../STM32Cube_FW/CMakeLists.txt | 6 +- .../TARGET_STM32F302x8/CMakeLists.txt | 21 +++++++ .../TARGET_STM32F303x8/CMakeLists.txt | 14 +++-- .../TARGET_NUCLEO_F303K8/CMakeLists.txt | 8 ++- .../TARGET_STM32F303xC/CMakeLists.txt | 14 ++--- .../TARGET_STM32F303xE/CMakeLists.txt | 17 +++--- .../TARGET_NUCLEO_F303RE/CMakeLists.txt | 8 ++- .../TARGET_NUCLEO_F303ZE/CMakeLists.txt | 8 ++- .../TARGET_STM32F334x8/CMakeLists.txt | 10 ++- .../TARGET_STM/TARGET_STM32F4/CMakeLists.txt | 61 +++++++------------ .../STM32Cube_FW/CMakeLists.txt | 10 ++- .../STM32F4xx_HAL_Driver/CMakeLists.txt | 10 ++- .../Legacy/CMakeLists.txt | 6 +- .../CMakeLists.txt | 10 ++- .../TARGET_MTS_MDOT_F411RE/CMakeLists.txt | 10 ++- .../TARGET_STM32F401xC/CMakeLists.txt | 10 ++- .../TARGET_STM32F401xE/CMakeLists.txt | 18 +++--- .../TARGET_NUCLEO_F401RE/CMakeLists.txt | 8 ++- .../TARGET_STM32F407xE/CMakeLists.txt | 16 ++--- .../TARGET_ARCH_MAX/CMakeLists.txt | 10 ++- .../TARGET_STM32F407xG/CMakeLists.txt | 12 ++-- .../TARGET_STM32F410xB/CMakeLists.txt | 12 ++-- .../TARGET_STM32F411xE/CMakeLists.txt | 16 ++--- .../TARGET_NUCLEO_F411RE/CMakeLists.txt | 10 ++- .../TARGET_STM32F412xG/CMakeLists.txt | 17 +++--- .../TARGET_NUCLEO_F412ZG/CMakeLists.txt | 8 ++- .../TARGET_WIO_EMW3166/CMakeLists.txt | 8 ++- .../TARGET_STM32F413xH/CMakeLists.txt | 30 +++------ .../TARGET_DISCO_F413ZH/CMakeLists.txt | 17 ++++++ .../CMakeLists.txt | 18 ++++++ .../TARGET_NUCLEO_F413ZH/CMakeLists.txt | 17 ++++++ .../TARGET_STM32F429xI/CMakeLists.txt | 17 +++--- .../TARGET_DISCO_F429ZI/CMakeLists.txt | 8 ++- .../TARGET_NUCLEO_F429ZI/CMakeLists.txt | 8 ++- .../TARGET_STM32F437xG/CMakeLists.txt | 10 ++- .../TARGET_STM32F439xI/CMakeLists.txt | 30 +++------ .../TARGET_NUCLEO_F439ZI/CMakeLists.txt | 17 ++++++ .../TARGET_WIO_3G/CMakeLists.txt | 18 ++++++ .../TARGET_WIO_BG96/CMakeLists.txt | 18 ++++++ .../TARGET_STM32F446xE/CMakeLists.txt | 17 +++--- .../TARGET_NUCLEO_F446RE/CMakeLists.txt | 8 ++- .../TARGET_NUCLEO_F446ZE/CMakeLists.txt | 8 ++- .../TARGET_STM32F469xI/CMakeLists.txt | 17 +++--- .../TARGET_DISCO_F469NI/CMakeLists.txt | 8 ++- .../TARGET_SDP_K1/CMakeLists.txt | 7 ++- .../TARGET_STM/TARGET_STM32F7/CMakeLists.txt | 23 ++++--- .../STM32Cube_FW/CMakeLists.txt | 6 +- .../TARGET_STM32F746xG/CMakeLists.txt | 17 +++--- .../TARGET_DISCO_F746NG/CMakeLists.txt | 8 ++- .../TARGET_NUCLEO_F746ZG/CMakeLists.txt | 8 ++- .../TARGET_STM32F756xG/CMakeLists.txt | 14 +++-- .../TARGET_NUCLEO_F756ZG/CMakeLists.txt | 8 ++- .../TARGET_STM32F767xI/CMakeLists.txt | 17 +++--- .../TARGET_NUCLEO_F767ZI/CMakeLists.txt | 8 ++- .../TARGET_UHURU_RAVEN/CMakeLists.txt | 8 ++- .../TARGET_STM32F769xI/CMakeLists.txt | 14 +++-- .../TARGET_DISCO_F769NI/CMakeLists.txt | 8 ++- .../TARGET_STM/TARGET_STM32G0/CMakeLists.txt | 30 ++++----- .../STM32Cube_FW/CMakeLists.txt | 6 +- .../{CMakefileLists.txt => CMakeLists.txt} | 10 ++- .../TARGET_STM32G031xx/CMakeLists.txt | 14 +++-- .../TARGET_NUCLEO_G031K8/CMakeLists.txt | 8 ++- .../TARGET_STM32G041xx/CMakeLists.txt | 10 ++- .../TARGET_STM32G070xx/CMakeLists.txt | 10 ++- .../TARGET_STM32G071xx/CMakeLists.txt | 14 +++-- .../TARGET_NUCLEO_G071RB/CMakeLists.txt | 8 ++- .../TARGET_STM32G081xx/CMakeLists.txt | 10 ++- .../TARGET_STM/TARGET_STM32G4/CMakeLists.txt | 33 +++++----- .../STM32Cube_FW/CMakeLists.txt | 6 +- .../TARGET_STM32G431xB/CMakeLists.txt | 10 ++- .../TARGET_STM32G441xB/CMakeLists.txt | 10 ++- .../TARGET_STM32G471xE/CMakeLists.txt | 10 ++- .../TARGET_STM32G473xE/CMakeLists.txt | 10 ++- .../TARGET_STM32G474xE/CMakeLists.txt | 14 +++-- .../TARGET_NUCLEO_G474RE/CMakeLists.txt | 8 ++- .../TARGET_STM32G483xE/CMakeLists.txt | 10 ++- .../TARGET_STM32G484xE/CMakeLists.txt | 10 ++- .../TARGET_STM/TARGET_STM32H7/CMakeLists.txt | 24 ++++---- .../STM32Cube_FW/CMakeLists.txt | 6 +- .../TARGET_STM32H743xI/CMakeLists.txt | 17 +++--- .../TARGET_NUCLEO_H743ZI/CMakeLists.txt | 8 ++- .../TARGET_NUCLEO_H743ZI2/CMakeLists.txt | 8 ++- .../TARGET_STM32H745xI/CMakeLists.txt | 13 ++-- .../TARGET_STM32H745xI_CM4/CMakeLists.txt | 10 ++- .../TARGET_STM32H745xI_CM7/CMakeLists.txt | 10 ++- .../TARGET_STM32H747xI/CMakeLists.txt | 21 +++---- .../TARGET_DISCO_H747I/CMakeLists.txt | 8 ++- .../TARGET_PORTENTA_H7/CMakeLists.txt | 7 ++- .../TARGET_STM32H747xI_CM4/CMakeLists.txt | 10 ++- .../TARGET_STM32H747xI_CM7/CMakeLists.txt | 10 ++- .../TARGET_STM32H7A3xIQ/CMakeLists.txt | 14 +++-- .../TARGET_NUCLEO_H7A3ZI_Q/CMakeLists.txt | 8 ++- .../TARGET_STM/TARGET_STM32L0/CMakeLists.txt | 28 ++++----- .../STM32Cube_FW/CMakeLists.txt | 6 +- .../TARGET_STM32L053x8/CMakeLists.txt | 10 ++- .../TARGET_STM32L071xZ/CMakeLists.txt | 10 ++- .../TARGET_STM32L072xZ/CMakeLists.txt | 14 +++-- .../TARGET_DISCO_L072CZ_LRWAN1/CMakeLists.txt | 8 ++- .../TARGET_STM32L073xZ/CMakeLists.txt | 14 +++-- .../TARGET_NUCLEO_L073RZ/CMakeLists.txt | 8 ++- .../TARGET_STM32L082xZ/CMakeLists.txt | 10 ++- .../TARGET_STM/TARGET_STM32L1/CMakeLists.txt | 18 +++--- .../TARGET_MOTE_L152RC/CMakeLists.txt | 10 ++- .../TARGET_NUCLEO_L152RE/CMakeLists.txt | 10 ++- .../TARGET_XDOT_L151CC/CMakeLists.txt | 10 ++- .../TARGET_STM/TARGET_STM32L4/CMakeLists.txt | 46 ++++++-------- .../STM32Cube_FW/CMakeLists.txt | 9 ++- .../STM32L4xx_HAL_Driver/CMakeLists.txt | 9 +-- .../Legacy/CMakeLists.txt | 6 +- .../TARGET_STM32L432xC/CMakeLists.txt | 17 +++--- .../TARGET_NUCLEO_L432KC/CMakeLists.txt | 16 +++++ .../TARGET_STM32L433xC/CMakeLists.txt | 20 +++--- .../TARGET_NUCLEO_L433RC_P/CMakeLists.txt | 16 +++++ .../TARGET_STM32L443xC/CMakeLists.txt | 15 +++-- .../TARGET_ADV_WISE_1510/CMakeLists.txt | 8 ++- .../TARGET_STM32L452xE/CMakeLists.txt | 15 +++-- .../TARGET_NUCLEO_L452RE_P/CMakeLists.txt | 8 ++- .../TARGET_STM32L471xG/CMakeLists.txt | 16 +++-- .../CMakeLists.txt | 8 ++- .../TARGET_STM32L475xG/CMakeLists.txt | 15 +++-- .../TARGET_DISCO_L475VG_IOT01A/CMakeLists.txt | 8 ++- .../TARGET_STM32L476xG/CMakeLists.txt | 21 ++++--- .../TARGET_DISCO_L476VG/CMakeLists.txt | 8 ++- .../TARGET_NUCLEO_L476RG/CMakeLists.txt | 8 ++- .../TARGET_RHOMBIO_L476DMW1K/CMakeLists.txt | 8 ++- .../TARGET_STM32L486xG/CMakeLists.txt | 17 +++--- .../TARGET_ADV_WISE_1570/CMakeLists.txt | 8 ++- .../TARGET_NUCLEO_L486RG/CMakeLists.txt | 8 ++- .../TARGET_STM32L496xG/CMakeLists.txt | 17 +++--- .../TARGET_DISCO_L496AG/CMakeLists.txt | 8 ++- .../TARGET_NUCLEO_L496ZG/CMakeLists.txt | 8 ++- .../TARGET_STM32L4R5xI/CMakeLists.txt | 14 +++-- .../TARGET_NUCLEO_L4R5ZI/CMakeLists.txt | 8 ++- .../TARGET_STM32L4R9xI/CMakeLists.txt | 14 +++-- .../TARGET_DISCO_L4R9I/CMakeLists.txt | 8 ++- .../TARGET_STM32L4S5xI/CMakeLists.txt | 14 +++-- .../TARGET_B_L4S5I_IOT01A/CMakeLists.txt | 8 ++- .../TARGET_STM/TARGET_STM32L5/CMakeLists.txt | 19 +++--- .../STM32Cube_FW/CMakeLists.txt | 6 +- .../TARGET_STM32L552xC/CMakeLists.txt | 10 ++- .../TARGET_STM32L552xE/CMakeLists.txt | 14 +++-- .../TARGET_NUCLEO_L552ZE_Q/CMakeLists.txt | 8 ++- .../TARGET_STM32L562xE/CMakeLists.txt | 14 +++-- .../TARGET_DISCO_L562QE/CMakeLists.txt | 8 ++- .../TARGET_STM/TARGET_STM32WB/CMakeLists.txt | 16 ++--- .../STM32Cube_FW/CMakeLists.txt | 6 +- .../TARGET_STM32WB50xx/CMakeLists.txt | 10 ++- .../TARGET_STM32WB55xx/CMakeLists.txt | 14 +++-- .../TARGET_NUCLEO_WB55RG/CMakeLists.txt | 8 ++- 170 files changed, 1353 insertions(+), 836 deletions(-) create mode 100644 targets/TARGET_STM/TARGET_STM32F1/TARGET_STM32F103xB/TARGET_NUCLEO_F103RB/CMakeLists.txt create mode 100644 targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F302x8/CMakeLists.txt create mode 100644 targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F413xH/TARGET_DISCO_F413ZH/CMakeLists.txt create mode 100644 targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F413xH/TARGET_MTS_DRAGONFLY_F413RH/CMakeLists.txt create mode 100644 targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F413xH/TARGET_NUCLEO_F413ZH/CMakeLists.txt create mode 100644 targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_NUCLEO_F439ZI/CMakeLists.txt create mode 100644 targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_WIO_3G/CMakeLists.txt create mode 100644 targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_WIO_BG96/CMakeLists.txt rename targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G030xx/{CMakefileLists.txt => CMakeLists.txt} (67%) create mode 100644 targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L432xC/TARGET_NUCLEO_L432KC/CMakeLists.txt create mode 100644 targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L433xC/TARGET_NUCLEO_L433RC_P/CMakeLists.txt diff --git a/targets/CMakeLists.txt b/targets/CMakeLists.txt index 26c207f68da..fcf950221bf 100644 --- a/targets/CMakeLists.txt +++ b/targets/CMakeLists.txt @@ -1,5 +1,6 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 +include(../tools/cmake/set_linker_script.cmake) if("Ambiq_Micro" IN_LIST MBED_TARGET_LABELS) add_subdirectory(TARGET_Ambiq_Micro) diff --git a/targets/TARGET_STM/CMakeLists.txt b/targets/TARGET_STM/CMakeLists.txt index ef6bb9677c9..540c73466c7 100644 --- a/targets/TARGET_STM/CMakeLists.txt +++ b/targets/TARGET_STM/CMakeLists.txt @@ -1,42 +1,29 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("STM32F0" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F0) -elseif("STM32F1" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F1) -elseif("STM32F2" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F2) -elseif("STM32F3" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F3) -elseif("STM32F4" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F4) -elseif("STM32F7" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F7) -elseif("STM32G0" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32G0) -elseif("STM32G4" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32G4) -elseif("STM32H7" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32H7) -elseif("STM32L0" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L0) -elseif("STM32L1" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L1) -elseif("STM32L4" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L4) -elseif("STM32L5" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L5) -elseif("STM32WB" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32WB) -endif() +add_subdirectory(TARGET_STM32F0 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F1 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F2 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F3 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F4 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F7 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32G0 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32G4 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32H7 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L0 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L1 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L4 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L5 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32WB EXCLUDE_FROM_ALL) -target_include_directories(mbed-core +add_library(STM INTERFACE) + +target_include_directories(STM INTERFACE . ) -target_sources(mbed-core +target_sources(STM INTERFACE USBPhy_STM32.cpp analogin_api.c diff --git a/targets/TARGET_STM/TARGET_STM32F0/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F0/CMakeLists.txt index 5be0e0246dc..6d5d8fd4262 100644 --- a/targets/TARGET_STM/TARGET_STM32F0/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F0/CMakeLists.txt @@ -1,24 +1,20 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("STM32F091xC" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F091xC) -elseif("STM32F072xB" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F072xB) -elseif("STM32F070xB" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F070xB) -elseif("STM32F030x8" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F030x8) -endif() +add_subdirectory(TARGET_STM32F091xC EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F072xB EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F070xB EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F030x8 EXCLUDE_FROM_ALL) +add_subdirectory(STM32Cube_FW EXCLUDE_FROM_ALL) -add_subdirectory(STM32Cube_FW) +add_library(STM32F0 INTERFACE) -target_include_directories(mbed-core +target_include_directories(STM32F0 INTERFACE . ) -target_sources(mbed-core +target_sources(STM32F0 INTERFACE analogin_device.c analogout_device.c @@ -29,3 +25,5 @@ target_sources(mbed-core serial_device.c spi_api.c ) + +target_link_libraries(STM32F0 INTERFACE STM STM32F0Cube_FW) diff --git a/targets/TARGET_STM/TARGET_STM32F0/STM32Cube_FW/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F0/STM32Cube_FW/CMakeLists.txt index 6394b93ef9b..9fcbab48934 100644 --- a/targets/TARGET_STM/TARGET_STM32F0/STM32Cube_FW/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F0/STM32Cube_FW/CMakeLists.txt @@ -1,7 +1,9 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(STM32F0Cube_FW INTERFACE) + +target_sources(STM32F0Cube_FW INTERFACE STM32F0xx_HAL_Driver/Legacy/stm32f0xx_hal_can_legacy.c STM32F0xx_HAL_Driver/stm32f0xx_hal.c @@ -66,7 +68,7 @@ target_sources(mbed-core system_stm32f0xx.c ) -target_include_directories(mbed-core +target_include_directories(STM32F0Cube_FW INTERFACE . CMSIS diff --git a/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F030x8/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F030x8/CMakeLists.txt index ddd839055a8..aae69b6167f 100644 --- a/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F030x8/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F030x8/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f030x8.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F030x8 INTERFACE) -target_sources(mbed-core +target_sources(STM32F030x8 INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F030x8 INTERFACE . ) + +mbed_set_linker_script(STM32F030x8 ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F030x8 INTERFACE STM32F0) diff --git a/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F070xB/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F070xB/CMakeLists.txt index 314377ea40a..87cfa4555de 100644 --- a/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F070xB/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F070xB/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_F070RB" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F070RB) -endif() +add_subdirectory(TARGET_NUCLEO_F070RB EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f070xb.S) @@ -13,15 +11,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f070xb.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F070xB INTERFACE) -target_sources(mbed-core +target_sources(STM32F070xB INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F070xB INTERFACE . ) + +mbed_set_linker_script(STM32F070xB ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F070xB INTERFACE STM32F0) diff --git a/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F070xB/TARGET_NUCLEO_F070RB/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F070xB/TARGET_NUCLEO_F070RB/CMakeLists.txt index 118fbc11897..5c1503c1011 100644 --- a/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F070xB/TARGET_NUCLEO_F070RB/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F070xB/TARGET_NUCLEO_F070RB/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_F070RB INTERFACE) + +target_sources(NUCLEO_F070RB INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_F070RB INTERFACE . ) + +target_link_libraries(NUCLEO_F070RB INTERFACE STM32F070xB) diff --git a/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F072xB/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F072xB/CMakeLists.txt index 235b0929b34..b2865584515 100644 --- a/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F072xB/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F072xB/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_F072RB" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F072RB) -endif() +add_subdirectory(TARGET_NUCLEO_F072RB EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f072xb.S) @@ -13,15 +11,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f072xb.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F072xB INTERFACE) -target_sources(mbed-core +target_sources(STM32F072xB INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F072xB INTERFACE . ) + +mbed_set_linker_script(STM32F072xB ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F072xB INTERFACE STM32F0) diff --git a/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F072xB/TARGET_NUCLEO_F072RB/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F072xB/TARGET_NUCLEO_F072RB/CMakeLists.txt index 118fbc11897..a12552ac2b1 100644 --- a/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F072xB/TARGET_NUCLEO_F072RB/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F072xB/TARGET_NUCLEO_F072RB/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_F072RB INTERFACE) + +target_sources(NUCLEO_F072RB INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_F072RB INTERFACE . ) + +target_link_libraries(NUCLEO_F072RB INTERFACE STM32F072xB) diff --git a/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F091xC/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F091xC/CMakeLists.txt index bb86934f3f7..01cdbd445c5 100644 --- a/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F091xC/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F091xC/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_F091RC" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F091RC) -endif() +add_subdirectory(TARGET_NUCLEO_F091RC EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f091xc.S) @@ -13,15 +11,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f091xc.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F091xC INTERFACE) -target_sources(mbed-core +target_sources(STM32F091xC INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F091xC INTERFACE . ) + +mbed_set_linker_script(STM32F091xC ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F091xC INTERFACE STM32F0) diff --git a/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F091xC/TARGET_NUCLEO_F091RC/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F091xC/TARGET_NUCLEO_F091RC/CMakeLists.txt index 118fbc11897..a141ea5b55d 100644 --- a/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F091xC/TARGET_NUCLEO_F091RC/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F0/TARGET_STM32F091xC/TARGET_NUCLEO_F091RC/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_F091RC INTERFACE) + +target_sources(NUCLEO_F091RC INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_F091RC INTERFACE . ) + +target_link_libraries(NUCLEO_F091RC INTERFACE STM32F091xC) diff --git a/targets/TARGET_STM/TARGET_STM32F1/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F1/CMakeLists.txt index 2dfc6dc8636..d120a1086ff 100644 --- a/targets/TARGET_STM/TARGET_STM32F1/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F1/CMakeLists.txt @@ -1,13 +1,13 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("STM32F103x8" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F103x8) -elseif("STM32F103xB" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F103xB) -endif() +add_subdirectory(TARGET_STM32F103x8 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F103xB EXCLUDE_FROM_ALL) +add_subdirectory(STM32Cube_FW EXCLUDE_FROM_ALL) -target_sources(mbed-core +add_library(STM32F1 INTERFACE) + +target_sources(STM32F1 INTERFACE analogin_device.c flash_api.c @@ -17,9 +17,9 @@ target_sources(mbed-core spi_api.c ) -add_subdirectory(STM32Cube_FW) - -target_include_directories(mbed-core +target_include_directories(STM32F1 INTERFACE . ) + +target_link_libraries(STM32F1 INTERFACE STM STM32F1Cube_FW) diff --git a/targets/TARGET_STM/TARGET_STM32F1/STM32Cube_FW/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F1/STM32Cube_FW/CMakeLists.txt index dbcb3ac17b0..0d836cbbc3b 100644 --- a/targets/TARGET_STM/TARGET_STM32F1/STM32Cube_FW/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F1/STM32Cube_FW/CMakeLists.txt @@ -1,7 +1,9 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(STM32F1Cube_FW INTERFACE) + +target_sources(STM32F1Cube_FW INTERFACE STM32F1xx_HAL_Driver/Legacy/stm32f1xx_hal_can_legacy.c STM32F1xx_HAL_Driver/stm32f1xx_hal.c @@ -65,7 +67,7 @@ target_sources(mbed-core system_stm32f1xx.c ) -target_include_directories(mbed-core +target_include_directories(STM32F1Cube_FW INTERFACE . CMSIS diff --git a/targets/TARGET_STM/TARGET_STM32F1/TARGET_STM32F103x8/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F1/TARGET_STM32F103x8/CMakeLists.txt index 516ad90e2f8..1b385f375a4 100644 --- a/targets/TARGET_STM/TARGET_STM32F1/TARGET_STM32F103x8/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F1/TARGET_STM32F103x8/CMakeLists.txt @@ -9,15 +9,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f103x8.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F103x8 INTERFACE) -target_sources(mbed-core +target_sources(STM32F103x8 INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F103x8 INTERFACE . ) + +mbed_set_linker_script(STM32F103x8 ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F103x8 INTERFACE STM32F1) diff --git a/targets/TARGET_STM/TARGET_STM32F1/TARGET_STM32F103xB/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F1/TARGET_STM32F103xB/CMakeLists.txt index d089f9f3fb4..2ef2bfd67b4 100644 --- a/targets/TARGET_STM/TARGET_STM32F1/TARGET_STM32F103xB/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F1/TARGET_STM32F103xB/CMakeLists.txt @@ -1,11 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_F103RB" IN_LIST MBED_TARGET_LABELS) - target_include_directories(mbed-core INTERFACE TARGET_NUCLEO_F103RB) - set(PERIPHERALPINS_FILE TARGET_NUCLEO_F103RB/PeripheralPins.c) - set(SYSTEM_CLOCK_FILE system_clock.c) -endif() +add_subdirectory(TARGET_NUCLEO_F103RB EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f103xb.S) @@ -15,16 +11,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f103xb.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F103xB INTERFACE) -target_sources(mbed-core +target_sources(STM32F103xB INTERFACE - ${PERIPHERALPINS_FILE} + system_clock.c ${STARTUP_FILE} - ${SYSTEM_CLOCK_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F103xB INTERFACE . ) + +mbed_set_linker_script(STM32F103xB ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F103xB INTERFACE STM32F1) diff --git a/targets/TARGET_STM/TARGET_STM32F1/TARGET_STM32F103xB/TARGET_NUCLEO_F103RB/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F1/TARGET_STM32F103xB/TARGET_NUCLEO_F103RB/CMakeLists.txt new file mode 100644 index 00000000000..e28a87fc56b --- /dev/null +++ b/targets/TARGET_STM/TARGET_STM32F1/TARGET_STM32F103xB/TARGET_NUCLEO_F103RB/CMakeLists.txt @@ -0,0 +1,16 @@ +# Copyright (c) 2021 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +add_library(NUCLEO_F103RB INTERFACE) + +target_sources(NUCLEO_F103RB + INTERFACE + PeripheralPins.c +) + +target_include_directories(NUCLEO_F103RB + INTERFACE + . +) + +target_link_libraries(NUCLEO_F103RB INTERFACE STM32F103xB) diff --git a/targets/TARGET_STM/TARGET_STM32F2/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F2/CMakeLists.txt index af172c9ab18..9366dbe1b42 100644 --- a/targets/TARGET_STM/TARGET_STM32F2/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F2/CMakeLists.txt @@ -1,25 +1,23 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_F207ZG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F207xG) -endif() +add_subdirectory(TARGET_STM32F207xG EXCLUDE_FROM_ALL) +add_subdirectory(STM32Cube_FW EXCLUDE_FROM_ALL) -target_sources(mbed-core - INTERFACE - analogin_device.c - analogout_device.c - flash_api.c - gpio_irq_device.c - pwmout_device.c - serial_device.c - spi_api.c +add_library(STM32F2 INTERFACE) +target_sources(STM32F2 + INTERFACE + analogin_device.c + analogout_device.c + flash_api.c + gpio_irq_device.c + pwmout_device.c + serial_device.c + spi_api.c ) -add_subdirectory(STM32Cube_FW) - -target_include_directories(mbed-core +target_include_directories(STM32F2 INTERFACE . ./STM32Cube_FW @@ -27,3 +25,5 @@ target_include_directories(mbed-core ./STM32Cube_FW/STM32F2xx_HAL_Driver ./STM32Cube_FW/STM32F2xx_HAL_Driver/Legacy ) + +target_link_libraries(STM32F2 INTERFACE STM STM32F2Cube_FW) diff --git a/targets/TARGET_STM/TARGET_STM32F2/STM32Cube_FW/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F2/STM32Cube_FW/CMakeLists.txt index a0bac34cd52..35699dcd758 100644 --- a/targets/TARGET_STM/TARGET_STM32F2/STM32Cube_FW/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F2/STM32Cube_FW/CMakeLists.txt @@ -1,7 +1,9 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(STM32F2Cube_FW INTERFACE) + +target_sources(STM32F2Cube_FW INTERFACE STM32F2xx_HAL_Driver/Legacy/stm32f2xx_hal_can_legacy.c STM32F2xx_HAL_Driver/stm32f2xx_hal.c @@ -71,7 +73,7 @@ target_sources(mbed-core system_stm32f2xx.c ) -target_include_directories(mbed-core +target_include_directories(STM32F2Cube_FW INTERFACE . CMSIS diff --git a/targets/TARGET_STM/TARGET_STM32F2/TARGET_STM32F207xG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F2/TARGET_STM32F207xG/CMakeLists.txt index 7fe1bfc03de..edb8f460d36 100644 --- a/targets/TARGET_STM/TARGET_STM32F2/TARGET_STM32F207xG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F2/TARGET_STM32F207xG/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_F207ZG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F207ZG) -endif() +add_subdirectory(TARGET_NUCLEO_F207ZG EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f207xx.S) @@ -13,15 +11,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f207xg.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F207xG INTERFACE) -target_sources(mbed-core +target_sources(STM32F207xG INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F207xG INTERFACE . ) + +mbed_set_linker_script(STM32F207xG ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F207xG INTERFACE STM32F2) diff --git a/targets/TARGET_STM/TARGET_STM32F2/TARGET_STM32F207xG/TARGET_NUCLEO_F207ZG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F2/TARGET_STM32F207xG/TARGET_NUCLEO_F207ZG/CMakeLists.txt index 118fbc11897..562af04c26c 100644 --- a/targets/TARGET_STM/TARGET_STM32F2/TARGET_STM32F207xG/TARGET_NUCLEO_F207ZG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F2/TARGET_STM32F207xG/TARGET_NUCLEO_F207ZG/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_F207ZG INTERFACE) + +target_sources(NUCLEO_F207ZG INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_F207ZG INTERFACE . ) + +target_link_libraries(NUCLEO_F207ZG INTERFACE STM32F207xG) diff --git a/targets/TARGET_STM/TARGET_STM32F3/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F3/CMakeLists.txt index 830fa290ee2..47c3f04feed 100644 --- a/targets/TARGET_STM/TARGET_STM32F3/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F3/CMakeLists.txt @@ -1,26 +1,21 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("STM32F302x8" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F302x8) -elseif("STM32F303x8" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F303x8) -elseif("STM32F303xC" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F303xC) -elseif("STM32F303xE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F303xE) -elseif("STM32F334x8" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F334x8) -endif() +add_subdirectory(TARGET_STM32F302x8 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F303x8 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F303xC EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F303xE EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F334x8 EXCLUDE_FROM_ALL) +add_subdirectory(STM32Cube_FW EXCLUDE_FROM_ALL) -add_subdirectory(STM32Cube_FW) +add_library(STM32F3 INTERFACE) -target_include_directories(mbed-core +target_include_directories(STM32F3 INTERFACE . ) -target_sources(mbed-core +target_sources(STM32F3 INTERFACE analogin_device.c analogout_device.c @@ -30,3 +25,5 @@ target_sources(mbed-core serial_device.c spi_api.c ) + +target_link_libraries(STM32F3 INTERFACE STM STM32F3Cube_FW) diff --git a/targets/TARGET_STM/TARGET_STM32F3/STM32Cube_FW/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F3/STM32Cube_FW/CMakeLists.txt index 46f24da3cc5..3987e211534 100644 --- a/targets/TARGET_STM/TARGET_STM32F3/STM32Cube_FW/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F3/STM32Cube_FW/CMakeLists.txt @@ -1,7 +1,9 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(STM32F3Cube_FW INTERFACE) + +target_sources(STM32F3Cube_FW INTERFACE STM32F3xx_HAL_Driver/Legacy/stm32f3xx_hal_can_legacy.c STM32F3xx_HAL_Driver/stm32f3xx_hal.c @@ -77,7 +79,7 @@ target_sources(mbed-core system_stm32f3xx.c ) -target_include_directories(mbed-core +target_include_directories(STM32F3Cube_FW INTERFACE . CMSIS diff --git a/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F302x8/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F302x8/CMakeLists.txt new file mode 100644 index 00000000000..a4d1fe9180c --- /dev/null +++ b/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F302x8/CMakeLists.txt @@ -0,0 +1,21 @@ +# Copyright (c) 2021 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") + set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f302x8.S) + set(LINKER_FILE TOOLCHAIN_GCC_ARM/STM32F302X8.ld) +elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") + set(STARTUP_FILE TOOLCHAIN_ARM/startup_stm32f302x8.S) + set(LINKER_FILE TOOLCHAIN_ARM/stm32f302x8.sct) +endif() + +add_library(STM32F302x8 INTERFACE) + +target_include_directories(STM32F302x8 + INTERFACE + . +) + +mbed_set_linker_script(STM32F302x8 ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F302x8 INTERFACE STM32F3) diff --git a/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303x8/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303x8/CMakeLists.txt index b17734b2280..25dff1478c0 100644 --- a/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303x8/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303x8/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_F303K8" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F303K8) -endif() +add_subdirectory(TARGET_NUCLEO_F303K8 EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f303x8.S) @@ -13,15 +11,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f303x8.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F303x8 INTERFACE) -target_sources(mbed-core +target_sources(STM32F303x8 INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F303x8 INTERFACE . ) + +mbed_set_linker_script(STM32F303x8 ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F303x8 INTERFACE STM32F3) diff --git a/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303x8/TARGET_NUCLEO_F303K8/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303x8/TARGET_NUCLEO_F303K8/CMakeLists.txt index 3978dec3fed..313a1587d05 100644 --- a/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303x8/TARGET_NUCLEO_F303K8/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303x8/TARGET_NUCLEO_F303K8/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_include_directories(mbed-core +add_library(NUCLEO_F303K8 INTERFACE) + +target_include_directories(NUCLEO_F303K8 INTERFACE . ) -target_sources(mbed-core +target_sources(NUCLEO_F303K8 INTERFACE PeripheralPins.c ) + +target_link_libraries(NUCLEO_F303K8 INTERFACE STM32F303x8) diff --git a/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xC/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xC/CMakeLists.txt index 866fc7ee67b..4cb5e7bc7eb 100644 --- a/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xC/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xC/CMakeLists.txt @@ -1,10 +1,6 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_F303K8" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F303K8) -endif() - if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f303xc.S) set(LINKER_FILE TOOLCHAIN_GCC_ARM/STM32F303XC.ld) @@ -13,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f303xc.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F303xC INTERFACE) -target_sources(mbed-core +target_sources(STM32F303xC INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F303xC INTERFACE . ) + +mbed_set_linker_script(STM32F303xC ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F303xC INTERFACE STM32F3) diff --git a/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xE/CMakeLists.txt index c72616fa8b8..dc2adabbb4b 100644 --- a/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xE/CMakeLists.txt @@ -1,11 +1,8 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_F303RE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F303RE) -elseif("NUCLEO_F303ZE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F303ZE) -endif() +add_subdirectory(TARGET_NUCLEO_F303RE EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_NUCLEO_F303ZE EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f303xe.S) @@ -15,15 +12,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f303xe.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F303xE INTERFACE) -target_sources(mbed-core +target_sources(STM32F303xE INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F303xE INTERFACE . ) + +mbed_set_linker_script(STM32F303xE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F303xE INTERFACE STM32F3) diff --git a/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xE/TARGET_NUCLEO_F303RE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xE/TARGET_NUCLEO_F303RE/CMakeLists.txt index 118fbc11897..a07de810862 100644 --- a/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xE/TARGET_NUCLEO_F303RE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xE/TARGET_NUCLEO_F303RE/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_F303RE INTERFACE) + +target_sources(NUCLEO_F303RE INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_F303RE INTERFACE . ) + +target_link_libraries(NUCLEO_F303RE INTERFACE STM32F303xE) diff --git a/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xE/TARGET_NUCLEO_F303ZE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xE/TARGET_NUCLEO_F303ZE/CMakeLists.txt index 118fbc11897..37c4ff3c087 100644 --- a/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xE/TARGET_NUCLEO_F303ZE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F303xE/TARGET_NUCLEO_F303ZE/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_F303ZE INTERFACE) + +target_sources(NUCLEO_F303ZE INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_F303ZE INTERFACE . ) + +target_link_libraries(NUCLEO_F303ZE INTERFACE STM32F303xE) diff --git a/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F334x8/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F334x8/CMakeLists.txt index f30f6203b4c..739a2842b3b 100644 --- a/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F334x8/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F3/TARGET_STM32F334x8/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f334x8.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F334x8 INTERFACE) -target_sources(mbed-core +target_sources(STM32F334x8 INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F334x8 INTERFACE . ) + +mbed_set_linker_script(STM32F334x8 ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F334x8 INTERFACE STM32F3) diff --git a/targets/TARGET_STM/TARGET_STM32F4/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/CMakeLists.txt index 911712e1cfd..8b19cdb5575 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/CMakeLists.txt @@ -1,39 +1,26 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("MTS_DRAGONFLY_F411RE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_MTS_DRAGONFLY_F411RE) -elseif("MTS_MDOT_F411RE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_MTS_MDOT_F411RE) -elseif("STM32F401xC" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F401xC) -elseif("STM32F401xE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F401xE) -elseif("STM32F407xE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F407xE) -elseif("STM32F407xG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F407xG) -elseif("STM32F410xB" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F410xB) -elseif("STM32F411xE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F411xE) -elseif("STM32F412xG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F412xG) -elseif("STM32F413xH" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F413xH) -elseif("STM32F429xI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F429xI) -elseif("STM32F437xG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F437xG) -elseif("STM32F439xI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F439xI) -elseif("STM32F446xE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F446xE) -elseif("STM32F469xI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F469xI) -endif() +add_subdirectory(TARGET_MTS_DRAGONFLY_F411RE EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_MTS_MDOT_F411RE EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F401xC EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F401xE EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F407xE EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F407xG EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F410xB EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F411xE EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F412xG EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F413xH EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F429xI EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F437xG EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F439xI EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F446xE EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F469xI EXCLUDE_FROM_ALL) +add_subdirectory(STM32Cube_FW EXCLUDE_FROM_ALL) -target_sources(mbed-core +add_library(STM32F4 INTERFACE) + +target_sources(STM32F4 INTERFACE analogin_device.c analogout_device.c @@ -44,13 +31,9 @@ target_sources(mbed-core spi_api.c ) -add_subdirectory(STM32Cube_FW) - -target_include_directories(mbed-core +target_include_directories(STM32F4 INTERFACE . - ./STM32Cube_FW - ./STM32Cube_FW/CMSIS - ./STM32Cube_FW/STM32F4xx_HAL_Driver - ./STM32Cube_FW/STM32F4xx_HAL_Driver/Legacy ) + +target_link_libraries(STM32F4 INTERFACE STM STM32F4Cube_FW) diff --git a/targets/TARGET_STM/TARGET_STM32F4/STM32Cube_FW/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/STM32Cube_FW/CMakeLists.txt index c310643dda2..b2d9ca12d7b 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/STM32Cube_FW/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/STM32Cube_FW/CMakeLists.txt @@ -1,15 +1,19 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -add_subdirectory(STM32F4xx_HAL_Driver) +add_subdirectory(STM32F4xx_HAL_Driver EXCLUDE_FROM_ALL) -target_sources(mbed-core +add_library(STM32F4Cube_FW INTERFACE) + +target_sources(STM32F4Cube_FW INTERFACE system_stm32f4xx.c ) -target_include_directories(mbed-core +target_include_directories(STM32F4Cube_FW INTERFACE . ./CMSIS ) + +target_link_libraries(STM32F4Cube_FW INTERFACE STM32F4xx_HAL_Driver) diff --git a/targets/TARGET_STM/TARGET_STM32F4/STM32Cube_FW/STM32F4xx_HAL_Driver/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/STM32Cube_FW/STM32F4xx_HAL_Driver/CMakeLists.txt index cb38ed42b3e..d56730b445e 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/STM32Cube_FW/STM32F4xx_HAL_Driver/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/STM32Cube_FW/STM32F4xx_HAL_Driver/CMakeLists.txt @@ -1,9 +1,11 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -add_subdirectory(Legacy) +add_subdirectory(Legacy EXCLUDE_FROM_ALL) -target_sources(mbed-core +add_library(STM32F4xx_HAL_Driver INTERFACE) + +target_sources(STM32F4xx_HAL_Driver INTERFACE stm32f4xx_hal.c stm32f4xx_hal_adc.c @@ -96,7 +98,9 @@ target_sources(mbed-core stm32f4xx_ll_utils.c ) -target_include_directories(mbed-core +target_include_directories(STM32F4xx_HAL_Driver INTERFACE . ) + +target_link_libraries(STM32F4xx_HAL_Driver INTERFACE STM32F4xxLegacyHAL) diff --git a/targets/TARGET_STM/TARGET_STM32F4/STM32Cube_FW/STM32F4xx_HAL_Driver/Legacy/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/STM32Cube_FW/STM32F4xx_HAL_Driver/Legacy/CMakeLists.txt index e72f49be961..14eed88b0d2 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/STM32Cube_FW/STM32F4xx_HAL_Driver/Legacy/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/STM32Cube_FW/STM32F4xx_HAL_Driver/Legacy/CMakeLists.txt @@ -1,12 +1,14 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(STM32F4xxLegacyHAL INTERFACE) + +target_sources(STM32F4xxLegacyHAL INTERFACE stm32f4xx_hal_can_legacy.c ) -target_include_directories(mbed-core +target_include_directories(STM32F4xxLegacyHAL INTERFACE . ) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_MTS_DRAGONFLY_F411RE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_MTS_DRAGONFLY_F411RE/CMakeLists.txt index b949f92e4a6..c79ab554bff 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_MTS_DRAGONFLY_F411RE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_MTS_DRAGONFLY_F411RE/CMakeLists.txt @@ -9,9 +9,9 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f411re.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(MTS_DRAGONFLY_F411RE INTERFACE) -target_sources(mbed-core +target_sources(MTS_DRAGONFLY_F411RE INTERFACE system_clock.c ONBOARD_TELIT_HE910.cpp @@ -19,7 +19,11 @@ target_sources(mbed-core ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(MTS_DRAGONFLY_F411RE INTERFACE . ) + +mbed_set_linker_script(MTS_DRAGONFLY_F411RE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(MTS_DRAGONFLY_F411RE INTERFACE STM32F4) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_MTS_MDOT_F411RE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_MTS_MDOT_F411RE/CMakeLists.txt index 6a166642ead..553450054bd 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_MTS_MDOT_F411RE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_MTS_MDOT_F411RE/CMakeLists.txt @@ -9,16 +9,20 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f411re.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(MTS_MDOT_F411RE INTERFACE) -target_sources(mbed-core +target_sources(MTS_MDOT_F411RE INTERFACE system_clock.c PeripheralPins.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(MTS_MDOT_F411RE INTERFACE . ) + +mbed_set_linker_script(MTS_MDOT_F411RE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(MTS_MDOT_F411RE INTERFACE STM32F4) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F401xC/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F401xC/CMakeLists.txt index 619040ae7da..566836bf4c4 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F401xC/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F401xC/CMakeLists.txt @@ -6,16 +6,20 @@ if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(LINKER_FILE TOOLCHAIN_GCC_ARM/STM32F401XC.ld) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F401xC INTERFACE) -target_sources(mbed-core +target_sources(STM32F401xC INTERFACE system_clock.c PeripheralPins.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F401xC INTERFACE . ) + +mbed_set_linker_script(STM32F401xC ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F401xC INTERFACE STM32F4) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F401xE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F401xE/CMakeLists.txt index 7d890d6f265..2e9474384a3 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F401xE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F401xE/CMakeLists.txt @@ -1,6 +1,8 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 +add_subdirectory(TARGET_NUCLEO_F401RE EXCLUDE_FROM_ALL) + if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f401xe.S) set(LINKER_FILE TOOLCHAIN_GCC_ARM/STM32F401XE.ld) @@ -9,18 +11,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f401xe.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) - -if("NUCLEO_F401RE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F401RE) -endif() +add_library(STM32F401xE INTERFACE) -target_sources(mbed-core - INTERFACE +target_sources(STM32F401xE + INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F401xE INTERFACE . ) + +mbed_set_linker_script(STM32F401xE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F401xE INTERFACE STM32F4) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F401xE/TARGET_NUCLEO_F401RE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F401xE/TARGET_NUCLEO_F401RE/CMakeLists.txt index c4d3e2a096c..9d7227a9839 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F401xE/TARGET_NUCLEO_F401RE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F401xE/TARGET_NUCLEO_F401RE/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_include_directories(mbed-core +add_library(NUCLEO_F401RE INTERFACE) + +target_include_directories(NUCLEO_F401RE INTERFACE . ) -target_sources(mbed-core +target_sources(NUCLEO_F401RE INTERFACE PeripheralPins.c system_clock.c ) + +target_link_libraries(NUCLEO_F401RE INTERFACE STM32F401xE) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F407xE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F407xE/CMakeLists.txt index 432767614d9..c54cf990f3c 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F407xE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F407xE/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("ARCH_MAX" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_ARCH_MAX) -endif() +add_subdirectory(TARGET_ARCH_MAX INTERFACE) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f407xx.S) @@ -13,14 +11,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/STM32F407xx.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F407xE INTERFACE) -target_sources(mbed-core - INTERFACE +target_sources(STM32F407xE + INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F407xE INTERFACE . ) + +mbed_set_linker_script(STM32F407xE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F407xE INTERFACE STM32F4) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F407xE/TARGET_ARCH_MAX/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F407xE/TARGET_ARCH_MAX/CMakeLists.txt index ab87e56f903..c5fa34b8a49 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F407xE/TARGET_ARCH_MAX/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F407xE/TARGET_ARCH_MAX/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core - INTERFACE +add_library(ARCH_MAX INTERFACE) + +target_sources(ARCH_MAX + INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(ARCH_MAX INTERFACE . ) + +target_link_libraries(ARCH_MAX INTERFACE STM32F407xE) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F407xG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F407xG/CMakeLists.txt index efc0838aaa5..d12a8816dd5 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F407xG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F407xG/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/STM32F407xx.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F407xG INTERFACE) -target_sources(mbed-core - INTERFACE +target_sources(STM32F407xG + INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F407xG INTERFACE . ) + +mbed_set_linker_script(STM32F407xG ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F407xG INTERFACE STM32F4) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F410xB/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F410xB/CMakeLists.txt index 97e642be1d1..c1ea2118f2d 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F410xB/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F410xB/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f410xb.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F410xB INTERFACE) -target_sources(mbed-core - INTERFACE +target_sources(STM32F410xB + INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F410xB INTERFACE . ) + +mbed_set_linker_script(STM32F410xB ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F410xB INTERFACE STM32F4) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F411xE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F411xE/CMakeLists.txt index 7ac4fa28fd8..1c7d6051813 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F411xE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F411xE/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_F411RE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F411RE) -endif() +add_subdirectory(TARGET_NUCLEO_F411RE EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f411xe.S) @@ -13,14 +11,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f411re.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F411xE INTERFACE) -target_sources(mbed-core - INTERFACE +target_sources(STM32F411xE + INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F411xE INTERFACE . ) + +mbed_set_linker_script(STM32F411xE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F411xE INTERFACE STM32F4) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F411xE/TARGET_NUCLEO_F411RE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F411xE/TARGET_NUCLEO_F411RE/CMakeLists.txt index ab87e56f903..fbd62e43c2e 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F411xE/TARGET_NUCLEO_F411RE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F411xE/TARGET_NUCLEO_F411RE/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core - INTERFACE +add_library(NUCLEO_F411RE INTERFACE) + +target_sources(NUCLEO_F411RE + INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_F411RE INTERFACE . ) + +target_link_libraries(NUCLEO_F411RE INTERFACE STM32F411xE) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F412xG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F412xG/CMakeLists.txt index 51478689565..3836d33809b 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F412xG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F412xG/CMakeLists.txt @@ -1,11 +1,8 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_F412ZG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F412ZG) -elseif("WIO_EMW3166" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_WIO_EMW3166) -endif() +add_subdirectory(TARGET_NUCLEO_F412ZG EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_WIO_EMW3166 EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f412zx.S) @@ -15,15 +12,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f412xg.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F412xG INTERFACE) -target_sources(mbed-core +target_sources(STM32F412xG INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F412xG INTERFACE . ) + +mbed_set_linker_script(STM32F412xG ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F412xG INTERFACE STM32F4) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F412xG/TARGET_NUCLEO_F412ZG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F412xG/TARGET_NUCLEO_F412ZG/CMakeLists.txt index 118fbc11897..492476ddc38 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F412xG/TARGET_NUCLEO_F412ZG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F412xG/TARGET_NUCLEO_F412ZG/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_F412ZG INTERFACE) + +target_sources(NUCLEO_F412ZG INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_F412ZG INTERFACE . ) + +target_link_libraries(NUCLEO_F412ZG INTERFACE STM32F412xG) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F412xG/TARGET_WIO_EMW3166/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F412xG/TARGET_WIO_EMW3166/CMakeLists.txt index 118fbc11897..f354760aaf6 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F412xG/TARGET_WIO_EMW3166/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F412xG/TARGET_WIO_EMW3166/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(WIO_EMW3166 INTERFACE) + +target_sources(WIO_EMW3166 INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(WIO_EMW3166 INTERFACE . ) + +target_link_libraries(WIO_EMW3166 INTERFACE STM32F412xG) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F413xH/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F413xH/CMakeLists.txt index fd8776b4e0d..65f02a5ecea 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F413xH/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F413xH/CMakeLists.txt @@ -1,21 +1,9 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("DISCO_F413ZH" IN_LIST MBED_TARGET_LABELS) - target_include_directories(mbed-core INTERFACE TARGET_DISCO_F413ZH) - set(PERIPHERALPINS_FILE TARGET_DISCO_F413ZH/PeripheralPins.c) - set(SYSTEM_CLOCK_FILE TARGET_DISCO_F413ZH/system_clock.c) -elseif("MTS_DRAGONFLY_F413RH" IN_LIST MBED_TARGET_LABELS) - target_include_directories(mbed-core INTERFACE TARGET_MTS_DRAGONFLY_F413RH) - set(PERIPHERALPINS_FILE TARGET_MTS_DRAGONFLY_F413RH/PeripheralPins.c) - set(SYSTEM_CLOCK_FILE TARGET_MTS_DRAGONFLY_F413RH/system_clock.c) - - target_sources(mbed-core INTERFACE TARGET_MTS_DRAGONFLY_F413RH/ONBOARD_TELIT_HE910.cpp) -elseif("NUCLEO_F413ZH" IN_LIST MBED_TARGET_LABELS) - target_include_directories(mbed-core INTERFACE TARGET_NUCLEO_F413ZH) - set(PERIPHERALPINS_FILE TARGET_NUCLEO_F413ZH/PeripheralPins.c) - set(SYSTEM_CLOCK_FILE TARGET_NUCLEO_F413ZH/system_clock.c) -endif() +add_subdirectory(TARGET_DISCO_F413ZH EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_MTS_DRAGONFLY_F413RH EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_NUCLEO_F413ZH EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f413xx.S) @@ -25,16 +13,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f413xh.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F413xH INTERFACE) -target_sources(mbed-core +target_sources(STM32F413xH INTERFACE - ${PERIPHERALPINS_FILE} ${STARTUP_FILE} - ${SYSTEM_CLOCK_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F413xH INTERFACE . ) + +mbed_set_linker_script(STM32F413xH ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F413xH INTERFACE STM32F4) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F413xH/TARGET_DISCO_F413ZH/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F413xH/TARGET_DISCO_F413ZH/CMakeLists.txt new file mode 100644 index 00000000000..c537711c070 --- /dev/null +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F413xH/TARGET_DISCO_F413ZH/CMakeLists.txt @@ -0,0 +1,17 @@ +# Copyright (c) 2021 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +add_library(DISCO_F413ZH INTERFACE) + +target_sources(DISCO_F413ZH + INTERFACE + PeripheralPins.c + system_clock.c +) + +target_include_directories(DISCO_F413ZH + INTERFACE + . +) + +target_link_libraries(DISCO_F413ZH INTERFACE STM32F413xH) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F413xH/TARGET_MTS_DRAGONFLY_F413RH/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F413xH/TARGET_MTS_DRAGONFLY_F413RH/CMakeLists.txt new file mode 100644 index 00000000000..b5a3e48d0fd --- /dev/null +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F413xH/TARGET_MTS_DRAGONFLY_F413RH/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2021 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +add_library(MTS_DRAGONFLY_F413RH INTERFACE) + +target_sources(MTS_DRAGONFLY_F413RH + INTERFACE + PeripheralPins.c + system_clock.c + ONBOARD_TELIT_HE910.cpp +) + +target_include_directories(MTS_DRAGONFLY_F413RH + INTERFACE + . +) + +target_link_libraries(MTS_DRAGONFLY_F413RH INTERFACE STM32F413xH) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F413xH/TARGET_NUCLEO_F413ZH/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F413xH/TARGET_NUCLEO_F413ZH/CMakeLists.txt new file mode 100644 index 00000000000..fd217768854 --- /dev/null +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F413xH/TARGET_NUCLEO_F413ZH/CMakeLists.txt @@ -0,0 +1,17 @@ +# Copyright (c) 2021 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +add_library(NUCLEO_F413ZH INTERFACE) + +target_sources(NUCLEO_F413ZH + INTERFACE + PeripheralPins.c + system_clock.c +) + +target_include_directories(NUCLEO_F413ZH + INTERFACE + . +) + +target_link_libraries(NUCLEO_F413ZH INTERFACE STM32F413xH) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F429xI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F429xI/CMakeLists.txt index 9f095d04539..e969e13d8dc 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F429xI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F429xI/CMakeLists.txt @@ -1,11 +1,8 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("DISCO_F429ZI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_DISCO_F429ZI) -elseif("NUCLEO_F429ZI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F429ZI) -endif() +add_subdirectory(TARGET_DISCO_F429ZI EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_NUCLEO_F429ZI EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f429xx.S) @@ -15,15 +12,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f429xx.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F429xI INTERFACE) -target_sources(mbed-core +target_sources(STM32F429xI INTERFACE system_init_pre.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F429xI INTERFACE . ) + +mbed_set_linker_script(STM32F429xI ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F429xI INTERFACE STM32F4) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F429xI/TARGET_DISCO_F429ZI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F429xI/TARGET_DISCO_F429ZI/CMakeLists.txt index 3a805bbdaaf..ccc62c2018e 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F429xI/TARGET_DISCO_F429ZI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F429xI/TARGET_DISCO_F429ZI/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(DISCO_F429ZI INTERFACE) + +target_sources(DISCO_F429ZI INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(DISCO_F429ZI INTERFACE . ) + +target_link_libraries(DISCO_F429ZI INTERFACE STM32F429xI) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F429xI/TARGET_NUCLEO_F429ZI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F429xI/TARGET_NUCLEO_F429ZI/CMakeLists.txt index 3a805bbdaaf..818e1d89637 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F429xI/TARGET_NUCLEO_F429ZI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F429xI/TARGET_NUCLEO_F429ZI/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_F429ZI INTERFACE) + +target_sources(NUCLEO_F429ZI INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_F429ZI INTERFACE . ) + +target_link_libraries(NUCLEO_F429ZI INTERFACE STM32F429xI) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F437xG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F437xG/CMakeLists.txt index 33acba99891..87b72ce8727 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F437xG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F437xG/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f437xx.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F437xG INTERFACE) -target_sources(mbed-core +target_sources(STM32F437xG INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F437xG INTERFACE . ) + +mbed_set_linker_script(STM32F437xG ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F437xG INTERFACE STM32F4) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/CMakeLists.txt index 48674dbcf07..eb2b7e43a19 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/CMakeLists.txt @@ -1,21 +1,9 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_F439ZI" IN_LIST MBED_TARGET_LABELS) - target_include_directories(mbed-core INTERFACE TARGET_NUCLEO_F439ZI) - set(PERIPHERALPINS_FILE TARGET_NUCLEO_F439ZI/PeripheralPins.c) - set(SYSTEM_CLOCK_FILE TARGET_NUCLEO_F439ZI/system_clock.c) -elseif("WIO_3G" IN_LIST MBED_TARGET_LABELS) - target_include_directories(mbed-core INTERFACE TARGET_WIO_3G) - set(PERIPHERALPINS_FILE TARGET_WIO_3G/PeripheralPins.c) - set(SYSTEM_CLOCK_FILE TARGET_WIO_3G/system_clock.c) - target_sources(mbed-core INTERFACE TARGET_WIO_3G/ONBOARD_QUECTEL_UG96.cpp) -elseif("WIO_BG96" IN_LIST MBED_TARGET_LABELS) - target_include_directories(mbed-core INTERFACE TARGET_WIO_BG96) - set(PERIPHERALPINS_FILE TARGET_WIO_BG96/PeripheralPins.c) - set(SYSTEM_CLOCK_FILE TARGET_WIO_BG96/system_clock.c) - target_sources(mbed-core INTERFACE TARGET_WIO_BG96/ONBOARD_QUECTEL_BG96.cpp) -endif() +add_subdirectory(TARGET_NUCLEO_F439ZI EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_WIO_3G EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_WIO_BG96 EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f439xx.S) @@ -25,16 +13,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f439xx.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F439xI INTERFACE) -target_sources(mbed-core +target_sources(STM32F439xI INTERFACE - ${PERIPHERALPINS_FILE} ${STARTUP_FILE} - ${SYSTEM_CLOCK_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F439xI INTERFACE . ) + +mbed_set_linker_script(STM32F439xI ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F439xI INTERFACE STM32F4) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_NUCLEO_F439ZI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_NUCLEO_F439ZI/CMakeLists.txt new file mode 100644 index 00000000000..3b894e121f6 --- /dev/null +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_NUCLEO_F439ZI/CMakeLists.txt @@ -0,0 +1,17 @@ +# Copyright (c) 2021 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +add_library(NUCLEO_F439ZI INTERFACE) + +target_sources(NUCLEO_F439ZI + INTERFACE + PeripheralPins.c + system_clock.c +) + +target_include_directories(NUCLEO_F439ZI + INTERFACE + . +) + +target_link_libraries(NUCLEO_F439ZI INTERFACE STM32F439xI) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_WIO_3G/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_WIO_3G/CMakeLists.txt new file mode 100644 index 00000000000..3bd90bb6374 --- /dev/null +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_WIO_3G/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2021 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +add_library(WIO_3G INTERFACE) + +target_sources(WIO_3G + INTERFACE + PeripheralPins.c + system_clock.c + ONBOARD_QUECTEL_UG96.cpp +) + +target_include_directories(WIO_3G + INTERFACE + . +) + +target_link_libraries(WIO_3G INTERFACE STM32F439xI) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_WIO_BG96/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_WIO_BG96/CMakeLists.txt new file mode 100644 index 00000000000..4dd2c62bdf4 --- /dev/null +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_WIO_BG96/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2021 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +add_library(WIO_BG96 INTERFACE) + +target_sources(WIO_BG96 + INTERFACE + PeripheralPins.c + system_clock.c + ONBOARD_QUECTEL_BG96.cpp +) + +target_include_directories(WIO_BG96 + INTERFACE + . +) + +target_link_libraries(WIO_BG96 INTERFACE STM32F439xI) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F446xE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F446xE/CMakeLists.txt index 89f1543089c..3aa6a71a443 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F446xE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F446xE/CMakeLists.txt @@ -1,11 +1,8 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_F446RE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F446RE) -elseif("NUCLEO_F446ZE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F446ZE) -endif() +add_subdirectory(TARGET_NUCLEO_F446RE EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_NUCLEO_F446ZE EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f446xx.S) @@ -15,14 +12,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f446xx.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F446xE INTERFACE) -target_sources(mbed-core +target_sources(STM32F446xE INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F446xE INTERFACE . ) + +mbed_set_linker_script(STM32F446xE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F446xE INTERFACE STM32F4) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F446xE/TARGET_NUCLEO_F446RE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F446xE/TARGET_NUCLEO_F446RE/CMakeLists.txt index 3a805bbdaaf..f1e65b3d5dd 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F446xE/TARGET_NUCLEO_F446RE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F446xE/TARGET_NUCLEO_F446RE/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_F446RE INTERFACE) + +target_sources(NUCLEO_F446RE INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_F446RE INTERFACE . ) + +target_link_libraries(NUCLEO_F446RE INTERFACE STM32F446xE) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F446xE/TARGET_NUCLEO_F446ZE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F446xE/TARGET_NUCLEO_F446ZE/CMakeLists.txt index 3a805bbdaaf..ae77e9fe016 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F446xE/TARGET_NUCLEO_F446ZE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F446xE/TARGET_NUCLEO_F446ZE/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_F446ZE INTERFACE) + +target_sources(NUCLEO_F446ZE INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_F446ZE INTERFACE . ) + +target_link_libraries(NUCLEO_F446ZE INTERFACE STM32F446xE) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F469xI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F469xI/CMakeLists.txt index cd6df6ae526..4f2e39a0eaf 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F469xI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F469xI/CMakeLists.txt @@ -1,11 +1,8 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("DISCO_F469NI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_DISCO_F469NI) -elseif("SDP_K1" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_SDP_K1) -endif() +add_subdirectory(TARGET_DISCO_F469NI EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_SDP_K1 EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f469xx.S) @@ -15,14 +12,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f469xx.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F469xI INTERFACE) -target_sources(mbed-core +target_sources(STM32F469xI INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F469xI INTERFACE . ) + +mbed_set_linker_script(STM32F469xI ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F469xI INTERFACE STM32F4) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F469xI/TARGET_DISCO_F469NI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F469xI/TARGET_DISCO_F469NI/CMakeLists.txt index 3a805bbdaaf..626cf46fb70 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F469xI/TARGET_DISCO_F469NI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F469xI/TARGET_DISCO_F469NI/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(DISCO_F469NI INTERFACE) + +target_sources(DISCO_F469NI INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(DISCO_F469NI INTERFACE . ) + +target_link_libraries(DISCO_F469NI INTERFACE STM32F469xI) diff --git a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F469xI/TARGET_SDP_K1/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F469xI/TARGET_SDP_K1/CMakeLists.txt index 3a805bbdaaf..9c76fb91d11 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F469xI/TARGET_SDP_K1/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F469xI/TARGET_SDP_K1/CMakeLists.txt @@ -1,13 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(SDP_K1 INTERFACE) + +target_sources(SDP_K1 INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(SDP_K1 INTERFACE . ) + target_link_libraries(SDP_K1 INTERFACE STM32F469xI) diff --git a/targets/TARGET_STM/TARGET_STM32F7/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F7/CMakeLists.txt index befde63ae42..11dcd3646aa 100644 --- a/targets/TARGET_STM/TARGET_STM32F7/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F7/CMakeLists.txt @@ -1,17 +1,15 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("STM32F746xG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F746xG) -elseif("STM32F756xG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F756xG) -elseif("STM32F767xI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F767xI) -elseif("STM32F769xI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32F769xI) -endif() +add_subdirectory(TARGET_STM32F746xG EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F756xG EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F767xI EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32F769xI EXCLUDE_FROM_ALL) +add_subdirectory(STM32Cube_FW EXCLUDE_FROM_ALL) -target_sources(mbed-core +add_library(STM32F7 INTERFACE) + +target_sources(STM32F7 INTERFACE analogin_device.c analogout_device.c @@ -22,9 +20,10 @@ target_sources(mbed-core spi_api.c ) -add_subdirectory(STM32Cube_FW) -target_include_directories(mbed-core +target_include_directories(STM32F7 INTERFACE . ) + +target_link_libraries(STM32F7 INTERFACE STM STM32F7Cube_FW) diff --git a/targets/TARGET_STM/TARGET_STM32F7/STM32Cube_FW/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F7/STM32Cube_FW/CMakeLists.txt index b0ff05ac155..df71523b29e 100644 --- a/targets/TARGET_STM/TARGET_STM32F7/STM32Cube_FW/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F7/STM32Cube_FW/CMakeLists.txt @@ -1,7 +1,9 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(STM32F7Cube_FW INTERFACE) + +target_sources(STM32F7Cube_FW INTERFACE system_stm32f7xx.c @@ -97,7 +99,7 @@ target_sources(mbed-core ) -target_include_directories(mbed-core +target_include_directories(STM32F7Cube_FW INTERFACE . CMSIS diff --git a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F746xG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F746xG/CMakeLists.txt index c6be51e7f9d..d766e1c4a5a 100644 --- a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F746xG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F746xG/CMakeLists.txt @@ -1,11 +1,8 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("DISCO_F746NG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_DISCO_F746NG) -elseif("NUCLEO_F746ZG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F746ZG) -endif() +add_subdirectory(TARGET_DISCO_F746NG EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_NUCLEO_F746ZG EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f746xx.S) @@ -15,14 +12,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f746xg.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F746xG INTERFACE) -target_sources(mbed-core +target_sources(STM32F746xG INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F746xG INTERFACE . ) + +mbed_set_linker_script(STM32F746xG ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F746xG INTERFACE STM32F7) diff --git a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F746xG/TARGET_DISCO_F746NG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F746xG/TARGET_DISCO_F746NG/CMakeLists.txt index 3a805bbdaaf..124de122874 100644 --- a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F746xG/TARGET_DISCO_F746NG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F746xG/TARGET_DISCO_F746NG/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(DISCO_F746NG INTERFACE) + +target_sources(DISCO_F746NG INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(DISCO_F746NG INTERFACE . ) + +target_link_libraries(DISCO_F746NG INTERFACE STM32F746xG) diff --git a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F746xG/TARGET_NUCLEO_F746ZG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F746xG/TARGET_NUCLEO_F746ZG/CMakeLists.txt index 3a805bbdaaf..22fdf1ebb9b 100644 --- a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F746xG/TARGET_NUCLEO_F746ZG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F746xG/TARGET_NUCLEO_F746ZG/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_F746ZG INTERFACE) + +target_sources(NUCLEO_F746ZG INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_F746ZG INTERFACE . ) + +target_link_libraries(NUCLEO_F746ZG INTERFACE STM32F746xG) diff --git a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F756xG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F756xG/CMakeLists.txt index 2badd7d9f71..e48a305a535 100644 --- a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F756xG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F756xG/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_F756ZG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F756ZG) -endif() +add_subdirectory(TARGET_NUCLEO_F756ZG EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f756xx.S) @@ -13,14 +11,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f756xg.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F756xG INTERFACE) -target_sources(mbed-core +target_sources(STM32F756xG INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F756xG INTERFACE . ) + +mbed_set_linker_script(STM32F756xG ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F756xG INTERFACE STM32F7) diff --git a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F756xG/TARGET_NUCLEO_F756ZG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F756xG/TARGET_NUCLEO_F756ZG/CMakeLists.txt index 3a805bbdaaf..ede92ac02d2 100644 --- a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F756xG/TARGET_NUCLEO_F756ZG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F756xG/TARGET_NUCLEO_F756ZG/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_F756ZG INTERFACE) + +target_sources(NUCLEO_F756ZG INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_F756ZG INTERFACE . ) + +target_link_libraries(NUCLEO_F756ZG INTERFACE STM32F756xG) diff --git a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F767xI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F767xI/CMakeLists.txt index d29dc1a30cd..1249d712b46 100644 --- a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F767xI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F767xI/CMakeLists.txt @@ -1,11 +1,8 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_F767ZI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_F767ZI) -elseif("UHURU_RAVEN" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_UHURU_RAVEN) -endif() +add_subdirectory(TARGET_NUCLEO_F767ZI EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_UHURU_RAVEN EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f767xx.S) @@ -15,14 +12,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f767xi.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F767xI INTERFACE) -target_sources(mbed-core +target_sources(STM32F767xI INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F767xI INTERFACE . ) + +mbed_set_linker_script(STM32F767xI ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F767xI INTERFACE STM32F7) diff --git a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F767xI/TARGET_NUCLEO_F767ZI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F767xI/TARGET_NUCLEO_F767ZI/CMakeLists.txt index 3a805bbdaaf..796c2efdaf1 100644 --- a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F767xI/TARGET_NUCLEO_F767ZI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F767xI/TARGET_NUCLEO_F767ZI/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_F767ZI INTERFACE) + +target_sources(NUCLEO_F767ZI INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_F767ZI INTERFACE . ) + +target_link_libraries(NUCLEO_F767ZI INTERFACE STM32F767xI) diff --git a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F767xI/TARGET_UHURU_RAVEN/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F767xI/TARGET_UHURU_RAVEN/CMakeLists.txt index b66b898506f..c82aa1fb904 100644 --- a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F767xI/TARGET_UHURU_RAVEN/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F767xI/TARGET_UHURU_RAVEN/CMakeLists.txt @@ -1,14 +1,18 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(UHURU_RAVEN INTERFACE) + +target_sources(UHURU_RAVEN INTERFACE PeripheralPins.c system_clock.c uhuru_raven_init.c ) -target_include_directories(mbed-core +target_include_directories(UHURU_RAVEN INTERFACE . ) + +target_link_libraries(UHURU_RAVEN INTERFACE STM32F767xI) diff --git a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F769xI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F769xI/CMakeLists.txt index 23966f1ba7c..47ab5f95490 100644 --- a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F769xI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F769xI/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("DISCO_F769NI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_DISCO_F769NI) -endif() +add_subdirectory(TARGET_DISCO_F769NI EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32f769xx.S) @@ -13,14 +11,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32f769xi.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32F769xI INTERFACE) -target_sources(mbed-core +target_sources(STM32F769xI INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32F769xI INTERFACE . ) + +mbed_set_linker_script(STM32F769xI ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32F769xI INTERFACE STM32F7) diff --git a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F769xI/TARGET_DISCO_F769NI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F769xI/TARGET_DISCO_F769NI/CMakeLists.txt index 3a805bbdaaf..595ac4923b2 100644 --- a/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F769xI/TARGET_DISCO_F769NI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32F7/TARGET_STM32F769xI/TARGET_DISCO_F769NI/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(DISCO_F769NI INTERFACE) + +target_sources(DISCO_F769NI INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(DISCO_F769NI INTERFACE . ) + +target_link_libraries(DISCO_F769NI INTERFACE STM32F769xI) diff --git a/targets/TARGET_STM/TARGET_STM32G0/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G0/CMakeLists.txt index 0ab6ea6239d..d8713e47b16 100644 --- a/targets/TARGET_STM/TARGET_STM32G0/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G0/CMakeLists.txt @@ -1,21 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("STM32G030xx" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32G030xx) -elseif("STM32G031xx" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32G031xx) -elseif("STM32G041xx" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32G041xx) -elseif("STM32G070xx" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32G070xx) -elseif("STM32G071xx" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32G071xx) -elseif("STM32G081xx" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32G081xx) -endif() +add_subdirectory(TARGET_STM32G030xx EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32G031xx EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32G041xx EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32G070xx EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32G071xx EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32G081xx EXCLUDE_FROM_ALL) +add_subdirectory(STM32Cube_FW EXCLUDE_FROM_ALL) -target_sources(mbed-core +add_library(STM32G0 INTERFACE) + +target_sources(STM32G0 INTERFACE analogin_device.c analogout_device.c @@ -26,9 +22,9 @@ target_sources(mbed-core spi_api.c ) -add_subdirectory(STM32Cube_FW) - -target_include_directories(mbed-core +target_include_directories(STM32G0 INTERFACE . ) + +target_link_libraries(STM32G0 INTERFACE STM STM32G0Cube_FW) diff --git a/targets/TARGET_STM/TARGET_STM32G0/STM32Cube_FW/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G0/STM32Cube_FW/CMakeLists.txt index b8cd8ca0d33..f811386aca1 100644 --- a/targets/TARGET_STM/TARGET_STM32G0/STM32Cube_FW/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G0/STM32Cube_FW/CMakeLists.txt @@ -1,7 +1,9 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(STM32G0Cube_FW INTERFACE) + +target_sources(STM32G0Cube_FW INTERFACE STM32G0xx_HAL_Driver/stm32g0xx_hal.c @@ -69,7 +71,7 @@ target_sources(mbed-core system_stm32g0xx.c ) -target_include_directories(mbed-core +target_include_directories(STM32G0Cube_FW INTERFACE . CMSIS diff --git a/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G030xx/CMakefileLists.txt b/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G030xx/CMakeLists.txt similarity index 67% rename from targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G030xx/CMakefileLists.txt rename to targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G030xx/CMakeLists.txt index 6171fde01bb..477fe9f7db6 100644 --- a/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G030xx/CMakefileLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G030xx/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32g030xx.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32G030xx INTERFACE) -target_sources(mbed-core +target_sources(STM32G030xx INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32G030xx INTERFACE . ) + +mbed_set_linker_script(STM32G030xx ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32G030xx INTERFACE STM32G0) diff --git a/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G031xx/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G031xx/CMakeLists.txt index 7a284a56a8e..20644c686ca 100644 --- a/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G031xx/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G031xx/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_G031K8" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_G031K8) -endif() +add_subdirectory(TARGET_NUCLEO_G031K8 EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32g031xx.S) @@ -13,14 +11,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32g031xx.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32G031xx INTERFACE) -target_sources(mbed-core +target_sources(STM32G031xx INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32G031xx INTERFACE . ) + +mbed_set_linker_script(STM32G031xx ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32G031xx INTERFACE STM32G0) diff --git a/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G031xx/TARGET_NUCLEO_G031K8/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G031xx/TARGET_NUCLEO_G031K8/CMakeLists.txt index 3a805bbdaaf..823ec5ea18d 100644 --- a/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G031xx/TARGET_NUCLEO_G031K8/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G031xx/TARGET_NUCLEO_G031K8/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_G031K8 INTERFACE) + +target_sources(NUCLEO_G031K8 INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_G031K8 INTERFACE . ) + +target_link_libraries(NUCLEO_G031K8 INTERFACE STM32G031xx) diff --git a/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G041xx/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G041xx/CMakeLists.txt index 3f06cd01444..8f61d51c79e 100644 --- a/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G041xx/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G041xx/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32g041xx.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32G041xx INTERFACE) -target_sources(mbed-core +target_sources(STM32G041xx INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32G041xx INTERFACE . ) + +mbed_set_linker_script(STM32G041xx ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32G041xx INTERFACE STM32G0) diff --git a/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G070xx/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G070xx/CMakeLists.txt index 1af56589b36..fec2ffa8fa7 100644 --- a/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G070xx/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G070xx/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32g070xx.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32G070xx INTERFACE) -target_sources(mbed-core +target_sources(STM32G070xx INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32G070xx INTERFACE . ) + +mbed_set_linker_script(STM32G070xx ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32G070xx INTERFACE STM32G0) diff --git a/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G071xx/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G071xx/CMakeLists.txt index a7204cd3756..c12f5d35b10 100644 --- a/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G071xx/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G071xx/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_G071RB" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_G071RB) -endif() +add_subdirectory(TARGET_NUCLEO_G071RB EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32g071xx.S) @@ -13,14 +11,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32g071xx.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32G071xx INTERFACE) -target_sources(mbed-core +target_sources(STM32G071xx INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32G071xx INTERFACE . ) + +mbed_set_linker_script(STM32G071xx ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32G071xx INTERFACE STM32G0) diff --git a/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G071xx/TARGET_NUCLEO_G071RB/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G071xx/TARGET_NUCLEO_G071RB/CMakeLists.txt index 3a805bbdaaf..362f718f3b1 100644 --- a/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G071xx/TARGET_NUCLEO_G071RB/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G071xx/TARGET_NUCLEO_G071RB/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_G071RB INTERFACE) + +target_sources(NUCLEO_G071RB INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_G071RB INTERFACE . ) + +target_link_libraries(NUCLEO_G071RB INTERFACE STM32G071xx) diff --git a/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G081xx/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G081xx/CMakeLists.txt index fb127744a36..291486c8976 100644 --- a/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G081xx/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G0/TARGET_STM32G081xx/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32g081xx.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32G081xx INTERFACE) -target_sources(mbed-core +target_sources(STM32G081xx INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32G081xx INTERFACE . ) + +mbed_set_linker_script(STM32G081xx ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32G081xx INTERFACE STM32G0) diff --git a/targets/TARGET_STM/TARGET_STM32G4/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G4/CMakeLists.txt index a01c06f36a1..2f8d76c6771 100644 --- a/targets/TARGET_STM/TARGET_STM32G4/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G4/CMakeLists.txt @@ -1,23 +1,18 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("STM32G431xB" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32G431xB) -elseif("STM32G441xB" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32G441xB) -elseif("STM32G471xE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32G471xE) -elseif("STM32G473xE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32G473xE) -elseif("STM32G474xE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32G474xE) -elseif("STM32G483xE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32G483xE) -elseif("STM32G484xE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32G484xE) -endif() +add_subdirectory(TARGET_STM32G431xB EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32G441xB EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32G471xE EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32G473xE EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32G474xE EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32G483xE EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32G484xE EXCLUDE_FROM_ALL) +add_subdirectory(STM32Cube_FW EXCLUDE_FROM_ALL) -target_sources(mbed-core +add_library(STM32G4 INTERFACE) + +target_sources(STM32G4 INTERFACE analogin_device.c analogout_device.c @@ -28,9 +23,9 @@ target_sources(mbed-core spi_api.c ) -add_subdirectory(STM32Cube_FW) - -target_include_directories(mbed-core +target_include_directories(STM32G4 INTERFACE . ) + +target_link_libraries(STM32G4 INTERFACE STM STM32G4Cube_FW) diff --git a/targets/TARGET_STM/TARGET_STM32G4/STM32Cube_FW/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G4/STM32Cube_FW/CMakeLists.txt index 7b8e0e6cbb9..7f6fd035735 100644 --- a/targets/TARGET_STM/TARGET_STM32G4/STM32Cube_FW/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G4/STM32Cube_FW/CMakeLists.txt @@ -1,7 +1,9 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(STM32G4Cube_FW INTERFACE) + +target_sources(STM32G4Cube_FW INTERFACE STM32G4xx_HAL_Driver/stm32g4xx_hal.c STM32G4xx_HAL_Driver/stm32g4xx_hal_adc.c @@ -89,7 +91,7 @@ target_sources(mbed-core system_stm32g4xx.c ) -target_include_directories(mbed-core +target_include_directories(STM32G4Cube_FW INTERFACE . CMSIS diff --git a/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G431xB/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G431xB/CMakeLists.txt index 48b11b5b210..5b685e271b6 100644 --- a/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G431xB/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G431xB/CMakeLists.txt @@ -13,15 +13,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32g431xb.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32G431xB INTERFACE) -target_sources(mbed-core +target_sources(STM32G431xB INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32G431xB INTERFACE . ) + +mbed_set_linker_script(STM32G431xB ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32G431xB INTERFACE STM32G4) diff --git a/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G441xB/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G441xB/CMakeLists.txt index b1dca1b8c79..8ccfc4852d5 100644 --- a/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G441xB/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G441xB/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32g441xb.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32G441xB INTERFACE) -target_sources(mbed-core +target_sources(STM32G441xB INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32G441xB INTERFACE . ) + +mbed_set_linker_script(STM32G441xB ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32G441xB INTERFACE STM32G4) diff --git a/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G471xE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G471xE/CMakeLists.txt index 3b9181211dd..a4052c4d9b0 100644 --- a/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G471xE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G471xE/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32g471xe.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32G471xE INTERFACE) -target_sources(mbed-core +target_sources(STM32G471xE INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32G471xE INTERFACE . ) + +mbed_set_linker_script(STM32G471xE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32G471xE INTERFACE STM32G4) diff --git a/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G473xE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G473xE/CMakeLists.txt index 4b5ae699b2c..e0a9620a378 100644 --- a/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G473xE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G473xE/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32g473xe.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32G473xE INTERFACE) -target_sources(mbed-core +target_sources(STM32G473xE INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32G473xE INTERFACE . ) + +mbed_set_linker_script(STM32G473xE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32G473xE INTERFACE STM32G4) diff --git a/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G474xE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G474xE/CMakeLists.txt index cde7b2c552f..03f2cf81baf 100644 --- a/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G474xE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G474xE/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_G474RE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_G474RE) -endif() +add_subdirectory(TARGET_NUCLEO_G474RE EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32g474xx.S) @@ -13,15 +11,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32g474xe.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32G474xE INTERFACE) -target_sources(mbed-core +target_sources(STM32G474xE INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32G474xE INTERFACE . ) + +mbed_set_linker_script(STM32G474xE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32G474xE INTERFACE STM32G4) diff --git a/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G474xE/TARGET_NUCLEO_G474RE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G474xE/TARGET_NUCLEO_G474RE/CMakeLists.txt index 118fbc11897..fb8dc143e84 100644 --- a/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G474xE/TARGET_NUCLEO_G474RE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G474xE/TARGET_NUCLEO_G474RE/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_G474RE INTERFACE) + +target_sources(NUCLEO_G474RE INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_G474RE INTERFACE . ) + +target_link_libraries(NUCLEO_G474RE INTERFACE STM32G474xE) diff --git a/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G483xE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G483xE/CMakeLists.txt index c7688040e04..24fe6af5f17 100644 --- a/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G483xE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G483xE/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32g483xe.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32G483xE INTERFACE) -target_sources(mbed-core +target_sources(STM32G483xE INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32G483xE INTERFACE . ) + +mbed_set_linker_script(STM32G483xE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32G483xE INTERFACE STM32G4) diff --git a/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G484xE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G484xE/CMakeLists.txt index 381eb62b3f4..bce3375f555 100644 --- a/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G484xE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G484xE/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32g484xe.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32G484xE INTERFACE) -target_sources(mbed-core +target_sources(STM32G484xE INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32G484xE INTERFACE . ) + +mbed_set_linker_script(STM32G484xE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32G484xE INTERFACE STM32G4) diff --git a/targets/TARGET_STM/TARGET_STM32H7/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32H7/CMakeLists.txt index 6a086ef26e3..4be9d6a1c43 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32H7/CMakeLists.txt @@ -1,17 +1,15 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("STM32H743xI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32H743xI) -elseif("STM32H745xI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32H745xI) -elseif("STM32H747xI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32H747xI) -elseif("STM32H7A3xIQ" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32H7A3xIQ) -endif() +add_subdirectory(TARGET_STM32H743xI EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32H745xI EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32H747xI EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32H7A3xIQ EXCLUDE_FROM_ALL) +add_subdirectory(STM32Cube_FW EXCLUDE_FROM_ALL) -target_sources(mbed-core +add_library(STM32H7 INTERFACE) + +target_sources(STM32H7 INTERFACE analogin_device.c analogout_device.c @@ -22,9 +20,9 @@ target_sources(mbed-core spi_api.c ) -add_subdirectory(STM32Cube_FW) - -target_include_directories(mbed-core +target_include_directories(STM32H7 INTERFACE . ) + +target_link_libraries(STM32H7 INTERFACE STM STM32H7Cube_FW) diff --git a/targets/TARGET_STM/TARGET_STM32H7/STM32Cube_FW/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32H7/STM32Cube_FW/CMakeLists.txt index a9673cbae3b..4e1290677ec 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/STM32Cube_FW/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32H7/STM32Cube_FW/CMakeLists.txt @@ -1,7 +1,9 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(STM32H7Cube_FW INTERFACE) + +target_sources(STM32H7Cube_FW INTERFACE STM32H7xx_HAL_Driver/stm32h7xx_hal.c STM32H7xx_HAL_Driver/stm32h7xx_hal_adc.c @@ -126,7 +128,7 @@ target_sources(mbed-core system_stm32h7xx_singlecore.c ) -target_include_directories(mbed-core +target_include_directories(STM32H7Cube_FW INTERFACE . CMSIS diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H743xI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H743xI/CMakeLists.txt index a970f6db2b6..3569318c9d0 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H743xI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H743xI/CMakeLists.txt @@ -1,11 +1,8 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_H743ZI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_H743ZI) -elseif("NUCLEO_H743ZI2" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_H743ZI2) -endif() +add_subdirectory(TARGET_NUCLEO_H743ZI EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_NUCLEO_H743ZI2 EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32h743xx.S) @@ -15,14 +12,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32h743xI.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32H743xI INTERFACE) -target_sources(mbed-core +target_sources(STM32H743xI INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32H743xI INTERFACE . ) + +mbed_set_linker_script(STM32H743xI ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32H743xI INTERFACE STM32H7) diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H743xI/TARGET_NUCLEO_H743ZI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H743xI/TARGET_NUCLEO_H743ZI/CMakeLists.txt index 118fbc11897..ec98790a2e3 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H743xI/TARGET_NUCLEO_H743ZI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H743xI/TARGET_NUCLEO_H743ZI/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_H743ZI INTERFACE) + +target_sources(NUCLEO_H743ZI INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_H743ZI INTERFACE . ) + +target_link_libraries(NUCLEO_H743ZI INTERFACE STM32H743xI) diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H743xI/TARGET_NUCLEO_H743ZI2/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H743xI/TARGET_NUCLEO_H743ZI2/CMakeLists.txt index 3a805bbdaaf..568ae0f7c2a 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H743xI/TARGET_NUCLEO_H743ZI2/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H743xI/TARGET_NUCLEO_H743ZI2/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_H743ZI2 INTERFACE) + +target_sources(NUCLEO_H743ZI2 INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_H743ZI2 INTERFACE . ) + +target_link_libraries(NUCLEO_H743ZI2 INTERFACE STM32H743xI) diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H745xI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H745xI/CMakeLists.txt index 61585b6f0cb..6f465312d82 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H745xI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H745xI/CMakeLists.txt @@ -1,13 +1,14 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("STM32H745xI_CM4" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32H745xI_CM4) -elseif("STM32H745xI_CM7" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32H745xI_CM7) -endif() +add_subdirectory(TARGET_STM32H745xI_CM4 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32H745xI_CM7 EXCLUDE_FROM_ALL) -target_sources(mbed-core +add_library(STM32H745xI INTERFACE) + +target_sources(STM32H745xI INTERFACE system_clock.c ) + +target_link_libraries(STM32H745xI INTERFACE STM32H7) diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H745xI/TARGET_STM32H745xI_CM4/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H745xI/TARGET_STM32H745xI_CM4/CMakeLists.txt index 509b5841c0b..ea6ed9d7906 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H745xI/TARGET_STM32H745xI_CM4/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H745xI/TARGET_STM32H745xI_CM4/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32h745xI_CM4.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32H745xI_CM4 INTERFACE) -target_sources(mbed-core +target_sources(STM32H745xI_CM4 INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32H745xI_CM4 INTERFACE . ) + +mbed_set_linker_script(STM32H745xI_CM4 ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32H745xI_CM4 INTERFACE STM32H745xI) diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H745xI/TARGET_STM32H745xI_CM7/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H745xI/TARGET_STM32H745xI_CM7/CMakeLists.txt index 2cb3c783b68..d36699eb763 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H745xI/TARGET_STM32H745xI_CM7/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H745xI/TARGET_STM32H745xI_CM7/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32h745xI_CM7.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32H745xI_CM7 INTERFACE) -target_sources(mbed-core +target_sources(STM32H745xI_CM7 INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32H745xI_CM7 INTERFACE . ) + +mbed_set_linker_script(STM32H745xI_CM7 ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32H745xI_CM7 INTERFACE STM32H745xI) diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/CMakeLists.txt index a5cc6182bca..dd759e87661 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/CMakeLists.txt @@ -1,21 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("DISCO_H747I" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_DISCO_H747I) -elseif("PORTENTA_H7" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_PORTENTA_H7) -elseif("STM32H7A3xIQ" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32H7A3xIQ) -endif() +add_subdirectory(TARGET_DISCO_H747I EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_PORTENTA_H7 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32H747xI_CM7 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32H747xI_CM4 EXCLUDE_FROM_ALL) -if("STM32H747xI_CM7" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32H747xI_CM7) -elseif("STM32H747xI_CM4" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32H747xI_CM4) -endif() +add_library(STM32H747xI INTERFACE) -target_sources(mbed-core +target_sources(STM32H747xI INTERFACE system_clock.c ) + +target_link_libraries(STM32H747xI INTERFACE STM32H7) diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_DISCO_H747I/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_DISCO_H747I/CMakeLists.txt index 118fbc11897..11e82de052f 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_DISCO_H747I/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_DISCO_H747I/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(DISCO_H747I INTERFACE) + +target_sources(DISCO_H747I INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(DISCO_H747I INTERFACE . ) + +target_link_libraries(DISCO_H747I INTERFACE STM32H747xI) diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7/CMakeLists.txt index 583f0fa6e5a..428cfb7adba 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7/CMakeLists.txt @@ -1,15 +1,18 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(PORTENTA_H7 INTERFACE) + +target_sources(PORTENTA_H7 INTERFACE PeripheralPins.c system_clock_override.c portenta_power.cpp ) -target_include_directories(mbed-core +target_include_directories(PORTENTA_H7 INTERFACE . ) +target_link_libraries(PORTENTA_H7 INTERFACE STM32H747xI) diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_STM32H747xI_CM4/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_STM32H747xI_CM4/CMakeLists.txt index cf9506cd9fe..cef9d5892b6 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_STM32H747xI_CM4/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_STM32H747xI_CM4/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32h747xI_CM4.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32H747xI_CM4 INTERFACE) -target_sources(mbed-core +target_sources(STM32H747xI_CM4 INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32H747xI_CM4 INTERFACE . ) + +mbed_set_linker_script(STM32H747xI_CM4 ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32H747xI_CM4 INTERFACE STM32H747xI) diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_STM32H747xI_CM7/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_STM32H747xI_CM7/CMakeLists.txt index 937198c2304..92958bb259d 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_STM32H747xI_CM7/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_STM32H747xI_CM7/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32h747xI_CM7.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32H747xI_CM7 INTERFACE) -target_sources(mbed-core +target_sources(STM32H747xI_CM7 INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32H747xI_CM7 INTERFACE . ) + +mbed_set_linker_script(STM32H747xI_CM7 ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32H747xI_CM7 INTERFACE STM32H747xI) diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H7A3xIQ/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H7A3xIQ/CMakeLists.txt index f078f49c945..b310c2e2df1 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H7A3xIQ/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H7A3xIQ/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_H7A3ZI_Q" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_H7A3ZI_Q) -endif() +add_subdirectory(TARGET_NUCLEO_H7A3ZI_Q EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32h7a3xxq.S) @@ -13,15 +11,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32h7a3xxq.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32H7A3xIQ INTERFACE) -target_sources(mbed-core +target_sources(STM32H7A3xIQ INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32H7A3xIQ INTERFACE . ) + +mbed_set_linker_script(STM32H7A3xIQ ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32H7A3xIQ INTERFACE STM32H7) diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H7A3xIQ/TARGET_NUCLEO_H7A3ZI_Q/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H7A3xIQ/TARGET_NUCLEO_H7A3ZI_Q/CMakeLists.txt index 118fbc11897..fcb3098d244 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H7A3xIQ/TARGET_NUCLEO_H7A3ZI_Q/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H7A3xIQ/TARGET_NUCLEO_H7A3ZI_Q/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_H7A3ZI_Q INTERFACE) + +target_sources(NUCLEO_H7A3ZI_Q INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_H7A3ZI_Q INTERFACE . ) + +target_link_libraries(NUCLEO_H7A3ZI_Q INTERFACE STM32H7A3xIQ) diff --git a/targets/TARGET_STM/TARGET_STM32L0/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L0/CMakeLists.txt index e612aa55020..8740745f146 100644 --- a/targets/TARGET_STM/TARGET_STM32L0/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L0/CMakeLists.txt @@ -1,19 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("STM32L053x8" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L053x8) -elseif("STM32L071xZ" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L071xZ) -elseif("STM32L072xZ" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L072xZ) -elseif("STM32L073xZ" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L073xZ) -elseif("STM32L082xZ" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L082xZ) -endif() +add_subdirectory(TARGET_STM32L053x8 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L071xZ EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L072xZ EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L073xZ EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L082xZ EXCLUDE_FROM_ALL) -target_sources(mbed-core +add_subdirectory(STM32Cube_FW EXCLUDE_FROM_ALL) + +add_library(STM32L0 INTERFACE) + +target_sources(STM32L0 INTERFACE analogin_device.c analogout_device.c @@ -24,9 +22,9 @@ target_sources(mbed-core spi_api.c ) -add_subdirectory(STM32Cube_FW) - -target_include_directories(mbed-core +target_include_directories(STM32L0 INTERFACE . ) + +target_link_libraries(STM32L0 INTERFACE STM STM32L0Cube_FW) diff --git a/targets/TARGET_STM/TARGET_STM32L0/STM32Cube_FW/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L0/STM32Cube_FW/CMakeLists.txt index d0033540ca4..22940e3d68f 100644 --- a/targets/TARGET_STM/TARGET_STM32L0/STM32Cube_FW/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L0/STM32Cube_FW/CMakeLists.txt @@ -1,7 +1,9 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(STM32L0Cube_FW INTERFACE) + +target_sources(STM32L0Cube_FW INTERFACE STM32L0xx_HAL_Driver/stm32l0xx_hal.c STM32L0xx_HAL_Driver/stm32l0xx_hal_adc.c @@ -71,7 +73,7 @@ target_sources(mbed-core system_stm32l0xx.c ) -target_include_directories(mbed-core +target_include_directories(STM32L0Cube_FW INTERFACE . CMSIS diff --git a/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L053x8/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L053x8/CMakeLists.txt index 285d347f42a..0ed52a8b33d 100644 --- a/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L053x8/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L053x8/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l053x8.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32L053x8 INTERFACE) -target_sources(mbed-core +target_sources(STM32L053x8 INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32L053x8 INTERFACE . ) + +mbed_set_linker_script(STM32L053x8 ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L053x8 INTERFACE STM32L0) diff --git a/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L071xZ/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L071xZ/CMakeLists.txt index 94492f45feb..1adf93bc8b6 100644 --- a/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L071xZ/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L071xZ/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l071xz.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32L071xZ INTERFACE) -target_sources(mbed-core +target_sources(STM32L071xZ INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32L071xZ INTERFACE . ) + +mbed_set_linker_script(STM32L071xZ ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L071xZ INTERFACE STM32L0) diff --git a/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L072xZ/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L072xZ/CMakeLists.txt index 31604cb5dd7..cc80baa248b 100644 --- a/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L072xZ/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L072xZ/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("DISCO_L072CZ_LRWAN1" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_DISCO_L072CZ_LRWAN1) -endif() +add_subdirectory(TARGET_DISCO_L072CZ_LRWAN1 EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32l072xx.S) @@ -13,15 +11,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l072xz.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32L072xZ INTERFACE) -target_sources(mbed-core +target_sources(STM32L072xZ INTERFACE ${STARTUP_FILE} system_clock.c ) -target_include_directories(mbed-core +target_include_directories(STM32L072xZ INTERFACE . ) + +mbed_set_linker_script(STM32L072xZ ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L072xZ INTERFACE STM32L0) diff --git a/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L072xZ/TARGET_DISCO_L072CZ_LRWAN1/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L072xZ/TARGET_DISCO_L072CZ_LRWAN1/CMakeLists.txt index 118fbc11897..0f9b444f8b1 100644 --- a/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L072xZ/TARGET_DISCO_L072CZ_LRWAN1/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L072xZ/TARGET_DISCO_L072CZ_LRWAN1/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(DISCO_L072CZ_LRWAN1 INTERFACE) + +target_sources(DISCO_L072CZ_LRWAN1 INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(DISCO_L072CZ_LRWAN1 INTERFACE . ) + +target_link_libraries(DISCO_L072CZ_LRWAN1 INTERFACE STM32L072xZ) diff --git a/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L073xZ/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L073xZ/CMakeLists.txt index 35bc853fa8f..a8526158808 100644 --- a/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L073xZ/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L073xZ/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_L073RZ" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_L073RZ) -endif() +add_subdirectory(TARGET_NUCLEO_L073RZ EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32l073xx.S) @@ -13,15 +11,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l073xz.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32L073xZ INTERFACE) -target_sources(mbed-core +target_sources(STM32L073xZ INTERFACE ${STARTUP_FILE} system_clock.c ) -target_include_directories(mbed-core +target_include_directories(STM32L073xZ INTERFACE . ) + +mbed_set_linker_script(STM32L073xZ ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L073xZ INTERFACE STM32L0) diff --git a/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L073xZ/TARGET_NUCLEO_L073RZ/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L073xZ/TARGET_NUCLEO_L073RZ/CMakeLists.txt index 118fbc11897..0b25be6fcb0 100644 --- a/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L073xZ/TARGET_NUCLEO_L073RZ/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L073xZ/TARGET_NUCLEO_L073RZ/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_L073RZ INTERFACE) + +target_sources(NUCLEO_L073RZ INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_L073RZ INTERFACE . ) + +target_link_libraries(NUCLEO_L073RZ INTERFACE STM32L073xZ) diff --git a/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L082xZ/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L082xZ/CMakeLists.txt index 39e6ce75eef..e78a3a7ab8f 100644 --- a/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L082xZ/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L0/TARGET_STM32L082xZ/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l082xz.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32L082xZ INTERFACE) -target_sources(mbed-core +target_sources(STM32L082xZ INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32L082xZ INTERFACE . ) + +mbed_set_linker_script(STM32L082xZ ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L082xZ INTERFACE STM32L0) diff --git a/targets/TARGET_STM/TARGET_STM32L1/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L1/CMakeLists.txt index 4d74f157e89..ad470982058 100644 --- a/targets/TARGET_STM/TARGET_STM32L1/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L1/CMakeLists.txt @@ -1,15 +1,13 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("MOTE_L152RC" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_MOTE_L152RC) -elseif("NUCLEO_L152RE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_L152RE) -elseif("XDOT_L151CC" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_XDOT_L151CC) -endif() +add_subdirectory(TARGET_MOTE_L152RC EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_NUCLEO_L152RE EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_XDOT_L151CC EXCLUDE_FROM_ALL) -target_sources(mbed-core +add_library(STM32L1 INTERFACE) + +target_sources(STM32L1 INTERFACE analogin_device.c analogout_device.c @@ -81,8 +79,10 @@ target_sources(mbed-core device/system_stm32l1xx.c ) -target_include_directories(mbed-core +target_include_directories(STM32L1 INTERFACE . device ) + +target_link_libraries(STM32L1 INTERFACE STM) diff --git a/targets/TARGET_STM/TARGET_STM32L1/TARGET_MOTE_L152RC/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L1/TARGET_MOTE_L152RC/CMakeLists.txt index cb2b5311718..3509f560fd2 100644 --- a/targets/TARGET_STM/TARGET_STM32L1/TARGET_MOTE_L152RC/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L1/TARGET_MOTE_L152RC/CMakeLists.txt @@ -9,17 +9,21 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE device/TOOLCHAIN_ARM/stm32l152rc.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(MOTE_L152RC INTERFACE) -target_sources(mbed-core +target_sources(MOTE_L152RC INTERFACE PeripheralPins.c device/system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(MOTE_L152RC INTERFACE . device ) + +mbed_set_linker_script(MOTE_L152RC ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(MOTE_L152RC INTERFACE STM32L1) diff --git a/targets/TARGET_STM/TARGET_STM32L1/TARGET_NUCLEO_L152RE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L1/TARGET_NUCLEO_L152RE/CMakeLists.txt index 33f182d4fe5..d5675536a49 100644 --- a/targets/TARGET_STM/TARGET_STM32L1/TARGET_NUCLEO_L152RE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L1/TARGET_NUCLEO_L152RE/CMakeLists.txt @@ -9,17 +9,21 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE device/TOOLCHAIN_ARM/stm32l152re.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(NUCLEO_L152RE INTERFACE) -target_sources(mbed-core +target_sources(NUCLEO_L152RE INTERFACE PeripheralPins.c device/system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_L152RE INTERFACE . device ) + +mbed_set_linker_script(NUCLEO_L152RE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(NUCLEO_L152RE INTERFACE STM32L1) diff --git a/targets/TARGET_STM/TARGET_STM32L1/TARGET_XDOT_L151CC/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L1/TARGET_XDOT_L151CC/CMakeLists.txt index ff75ba2e3e4..e68512ca9b1 100644 --- a/targets/TARGET_STM/TARGET_STM32L1/TARGET_XDOT_L151CC/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L1/TARGET_XDOT_L151CC/CMakeLists.txt @@ -9,9 +9,9 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE device/TOOLCHAIN_ARM/stm32l151rc.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(XDOT_L151CC INTERFACE) -target_sources(mbed-core +target_sources(XDOT_L151CC INTERFACE PeripheralPins.c device/system_clock.c @@ -20,8 +20,12 @@ target_sources(mbed-core ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(XDOT_L151CC INTERFACE . device ) + +mbed_set_linker_script(XDOT_L151CC ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(XDOT_L151CC INTERFACE STM32L1) diff --git a/targets/TARGET_STM/TARGET_STM32L4/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/CMakeLists.txt index aaf2f6e67ec..d40a169df82 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/CMakeLists.txt @@ -1,35 +1,22 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("STM32L432xC" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L432xC) -elseif("STM32L433xC" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L433xC) -elseif("STM32L443xC" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L443xC) -elseif("STM32L452xE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L452xE) -elseif("STM32L471xG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L471xG) -elseif("STM32L475xG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L475xG) -elseif("STM32L476xG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L476xG) -elseif("STM32L486xG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L486xG) -elseif("STM32L496xG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L496xG) -elseif("STM32L4R5xI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L4R5xI) -elseif("STM32L4R9xI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L4R9xI) -elseif("STM32L4S5xI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L4S5xI) -endif() +add_subdirectory(TARGET_STM32L432xC EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L433xC EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L443xC EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L452xE EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L471xG EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L475xG EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L476xG EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L486xG EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L496xG EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L4R5xI EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L4R9xI EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L4S5xI EXCLUDE_FROM_ALL) -add_subdirectory(STM32Cube_FW) +add_library(STM32L4 INTERFACE) -target_sources(mbed-core +target_sources(STM32L4 INTERFACE analogin_device.c analogout_device.c @@ -40,7 +27,10 @@ target_sources(mbed-core spi_api.c ) -target_include_directories(mbed-core +target_include_directories(STM32L4 INTERFACE . ) + +add_subdirectory(STM32Cube_FW EXCLUDE_FROM_ALL) +target_link_libraries(STM32L4 INTERFACE STM STM32L4Cube_FW) diff --git a/targets/TARGET_STM/TARGET_STM32L4/STM32Cube_FW/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/STM32Cube_FW/CMakeLists.txt index fa5a2d42a66..5c740117b90 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/STM32Cube_FW/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/STM32Cube_FW/CMakeLists.txt @@ -1,15 +1,18 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -add_subdirectory(STM32L4xx_HAL_Driver) +add_library(STM32L4Cube_FW INTERFACE) -target_sources(mbed-core +target_sources(STM32L4Cube_FW INTERFACE system_stm32l4xx.c ) -target_include_directories(mbed-core +target_include_directories(STM32L4Cube_FW INTERFACE . CMSIS ) + +add_subdirectory(STM32L4xx_HAL_Driver EXCLUDE_FROM_ALL) +target_link_libraries(STM32L4Cube_FW INTERFACE STM32L4xx_HAL_Driver) diff --git a/targets/TARGET_STM/TARGET_STM32L4/STM32Cube_FW/STM32L4xx_HAL_Driver/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/STM32Cube_FW/STM32L4xx_HAL_Driver/CMakeLists.txt index 17999d4a977..927f3c29f94 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/STM32Cube_FW/STM32L4xx_HAL_Driver/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/STM32Cube_FW/STM32L4xx_HAL_Driver/CMakeLists.txt @@ -1,14 +1,14 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -add_subdirectory(Legacy) +add_library(STM32L4xx_HAL_Driver INTERFACE) -target_include_directories(mbed-core +target_include_directories(STM32L4xx_HAL_Driver INTERFACE . ) -target_sources(mbed-core +target_sources(STM32L4xx_HAL_Driver INTERFACE stm32l4xx_hal_adc.c stm32l4xx_hal_adc_ex.c @@ -113,4 +113,5 @@ target_sources(mbed-core stm32l4xx_ll_usb.c stm32l4xx_ll_utils.c ) - +add_subdirectory(Legacy EXCLUDE_FROM_ALL) +target_link_libraries(STM32L4xx_HAL_Driver INTERFACE STM32L4xxLegacyHALDriver) diff --git a/targets/TARGET_STM/TARGET_STM32L4/STM32Cube_FW/STM32L4xx_HAL_Driver/Legacy/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/STM32Cube_FW/STM32L4xx_HAL_Driver/Legacy/CMakeLists.txt index 1f8ddf3566b..e689145dc50 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/STM32Cube_FW/STM32L4xx_HAL_Driver/Legacy/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/STM32Cube_FW/STM32L4xx_HAL_Driver/Legacy/CMakeLists.txt @@ -1,12 +1,12 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 - -target_include_directories(mbed-core +add_library(STM32L4xxLegacyHALDriver INTERFACE) +target_include_directories(STM32L4xxLegacyHALDriver INTERFACE . ) -target_sources(mbed-core +target_sources(STM32L4xxLegacyHALDriver INTERFACE stm32l4xx_hal_can_legacy.c ) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L432xC/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L432xC/CMakeLists.txt index dfb21d92980..6279836aa2a 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L432xC/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L432xC/CMakeLists.txt @@ -1,11 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_L432KC" IN_LIST MBED_TARGET_LABELS) - target_include_directories(mbed-core INTERFACE TARGET_NUCLEO_L432KC) - set(PERIPHERALPINS_FILE TARGET_NUCLEO_L432KC/PeripheralPins.c) - set(SYSTEM_CLOCK_FILE system_clock.c) -endif() +add_subdirectory(TARGET_NUCLEO_L432KC EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32l432xx.S) @@ -15,16 +11,17 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l432xc.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32L432xC INTERFACE) -target_sources(mbed-core +target_sources(STM32L432xC INTERFACE - ${PERIPHERALPINS_FILE} ${STARTUP_FILE} - ${SYSTEM_CLOCK_FILE} + system_clock.c ) -target_include_directories(mbed-core +target_include_directories(STM32L432xC INTERFACE . ) +mbed_set_linker_script(STM32L432xC ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +target_link_libraries(STM32L432xC INTERFACE STM32L4) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L432xC/TARGET_NUCLEO_L432KC/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L432xC/TARGET_NUCLEO_L432KC/CMakeLists.txt new file mode 100644 index 00000000000..a92ef384c09 --- /dev/null +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L432xC/TARGET_NUCLEO_L432KC/CMakeLists.txt @@ -0,0 +1,16 @@ +# Copyright (c) 2021 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +add_library(NUCLEO_L432KC INTERFACE) + +target_sources(NUCLEO_L432KC + INTERFACE + PeripheralPins.c +) + +target_include_directories(NUCLEO_L432KC + INTERFACE + . +) + +target_link_libraries(NUCLEO_L432KC INTERFACE STM32L432xC) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L433xC/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L433xC/CMakeLists.txt index 1eec1a40b20..37cff20ccdf 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L433xC/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L433xC/CMakeLists.txt @@ -1,11 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_L433RC_P" IN_LIST MBED_TARGET_LABELS) - target_include_directories(mbed-core INTERFACE TARGET_NUCLEO_L433RC_P) - set(PERIPHERALPINS_FILE TARGET_NUCLEO_L433RC_P/PeripheralPins.c) - set(SYSTEM_CLOCK_FILE system_clock.c) -endif() +add_subdirectory(TARGET_NUCLEO_L433RC_P EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32l433xx.S) @@ -15,16 +11,20 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l433xc.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) -target_sources(mbed-core +add_library(STM32L433xC INTERFACE) + +target_sources(STM32L433xC INTERFACE - ${PERIPHERALPINS_FILE} ${STARTUP_FILE} - ${SYSTEM_CLOCK_FILE} + system_clock.c ) -target_include_directories(mbed-core +target_include_directories(STM32L433xC INTERFACE . ) + +mbed_set_linker_script(STM32L433xC ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L433xC INTERFACE STM32L4) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L433xC/TARGET_NUCLEO_L433RC_P/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L433xC/TARGET_NUCLEO_L433RC_P/CMakeLists.txt new file mode 100644 index 00000000000..c7d0c9c133b --- /dev/null +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L433xC/TARGET_NUCLEO_L433RC_P/CMakeLists.txt @@ -0,0 +1,16 @@ +# Copyright (c) 2021 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +add_library(NUCLEO_L433RC_P INTERFACE) + +target_sources(NUCLEO_L433RC_P + INTERFACE + PeripheralPins.c +) + +target_include_directories(NUCLEO_L433RC_P + INTERFACE + . +) + +target_link_libraries(NUCLEO_L433RC_P INTERFACE STM32L433xC) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L443xC/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L443xC/CMakeLists.txt index 7462639c552..ad08072e1c8 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L443xC/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L443xC/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("ADV_WISE_1510" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_ADV_WISE_1510) -endif() +add_subdirectory(TARGET_ADV_WISE_1510 EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32l443xx.S) @@ -13,15 +11,20 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l443xc.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) -target_sources(mbed-core +add_library(STM32L443xC INTERFACE) + +target_sources(STM32L443xC INTERFACE ${STARTUP_FILE} system_clock.c ) -target_include_directories(mbed-core +target_include_directories(STM32L443xC INTERFACE . ) + +mbed_set_linker_script(STM32L443xC ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L443xC INTERFACE STM32L4) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L443xC/TARGET_ADV_WISE_1510/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L443xC/TARGET_ADV_WISE_1510/CMakeLists.txt index 118fbc11897..cbe86991ad7 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L443xC/TARGET_ADV_WISE_1510/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L443xC/TARGET_ADV_WISE_1510/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(ADV_WISE_1510 INTERFACE) + +target_sources(ADV_WISE_1510 INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(ADV_WISE_1510 INTERFACE . ) + +target_link_libraries(ADV_WISE_1510 INTERFACE STM32L443xC) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L452xE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L452xE/CMakeLists.txt index ad2bd275a4b..216641a5190 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L452xE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L452xE/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_L452RE_P" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_L452RE_P) -endif() +add_subdirectory(TARGET_NUCLEO_L452RE_P EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32l452xx.S) @@ -13,15 +11,20 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l452xe.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32L452xE INTERFACE) -target_sources(mbed-core +target_sources(STM32L452xE INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32L452xE INTERFACE . ) + + +mbed_set_linker_script(STM32L452xE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L452xE INTERFACE STM32L4) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L452xE/TARGET_NUCLEO_L452RE_P/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L452xE/TARGET_NUCLEO_L452RE_P/CMakeLists.txt index 118fbc11897..81031af5780 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L452xE/TARGET_NUCLEO_L452RE_P/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L452xE/TARGET_NUCLEO_L452RE_P/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_L452RE_P INTERFACE) + +target_sources(NUCLEO_L452RE_P INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_L452RE_P INTERFACE . ) + +target_link_libraries(NUCLEO_L452RE_P INTERFACE STM32L452xE) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L471xG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L471xG/CMakeLists.txt index a49f03f24d8..51b64a6f619 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L471xG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L471xG/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("MTS_DRAGONFLY_L471QG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_MTS_DRAGONFLY_L471QG) -endif() +add_subdirectory(TARGET_MTS_DRAGONFLY_L471QG EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32l471xx.S) @@ -13,15 +11,21 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l471xg.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) -target_sources(mbed-core +add_library(STM32L471xG INTERFACE) + +target_sources(STM32L471xG INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32L471xG INTERFACE . ) + + +mbed_set_linker_script(STM32L471xG ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L471xG INTERFACE STM32L4) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L471xG/TARGET_MTS_DRAGONFLY_L471QG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L471xG/TARGET_MTS_DRAGONFLY_L471QG/CMakeLists.txt index be09afa2e33..4fa3dfcc67b 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L471xG/TARGET_MTS_DRAGONFLY_L471QG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L471xG/TARGET_MTS_DRAGONFLY_L471QG/CMakeLists.txt @@ -1,7 +1,9 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(MTS_DRAGONFLY_L471QG INTERFACE) + +target_sources(MTS_DRAGONFLY_L471QG INTERFACE mtqn_low_power.c ONBOARD_SARA4_PPP.cpp @@ -9,7 +11,9 @@ target_sources(mbed-core PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(MTS_DRAGONFLY_L471QG INTERFACE . ) + +target_link_libraries(MTS_DRAGONFLY_L471QG INTERFACE STM32L471xG) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L475xG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L475xG/CMakeLists.txt index f7f2ca7298b..cd6a1180cb1 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L475xG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L475xG/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("DISCO_L475VG_IOT01A" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_DISCO_L475VG_IOT01A) -endif() +add_subdirectory(TARGET_DISCO_L475VG_IOT01A EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32l475xx.S) @@ -16,15 +14,20 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "IAR") set(LINKER_FILE TOOLCHAIN_IAR/stm32l475xg.icf) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32L475xG INTERFACE) -target_include_directories(mbed-core +target_include_directories(STM32L475xG INTERFACE . ) -target_sources(mbed-core +target_sources(STM32L475xG INTERFACE ${STARTUP_FILE} system_clock.c ) + + +mbed_set_linker_script(STM32L475xG ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L475xG INTERFACE STM32L4) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L475xG/TARGET_DISCO_L475VG_IOT01A/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L475xG/TARGET_DISCO_L475VG_IOT01A/CMakeLists.txt index 118fbc11897..5b799193596 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L475xG/TARGET_DISCO_L475VG_IOT01A/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L475xG/TARGET_DISCO_L475VG_IOT01A/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(DISCO_L475VG_IOT01A INTERFACE) + +target_sources(DISCO_L475VG_IOT01A INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(DISCO_L475VG_IOT01A INTERFACE . ) + +target_link_libraries(DISCO_L475VG_IOT01A INTERFACE STM32L475xG) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/CMakeLists.txt index 68cfdb3a69f..8d8fe727062 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/CMakeLists.txt @@ -1,13 +1,9 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("DISCO_L476VG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_DISCO_L476VG) -elseif("NUCLEO_L476RG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_L476RG) -elseif("RHOMBIO_L476DMW1K" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_RHOMBIO_L476DMW1K) -endif() +add_subdirectory(TARGET_DISCO_L476VG EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_NUCLEO_L476RG EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_RHOMBIO_L476DMW1K EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32l476xx.S) @@ -17,15 +13,20 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l476xg.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) -target_sources(mbed-core +add_library(STM32L476xG INTERFACE) + +target_sources(STM32L476xG INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32L476xG INTERFACE . ) + +mbed_set_linker_script(STM32L476xG ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L476xG INTERFACE STM32L4) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/TARGET_DISCO_L476VG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/TARGET_DISCO_L476VG/CMakeLists.txt index 118fbc11897..c1b3c89cb5d 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/TARGET_DISCO_L476VG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/TARGET_DISCO_L476VG/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(DISCO_L476VG INTERFACE) + +target_sources(DISCO_L476VG INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(DISCO_L476VG INTERFACE . ) + +target_link_libraries(DISCO_L476VG INTERFACE STM32L476xG) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/TARGET_NUCLEO_L476RG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/TARGET_NUCLEO_L476RG/CMakeLists.txt index 118fbc11897..f7ec86b7022 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/TARGET_NUCLEO_L476RG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/TARGET_NUCLEO_L476RG/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_L476RG INTERFACE) + +target_sources(NUCLEO_L476RG INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_L476RG INTERFACE . ) + +target_link_libraries(NUCLEO_L476RG INTERFACE STM32L476xG) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/TARGET_RHOMBIO_L476DMW1K/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/TARGET_RHOMBIO_L476DMW1K/CMakeLists.txt index 118fbc11897..cf8946e5497 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/TARGET_RHOMBIO_L476DMW1K/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/TARGET_RHOMBIO_L476DMW1K/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(RHOMBIO_L476DMW1K INTERFACE) + +target_sources(RHOMBIO_L476DMW1K INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(RHOMBIO_L476DMW1K INTERFACE . ) + +target_link_libraries(RHOMBIO_L476DMW1K INTERFACE STM32L476xG) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L486xG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L486xG/CMakeLists.txt index d4e54c49ee7..d9ec2d6e1c9 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L486xG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L486xG/CMakeLists.txt @@ -1,11 +1,8 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("ADV_WISE_1570" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_ADV_WISE_1570) -elseif("NUCLEO_L486RG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_L486RG) -endif() +add_subdirectory(TARGET_ADV_WISE_1570 EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_NUCLEO_L486RG EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32l486xx.S) @@ -15,14 +12,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l486xg.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32L486xG INTERFACE) -target_sources(mbed-core +target_sources(STM32L486xG INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32L486xG INTERFACE . ) + +mbed_set_linker_script(STM32L486xG ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L486xG INTERFACE STM32L4) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L486xG/TARGET_ADV_WISE_1570/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L486xG/TARGET_ADV_WISE_1570/CMakeLists.txt index 9be08aca4a6..1e785c2ba9a 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L486xG/TARGET_ADV_WISE_1570/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L486xG/TARGET_ADV_WISE_1570/CMakeLists.txt @@ -1,14 +1,18 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(ADV_WISE_1570 INTERFACE) + +target_sources(ADV_WISE_1570 INTERFACE ONBOARD_QUECTEL_BC95.cpp PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(ADV_WISE_1570 INTERFACE . ) + +target_link_libraries(ADV_WISE_1570 INTERFACE STM32L486xG) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L486xG/TARGET_NUCLEO_L486RG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L486xG/TARGET_NUCLEO_L486RG/CMakeLists.txt index 3a805bbdaaf..05fc7872e72 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L486xG/TARGET_NUCLEO_L486RG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L486xG/TARGET_NUCLEO_L486RG/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_L486RG INTERFACE) + +target_sources(NUCLEO_L486RG INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_L486RG INTERFACE . ) + +target_link_libraries(NUCLEO_L486RG INTERFACE STM32L486xG) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L496xG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L496xG/CMakeLists.txt index bbb815e497b..ea3d9e5f4e8 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L496xG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L496xG/CMakeLists.txt @@ -1,11 +1,8 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("DISCO_L496AG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_DISCO_L496AG) -elseif("NUCLEO_L496ZG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_L496ZG) -endif() +add_subdirectory(TARGET_DISCO_L496AG EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_NUCLEO_L496ZG EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32l496xx.S) @@ -15,15 +12,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l496xg.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32L496xG INTERFACE) -target_sources(mbed-core +target_sources(STM32L496xG INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32L496xG INTERFACE . ) + +mbed_set_linker_script(STM32L496xG ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L496xG INTERFACE STM32L4) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L496xG/TARGET_DISCO_L496AG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L496xG/TARGET_DISCO_L496AG/CMakeLists.txt index 118fbc11897..d936db1eccb 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L496xG/TARGET_DISCO_L496AG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L496xG/TARGET_DISCO_L496AG/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(DISCO_L496AG INTERFACE) + +target_sources(DISCO_L496AG INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(DISCO_L496AG INTERFACE . ) + +target_link_libraries(DISCO_L496AG INTERFACE STM32L496xG) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L496xG/TARGET_NUCLEO_L496ZG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L496xG/TARGET_NUCLEO_L496ZG/CMakeLists.txt index 118fbc11897..73d3d239105 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L496xG/TARGET_NUCLEO_L496ZG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L496xG/TARGET_NUCLEO_L496ZG/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_L496ZG INTERFACE) + +target_sources(NUCLEO_L496ZG INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_L496ZG INTERFACE . ) + +target_link_libraries(NUCLEO_L496ZG INTERFACE STM32L496xG) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R5xI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R5xI/CMakeLists.txt index 489a390d95b..965629eb271 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R5xI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R5xI/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_L4R5ZI" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_L4R5ZI) -endif() +add_subdirectory(TARGET_NUCLEO_L4R5ZI EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32l4r5xx.S) @@ -13,15 +11,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l4r5xi.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32L4R5xI INTERFACE) -target_sources(mbed-core +target_sources(STM32L4R5xI INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32L4R5xI INTERFACE . ) + +mbed_set_linker_script(STM32L4R5xI ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L4R5xI INTERFACE STM32L4) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R5xI/TARGET_NUCLEO_L4R5ZI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R5xI/TARGET_NUCLEO_L4R5ZI/CMakeLists.txt index 118fbc11897..5d90df450be 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R5xI/TARGET_NUCLEO_L4R5ZI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R5xI/TARGET_NUCLEO_L4R5ZI/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_L4R5ZI INTERFACE) + +target_sources(NUCLEO_L4R5ZI INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_L4R5ZI INTERFACE . ) + +target_link_libraries(NUCLEO_L4R5ZI INTERFACE STM32L4R5xI) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R9xI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R9xI/CMakeLists.txt index c943f83c15c..c774665329b 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R9xI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R9xI/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("DISCO_L4R9I" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_DISCO_L4R9I) -endif() +add_subdirectory(TARGET_DISCO_L4R9I EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32l4r9xx.S) @@ -13,15 +11,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l4r9xi.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32L4R9xI INTERFACE) -target_sources(mbed-core +target_sources(STM32L4R9xI INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32L4R9xI INTERFACE . ) + +mbed_set_linker_script(STM32L4R9xI ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L4R9xI INTERFACE STM32L4) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R9xI/TARGET_DISCO_L4R9I/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R9xI/TARGET_DISCO_L4R9I/CMakeLists.txt index 118fbc11897..4508c0004f3 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R9xI/TARGET_DISCO_L4R9I/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R9xI/TARGET_DISCO_L4R9I/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(DISCO_L4R9I INTERFACE) + +target_sources(DISCO_L4R9I INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(DISCO_L4R9I INTERFACE . ) + +target_link_libraries(DISCO_L4R9I INTERFACE STM32L4R9xI) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4S5xI/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4S5xI/CMakeLists.txt index 5dab6f9d755..b01b9775ee8 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4S5xI/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4S5xI/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("B_L4S5I_IOT01A" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_B_L4S5I_IOT01A) -endif() +add_subdirectory(TARGET_B_L4S5I_IOT01A EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32l4s5xx.S) @@ -13,15 +11,19 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l4s5xi.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32L4S5xI INTERFACE) -target_sources(mbed-core +target_sources(STM32L4S5xI INTERFACE system_clock.c ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32L4S5xI INTERFACE . ) + +mbed_set_linker_script(STM32L4S5xI ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L4S5xI INTERFACE STM32L4) diff --git a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4S5xI/TARGET_B_L4S5I_IOT01A/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4S5xI/TARGET_B_L4S5I_IOT01A/CMakeLists.txt index 118fbc11897..f70e7415129 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4S5xI/TARGET_B_L4S5I_IOT01A/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4S5xI/TARGET_B_L4S5I_IOT01A/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(B_L4S5I_IOT01A INTERFACE) + +target_sources(B_L4S5I_IOT01A INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(B_L4S5I_IOT01A INTERFACE . ) + +target_link_libraries(B_L4S5I_IOT01A INTERFACE STM32L4S5xI) diff --git a/targets/TARGET_STM/TARGET_STM32L5/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L5/CMakeLists.txt index a94f2281dc6..16ee3a66a38 100644 --- a/targets/TARGET_STM/TARGET_STM32L5/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L5/CMakeLists.txt @@ -1,17 +1,14 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("STM32L552xC" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L552xC) -elseif("STM32L552xE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L552xE) -elseif("STM32L562xE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32L562xE) -endif() +add_subdirectory(TARGET_STM32L552xC EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L552xE EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32L562xE EXCLUDE_FROM_ALL) +add_subdirectory(STM32Cube_FW EXCLUDE_FROM_ALL) -add_subdirectory(STM32Cube_FW) +add_library(STM32L5 INTERFACE) -target_sources(mbed-core +target_sources(STM32L5 INTERFACE analogin_device.c analogout_device.c @@ -23,7 +20,9 @@ target_sources(mbed-core spi_api.c ) -target_include_directories(mbed-core +target_include_directories(STM32L5 INTERFACE . ) + +target_link_libraries(STM32L5 INTERFACE STM STM32L5Cube_FW) diff --git a/targets/TARGET_STM/TARGET_STM32L5/STM32Cube_FW/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L5/STM32Cube_FW/CMakeLists.txt index 1bea24e4007..6ee6f991616 100644 --- a/targets/TARGET_STM/TARGET_STM32L5/STM32Cube_FW/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L5/STM32Cube_FW/CMakeLists.txt @@ -1,7 +1,9 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(STM32L5Cube_FW INTERFACE) + +target_sources(STM32L5Cube_FW INTERFACE STM32L5xx_HAL_Driver/stm32l5xx_hal.c STM32L5xx_HAL_Driver/stm32l5xx_hal_adc.c @@ -98,7 +100,7 @@ target_sources(mbed-core system_stm32l5xx.c ) -target_include_directories(mbed-core +target_include_directories(STM32L5Cube_FW INTERFACE . CMSIS diff --git a/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L552xC/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L552xC/CMakeLists.txt index e775157385c..947b98436bf 100644 --- a/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L552xC/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L552xC/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l552xc.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32L552xC INTERFACE) -target_sources(mbed-core +target_sources(STM32L552xC INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32L552xC INTERFACE . ) + +mbed_set_linker_script(STM32L552xC ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L552xC INTERFACE STM32L5) diff --git a/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L552xE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L552xE/CMakeLists.txt index 5bc342d5327..62acf8e8d96 100644 --- a/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L552xE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L552xE/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_L552ZE_Q" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_L552ZE_Q) -endif() +add_subdirectory(TARGET_NUCLEO_L552ZE_Q EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32l552xx.S) @@ -13,14 +11,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l552xe.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32L552xE INTERFACE) -target_sources(mbed-core +target_sources(STM32L552xE INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32L552xE INTERFACE . ) + +mbed_set_linker_script(STM32L552xE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L552xE INTERFACE STM32L5) diff --git a/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L552xE/TARGET_NUCLEO_L552ZE_Q/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L552xE/TARGET_NUCLEO_L552ZE_Q/CMakeLists.txt index 118fbc11897..46633da746d 100644 --- a/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L552xE/TARGET_NUCLEO_L552ZE_Q/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L552xE/TARGET_NUCLEO_L552ZE_Q/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_L552ZE_Q INTERFACE) + +target_sources(NUCLEO_L552ZE_Q INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_L552ZE_Q INTERFACE . ) + +target_link_libraries(NUCLEO_L552ZE_Q INTERFACE STM32L552xE) diff --git a/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L562xE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L562xE/CMakeLists.txt index d64ffa88754..7e4457987ba 100644 --- a/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L562xE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L562xE/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("DISCO_L562QE" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_DISCO_L562QE) -endif() +add_subdirectory(TARGET_DISCO_L562QE EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32l562xx.S) @@ -13,14 +11,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32l562xe.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32L562xE INTERFACE) -target_sources(mbed-core +target_sources(STM32L562xE INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32L562xE INTERFACE . ) + +mbed_set_linker_script(STM32L562xE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32L562xE INTERFACE STM32L5) diff --git a/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L562xE/TARGET_DISCO_L562QE/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L562xE/TARGET_DISCO_L562QE/CMakeLists.txt index 118fbc11897..4935722443c 100644 --- a/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L562xE/TARGET_DISCO_L562QE/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32L5/TARGET_STM32L562xE/TARGET_DISCO_L562QE/CMakeLists.txt @@ -1,12 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(DISCO_L562QE INTERFACE) + +target_sources(DISCO_L562QE INTERFACE PeripheralPins.c ) -target_include_directories(mbed-core +target_include_directories(DISCO_L562QE INTERFACE . ) + +target_link_libraries(DISCO_L562QE INTERFACE STM32L562xE) diff --git a/targets/TARGET_STM/TARGET_STM32WB/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32WB/CMakeLists.txt index d347e194fde..e2a0059899b 100644 --- a/targets/TARGET_STM/TARGET_STM32WB/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32WB/CMakeLists.txt @@ -1,15 +1,13 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("STM32WB50xx" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32WB50xx) -elseif("STM32WB55xx" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_STM32WB55xx) -endif() +add_subdirectory(TARGET_STM32WB50xx EXCLUDE_FROM_ALL) +add_subdirectory(TARGET_STM32WB55xx EXCLUDE_FROM_ALL) +add_subdirectory(STM32Cube_FW EXCLUDE_FROM_ALL) -add_subdirectory(STM32Cube_FW) +add_library(STM32WB INTERFACE) -target_sources(mbed-core +target_sources(STM32WB INTERFACE analogin_device.c flash_api.c @@ -20,7 +18,9 @@ target_sources(mbed-core wb_sleep.c ) -target_include_directories(mbed-core +target_include_directories(STM32WB INTERFACE . ) + +target_link_libraries(STM32WB INTERFACE STM STM32WBCube_FW) diff --git a/targets/TARGET_STM/TARGET_STM32WB/STM32Cube_FW/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32WB/STM32Cube_FW/CMakeLists.txt index 07e0494a61c..4ff18e47d2a 100644 --- a/targets/TARGET_STM/TARGET_STM32WB/STM32Cube_FW/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32WB/STM32Cube_FW/CMakeLists.txt @@ -1,7 +1,9 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(STM32WBCube_FW INTERFACE) + +target_sources(STM32WBCube_FW INTERFACE otp.c STM32WBxx_HAL_Driver/stm32wbxx_hal.c @@ -77,7 +79,7 @@ target_sources(mbed-core system_stm32wbxx.c ) -target_include_directories(mbed-core +target_include_directories(STM32WBCube_FW INTERFACE . CMSIS diff --git a/targets/TARGET_STM/TARGET_STM32WB/TARGET_STM32WB50xx/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32WB/TARGET_STM32WB50xx/CMakeLists.txt index b5caaa1f1b0..5e1f963b721 100644 --- a/targets/TARGET_STM/TARGET_STM32WB/TARGET_STM32WB50xx/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32WB/TARGET_STM32WB50xx/CMakeLists.txt @@ -9,14 +9,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32wb50xx.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32WB50xx INTERFACE) -target_sources(mbed-core +target_sources(STM32WB50xx INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32WB50xx INTERFACE . ) + +mbed_set_linker_script(STM32WB50xx ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32WB50xx INTERFACE STM32WB) diff --git a/targets/TARGET_STM/TARGET_STM32WB/TARGET_STM32WB55xx/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32WB/TARGET_STM32WB55xx/CMakeLists.txt index 19a58016d9b..ea04feeb8f7 100644 --- a/targets/TARGET_STM/TARGET_STM32WB/TARGET_STM32WB55xx/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32WB/TARGET_STM32WB55xx/CMakeLists.txt @@ -1,9 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("NUCLEO_WB55RG" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_NUCLEO_WB55RG) -endif() +add_subdirectory(TARGET_NUCLEO_WB55RG EXCLUDE_FROM_ALL) if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_stm32wb55xx.S) @@ -13,14 +11,18 @@ elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") set(LINKER_FILE TOOLCHAIN_ARM/stm32wb55xx.sct) endif() -set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) +add_library(STM32WB55xx INTERFACE) -target_sources(mbed-core +target_sources(STM32WB55xx INTERFACE ${STARTUP_FILE} ) -target_include_directories(mbed-core +target_include_directories(STM32WB55xx INTERFACE . ) + +mbed_set_linker_script(STM32WB55xx ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_link_libraries(STM32WB55xx INTERFACE STM32WB) diff --git a/targets/TARGET_STM/TARGET_STM32WB/TARGET_STM32WB55xx/TARGET_NUCLEO_WB55RG/CMakeLists.txt b/targets/TARGET_STM/TARGET_STM32WB/TARGET_STM32WB55xx/TARGET_NUCLEO_WB55RG/CMakeLists.txt index 3a805bbdaaf..c276110ef3d 100644 --- a/targets/TARGET_STM/TARGET_STM32WB/TARGET_STM32WB55xx/TARGET_NUCLEO_WB55RG/CMakeLists.txt +++ b/targets/TARGET_STM/TARGET_STM32WB/TARGET_STM32WB55xx/TARGET_NUCLEO_WB55RG/CMakeLists.txt @@ -1,13 +1,17 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -target_sources(mbed-core +add_library(NUCLEO_WB55RG INTERFACE) + +target_sources(NUCLEO_WB55RG INTERFACE PeripheralPins.c system_clock.c ) -target_include_directories(mbed-core +target_include_directories(NUCLEO_WB55RG INTERFACE . ) + +target_link_libraries(NUCLEO_WB55RG INTERFACE STM32WB55xx)