CMake: turn mbed-core into interface + obj libraries

pull/14427/head
Martin Kojtal 2021-02-22 20:45:01 +00:00
parent 68fb11e912
commit 494d0c0711
14 changed files with 63 additions and 32 deletions

View File

@ -9,6 +9,13 @@ include(${MBED_CONFIG_PATH}/mbed_config.cmake)
include(tools/cmake/set_linker_script.cmake)
add_library(mbed-core INTERFACE)
add_library(mbed-core-obj OBJECT)
set_property(TARGET mbed-core PROPERTY INTERFACE_SOURCES $<TARGET_OBJECTS:mbed-core-obj>)
foreach(options COMPILE_DEFINITIONS COMPILE_FEATURES COMPILE_OPTIONS INCLUDE_DIRECTORIES LINK_LIBRARIES)
set_target_properties(mbed-core-obj PROPERTIES ${options} $<TARGET_PROPERTY:mbed-core,INTERFACE_${options}>)
endforeach()
add_library(mbed-os INTERFACE)
@ -114,6 +121,14 @@ target_include_directories(mbed-core
# TODO CMake: Should the source files be moved?
add_library(mbed-device_key INTERFACE)
add_library(mbed-rtos INTERFACE)
add_library(mbed-rtos-obj OBJECT)
set_property(TARGET mbed-rtos PROPERTY INTERFACE_SOURCES $<TARGET_OBJECTS:mbed-rtos-obj>)
foreach(options COMPILE_DEFINITIONS COMPILE_FEATURES COMPILE_OPTIONS INCLUDE_DIRECTORIES LINK_LIBRARIES)
set_target_properties(mbed-rtos-obj PROPERTIES ${options} $<TARGET_PROPERTY:mbed-rtos,INTERFACE_${options}>)
endforeach()
add_subdirectory(cmsis)
add_subdirectory(drivers)

View File

@ -2,13 +2,20 @@
# SPDX-License-Identifier: Apache-2.0
add_library(mbed-cmsis-cortex-a INTERFACE)
add_library(mbed-cmsis-cortex-a-obj OBJECT)
target_include_directories(mbed-cmsis-cortex-a
INTERFACE
Include
)
target_sources(mbed-cmsis-cortex-a
INTERFACE
target_sources(mbed-cmsis-cortex-a-obj
PRIVATE
Source/irq_ctrl_gic.c
)
set_property(TARGET mbed-cmsis-cortex-a PROPERTY INTERFACE_SOURCES $<TARGET_OBJECTS:mbed-cmsis-cortex-a-obj>)
foreach(options COMPILE_DEFINITIONS COMPILE_FEATURES COMPILE_OPTIONS INCLUDE_DIRECTORIES LINK_LIBRARIES)
set_target_properties(mbed-cmsis-cortex-a-obj PROPERTIES ${options} $<TARGET_PROPERTY:mbed-cmsis-cortex-a,INTERFACE_${options}>)
endforeach()

View File

@ -2,13 +2,20 @@
# SPDX-License-Identifier: Apache-2.0
add_library(mbed-cmsis-cortex-m INTERFACE)
add_library(mbed-cmsis-cortex-m-obj OBJECT)
target_include_directories(mbed-cmsis-cortex-m
INTERFACE
Include
)
target_sources(mbed-cmsis-cortex-m
INTERFACE
target_sources(mbed-cmsis-cortex-m-obj
PRIVATE
Source/mbed_tz_context.c
)
set_property(TARGET mbed-cmsis-cortex-m PROPERTY INTERFACE_SOURCES $<TARGET_OBJECTS:mbed-cmsis-cortex-m-obj>)
foreach(options COMPILE_DEFINITIONS COMPILE_FEATURES COMPILE_OPTIONS INCLUDE_DIRECTORIES LINK_LIBRARIES)
set_target_properties(mbed-cmsis-cortex-m-obj PROPERTIES ${options} $<TARGET_PROPERTY:mbed-cmsis-cortex-m,INTERFACE_${options}>)
endforeach()

View File

@ -2,13 +2,13 @@
# SPDX-License-Identifier: Apache-2.0
if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
target_sources(mbed-rtos
INTERFACE
target_sources(mbed-rtos-obj
PRIVATE
TOOLCHAIN_GCC_ARM/mbed_boot_gcc_arm.c
)
elseif(${MBED_TOOLCHAIN} STREQUAL "ARM")
target_sources(mbed-rtos
INTERFACE
target_sources(mbed-rtos-obj
PRIVATE
TOOLCHAIN_ARM_STD/mbed_boot_arm_std.c
)
endif()
@ -18,8 +18,8 @@ target_include_directories(mbed-rtos
include
)
target_sources(mbed-rtos
INTERFACE
target_sources(mbed-rtos-obj
PRIVATE
source/mbed_boot.c
source/mbed_rtos_rtx.c
source/mbed_rtx_handlers.c
@ -30,3 +30,5 @@ target_compile_definitions(mbed-rtos
INTERFACE
MBED_CONF_RTOS_PRESENT=1
)
target_link_libraries(mbed-rtos INTERFACE mbed-core)

View File

@ -31,8 +31,8 @@ target_include_directories(mbed-core
.
./mbed-client-libservice
)
target_sources(mbed-core
INTERFACE
target_sources(mbed-core-obj
PRIVATE
source/libBits/common_functions.c
source/libip6string/ip6tos.c
)

View File

@ -9,8 +9,8 @@ target_include_directories(mbed-core
./include/drivers/internal
)
target_sources(mbed-core
INTERFACE
target_sources(mbed-core-obj
PRIVATE
source/AnalogIn.cpp
source/AnalogOut.cpp
source/BufferedSerial.cpp

View File

@ -11,8 +11,8 @@ target_include_directories(mbed-core
include/hal
)
target_sources(mbed-core
INTERFACE
target_sources(mbed-core-obj
PRIVATE
source/LowPowerTickerWrapper.cpp
source/mbed_compat.c
source/mbed_critical_section_api.c

View File

@ -7,7 +7,7 @@ target_include_directories(mbed-core
include/usb
)
target_sources(mbed-core
INTERFACE
target_sources(mbed-core-obj
PRIVATE
source/mbed_usb_phy.cpp
)

View File

@ -6,7 +6,7 @@ target_include_directories(mbed-core
.
)
target_sources(mbed-core
INTERFACE
target_sources(mbed-core-obj
PRIVATE
mstd_mutex.cpp
)

View File

@ -9,7 +9,7 @@ target_include_directories(mbed-core
include/mbed-trace
)
target_sources(mbed-core
INTERFACE
target_sources(mbed-core-obj
PRIVATE
source/mbed_trace.c
)

View File

@ -12,8 +12,8 @@ target_include_directories(mbed-core
.
)
target_sources(mbed-core
INTERFACE
target_sources(mbed-core-obj
PRIVATE
ATCmdParser.cpp
CThunkBase.cpp
CriticalSectionLock.cpp

View File

@ -2,12 +2,12 @@
# SPDX-License-Identifier: Apache-2.0
if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
target_sources(mbed-core INTERFACE TOOLCHAIN_GCC/except.S)
target_sources(mbed-core-obj PRIVATE TOOLCHAIN_GCC/except.S)
elseif(${MBED_TOOLCHAIN} STREQUAL "ARM")
target_sources(mbed-core INTERFACE TOOLCHAIN_ARM/except.S)
target_sources(mbed-core-obj PRIVATE TOOLCHAIN_ARM/except.S)
endif()
target_sources(mbed-core
INTERFACE
target_sources(mbed-core-obj
PRIVATE
mbed_fault_handler.c
)

View File

@ -6,8 +6,8 @@ target_include_directories(mbed-core
.
)
target_sources(mbed-core
INTERFACE
target_sources(mbed-core-obj
PRIVATE
mbed_printf_armlink_overrides.c
mbed_printf_implementation.c
mbed_printf_wrapper.c

View File

@ -10,8 +10,8 @@ target_include_directories(mbed-core
./source
)
target_sources(mbed-core
INTERFACE
target_sources(mbed-core-obj
PRIVATE
source/EventFlags.cpp
source/Kernel.cpp
source/Mutex.cpp