From 991b02ca7e369892562c07a37ebc43d019e0f731 Mon Sep 17 00:00:00 2001 From: Rajkumar Kanagaraj Date: Mon, 9 Nov 2020 15:56:24 +0000 Subject: [PATCH 1/7] CMake: Replace mbed_set_language_standard with target_compile_features and remove MBED_TARGET_LABELS variable resetting --- CMakeLists.txt | 12 ++++++------ tools/cmake/toolchain.cmake | 17 ----------------- 2 files changed, 6 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e6b12aa935..d895a6a743 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,11 +62,6 @@ if(${MBED_TOOLCHAIN_FILE_USED}) mbed_set_printf_lib(mbed-core ${MBED_PRINTF_LIB}) endif() - -set(MBED_TARGET_LABELS - ${MBED_TARGET_LABELS} CACHE INTERNAL "" -) - target_compile_definitions(mbed-core INTERFACE ${MBED_TARGET_DEFINITIONS} @@ -124,7 +119,12 @@ add_subdirectory(cmsis/device/rtos EXCLUDE_FROM_ALL) # Configures the application # function(mbed_configure_app_target target) - mbed_set_language_standard(${target}) + # Set the language standard to use per target + target_compile_features(${target} + PUBLIC + c_std_11 + cxx_std_14 + ) endfunction() # diff --git a/tools/cmake/toolchain.cmake b/tools/cmake/toolchain.cmake index 6f11d7a854..a4dff0a434 100644 --- a/tools/cmake/toolchain.cmake +++ b/tools/cmake/toolchain.cmake @@ -46,23 +46,6 @@ set(CMAKE_CROSSCOMPILING TRUE) set(CMAKE_C_COMPILER_WORKS TRUE) set(CMAKE_CXX_COMPILER_WORKS TRUE) -# Set the language standard to use per target -function(mbed_set_language_standard target) - set_target_properties(${target} - PROPERTIES - C_STANDARD 11 - C_STANDARD_REQUIRED YES - C_EXTENSIONS YES - ) - - set_target_properties(${target} - PROPERTIES - CXX_STANDARD 14 - CXX_STANDARD_REQUIRED YES - CXX_EXTENSIONS YES - ) -endfunction() - # Clear toolchains options for all languages as Mbed OS uses # different initialisation options (such as for optimization and debug symbols) set(CMAKE_C_FLAGS_DEBUG "" CACHE STRING "" FORCE) From a4d8559c080c61807ac90af042f61b57e9758ab1 Mon Sep 17 00:00:00 2001 From: Rajkumar Kanagaraj Date: Mon, 9 Nov 2020 15:57:30 +0000 Subject: [PATCH 2/7] CMake: Rename input source files from CMakelists.txt to CMakeLists.txt --- .../TARGET_Ambiq_Micro/{CMakelists.txt => CMakeLists.txt} | 0 .../TARGET_Apollo3/{CMakelists.txt => CMakeLists.txt} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename connectivity/drivers/ble/FEATURE_BLE/TARGET_Ambiq_Micro/{CMakelists.txt => CMakeLists.txt} (100%) rename connectivity/drivers/ble/FEATURE_BLE/TARGET_Ambiq_Micro/TARGET_Apollo3/{CMakelists.txt => CMakeLists.txt} (100%) diff --git a/connectivity/drivers/ble/FEATURE_BLE/TARGET_Ambiq_Micro/CMakelists.txt b/connectivity/drivers/ble/FEATURE_BLE/TARGET_Ambiq_Micro/CMakeLists.txt similarity index 100% rename from connectivity/drivers/ble/FEATURE_BLE/TARGET_Ambiq_Micro/CMakelists.txt rename to connectivity/drivers/ble/FEATURE_BLE/TARGET_Ambiq_Micro/CMakeLists.txt diff --git a/connectivity/drivers/ble/FEATURE_BLE/TARGET_Ambiq_Micro/TARGET_Apollo3/CMakelists.txt b/connectivity/drivers/ble/FEATURE_BLE/TARGET_Ambiq_Micro/TARGET_Apollo3/CMakeLists.txt similarity index 100% rename from connectivity/drivers/ble/FEATURE_BLE/TARGET_Ambiq_Micro/TARGET_Apollo3/CMakelists.txt rename to connectivity/drivers/ble/FEATURE_BLE/TARGET_Ambiq_Micro/TARGET_Apollo3/CMakeLists.txt From 766a9a8219571c429eb66511d548d5785ca0099d Mon Sep 17 00:00:00 2001 From: Rajkumar Kanagaraj Date: Mon, 9 Nov 2020 15:58:10 +0000 Subject: [PATCH 3/7] CMake: Remove empty input source files --- .../TARGET_NORDIC_CORDIO/TARGET_MCU_NRF52840/CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 connectivity/drivers/ble/FEATURE_BLE/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_MCU_NRF52840/CMakeLists.txt diff --git a/connectivity/drivers/ble/FEATURE_BLE/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_MCU_NRF52840/CMakeLists.txt b/connectivity/drivers/ble/FEATURE_BLE/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_MCU_NRF52840/CMakeLists.txt deleted file mode 100644 index f79b509942..0000000000 --- a/connectivity/drivers/ble/FEATURE_BLE/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_MCU_NRF52840/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -# Copyright (c) 2020 ARM Limited. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 From a044bfa9c15b2b04ea074cebc47ce9debe6f442c Mon Sep 17 00:00:00 2001 From: Rajkumar Kanagaraj Date: Mon, 9 Nov 2020 15:58:53 +0000 Subject: [PATCH 4/7] CMake: Add more information to TODO comment --- connectivity/netsocket/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/connectivity/netsocket/CMakeLists.txt b/connectivity/netsocket/CMakeLists.txt index f6c42886b7..f99ae1dbaa 100644 --- a/connectivity/netsocket/CMakeLists.txt +++ b/connectivity/netsocket/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -# TODO CMake: Perhaps move this/these file(s) +# TODO CMake: Perhaps move this/these file(s) into connectivity/drivers/cellular target_sources(mbed-cellular INTERFACE source/CellularNonIPSocket.cpp From cc7ae38fed1165144714811a0713d7f0d2343040 Mon Sep 17 00:00:00 2001 From: Rajkumar Kanagaraj Date: Mon, 9 Nov 2020 15:59:33 +0000 Subject: [PATCH 5/7] CMake: Simplify inclusion of cryptocell310 library files --- .../TARGET_MCU_NRF52840/CMakeLists.txt | 48 +++++++------------ .../binaries/CMakeLists.txt | 25 +++++----- 2 files changed, 28 insertions(+), 45 deletions(-) diff --git a/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/TARGET_MCU_NRF52840/CMakeLists.txt b/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/TARGET_MCU_NRF52840/CMakeLists.txt index 54c9d208b3..8aa2c4720b 100644 --- a/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/TARGET_MCU_NRF52840/CMakeLists.txt +++ b/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/TARGET_MCU_NRF52840/CMakeLists.txt @@ -1,36 +1,16 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -function(_mbed_get_libcc_310_ext) - if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") - set(LIBCC_310_EXT TOOLCHAIN_GCC_ARM/libcc_310_ext.a) - elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") - set(LIBCC_310_EXT TOOLCHAIN_ARM/libcc_310_ext.ar) - elseif(${MBED_TOOLCHAIN} STREQUAL "IAR") - set(LIBCC_310_EXT TOOLCHAIN_IAR/lib_cc310_ext.a) - endif() - target_link_libraries(mbed-mbedtls-cryptocell310 - INTERFACE - ./${LIBCC_310_EXT} - ) -endfunction() - -function(_mbed_get_libcc_310_trng) - if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") - set(LIBCC_310_TRNG TOOLCHAIN_GCC_ARM/libcc_310_trng.a) - elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") - set(LIBCC_310_TRNG TOOLCHAIN_ARM/libcc_310_trng.ar) - elseif(${MBED_TOOLCHAIN} STREQUAL "IAR") - set(LIBCC_310_TRNG TOOLCHAIN_IAR/lib_cc310_trng.a) - endif() - target_link_libraries(mbed-mbedtls-cryptocell310 - INTERFACE - ./${LIBCC_310_TRNG} - ) -endfunction() - -_mbed_get_libcc_310_ext() -_mbed_get_libcc_310_trng() +if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") + set(LIBCC_310_EXT ./TOOLCHAIN_GCC_ARM/libcc_310_ext.a) + set(LIBCC_310_TRNG ./TOOLCHAIN_GCC_ARM/libcc_310_trng.a) +elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") + set(LIBCC_310_EXT ./TOOLCHAIN_ARM/libcc_310_ext.ar) + set(LIBCC_310_TRNG ./TOOLCHAIN_ARM/libcc_310_trng.ar) +elseif(${MBED_TOOLCHAIN} STREQUAL "IAR") + set(LIBCC_310_EXT ./TOOLCHAIN_IAR/lib_cc310_ext.a) + set(LIBCC_310_TRNG ./TOOLCHAIN_IAR/lib_cc310_trng.a) +endif() target_include_directories(mbed-mbedtls-cryptocell310 INTERFACE @@ -40,4 +20,10 @@ target_include_directories(mbed-mbedtls-cryptocell310 target_sources(mbed-mbedtls-cryptocell310 INTERFACE crypto_device_platform.c -) \ No newline at end of file +) + +target_link_libraries(mbed-mbedtls-cryptocell310 + INTERFACE + ${LIBCC_310_EXT} + ${LIBCC_310_TRNG} +) diff --git a/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/binaries/CMakeLists.txt b/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/binaries/CMakeLists.txt index ff1cb07560..2fc6782579 100644 --- a/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/binaries/CMakeLists.txt +++ b/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/binaries/CMakeLists.txt @@ -1,18 +1,15 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -function(_mbed_get_libcc_310_core) - if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") - set(LIBCC_310_CORE TOOLCHAIN_GCC_ARM/libcc_310_core.a) - elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") - set(LIBCC_310_CORE TOOLCHAIN_ARM/libcc_310_core.ar) - elseif(${MBED_TOOLCHAIN} STREQUAL "IAR") - set(LIBCC_310_CORE TOOLCHAIN_IAR/lib_cc310_ext.a) - endif() - target_link_libraries(mbed-mbedtls-cryptocell310 - INTERFACE - ./${LIBCC_310_CORE} - ) -endfunction() +if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") + set(LIBCC_310_CORE ./TOOLCHAIN_GCC_ARM/libcc_310_core.a) +elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") + set(LIBCC_310_CORE ./TOOLCHAIN_ARM/libcc_310_core.ar) +elseif(${MBED_TOOLCHAIN} STREQUAL "IAR") + set(LIBCC_310_CORE ./TOOLCHAIN_IAR/lib_cc310_ext.a) +endif() -_mbed_get_libcc_310_core() +target_link_libraries(mbed-mbedtls-cryptocell310 + INTERFACE + ${LIBCC_310_CORE} +) From 4c05ce874a9875e3cf6214d09e7bb7d61068c458 Mon Sep 17 00:00:00 2001 From: Rajkumar Kanagaraj Date: Tue, 10 Nov 2020 17:36:38 +0000 Subject: [PATCH 6/7] Remove add subdirectory of TARGET_MCU_NRF52840 as it contains only mbed_lib.json --- .../TARGET_NORDIC/TARGET_NORDIC_CORDIO/CMakeLists.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/connectivity/drivers/ble/FEATURE_BLE/TARGET_NORDIC/TARGET_NORDIC_CORDIO/CMakeLists.txt b/connectivity/drivers/ble/FEATURE_BLE/TARGET_NORDIC/TARGET_NORDIC_CORDIO/CMakeLists.txt index 6178c32554..17f4bab530 100644 --- a/connectivity/drivers/ble/FEATURE_BLE/TARGET_NORDIC/TARGET_NORDIC_CORDIO/CMakeLists.txt +++ b/connectivity/drivers/ble/FEATURE_BLE/TARGET_NORDIC/TARGET_NORDIC_CORDIO/CMakeLists.txt @@ -1,8 +1,6 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -if("MCU_NRF52840" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_MCU_NRF52840) -elseif("NRF5x" IN_LIST MBED_TARGET_LABELS) +if("NRF5x" IN_LIST MBED_TARGET_LABELS) add_subdirectory(TARGET_NRF5x) endif() From 438994ded4273c5d2fa0a1b72217294a08b4aaa5 Mon Sep 17 00:00:00 2001 From: Rajkumar Kanagaraj Date: Thu, 12 Nov 2020 11:19:24 +0000 Subject: [PATCH 7/7] Fix CI issue: - Added absolute path as cmake failed to find linker file from relative path - Added the missing MBED_CONF_CRYPTOCELL310_PRESENT - Added the dependency library to BLE Cordio stack --- .../TARGET_NRF5x/CMakeLists.txt | 6 ++++++ .../mbedtls/FEATURE_CRYPTOCELL310/CMakeLists.txt | 5 +++++ .../TARGET_MCU_NRF52840/CMakeLists.txt | 16 ++++++++-------- .../binaries/CMakeLists.txt | 8 ++++---- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/connectivity/drivers/ble/FEATURE_BLE/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_NRF5x/CMakeLists.txt b/connectivity/drivers/ble/FEATURE_BLE/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_NRF5x/CMakeLists.txt index 643912fe34..29996451c0 100644 --- a/connectivity/drivers/ble/FEATURE_BLE/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_NRF5x/CMakeLists.txt +++ b/connectivity/drivers/ble/FEATURE_BLE/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_NRF5x/CMakeLists.txt @@ -19,3 +19,9 @@ target_sources(mbed-ble-cordio stack/sources/pal_crypto.c stack/sources/pal_timer.c ) + +target_link_libraries(mbed-ble-cordio + INTERFACE + mbed-ble-cordio_ll + mbed-mbedtls-cryptocell310 +) diff --git a/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/CMakeLists.txt b/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/CMakeLists.txt index c5484a707c..b5d392ee41 100644 --- a/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/CMakeLists.txt +++ b/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/CMakeLists.txt @@ -29,6 +29,11 @@ target_sources(mbed-mbedtls-cryptocell310 source/trng.c ) +target_compile_definitions(mbed-mbedtls-cryptocell310 + INTERFACE + MBED_CONF_CRYPTOCELL310_PRESENT=1 +) + target_link_libraries(mbed-mbedtls-cryptocell310 INTERFACE mbed-mbedtls diff --git a/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/TARGET_MCU_NRF52840/CMakeLists.txt b/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/TARGET_MCU_NRF52840/CMakeLists.txt index 8aa2c4720b..9c043cb7f5 100644 --- a/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/TARGET_MCU_NRF52840/CMakeLists.txt +++ b/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/TARGET_MCU_NRF52840/CMakeLists.txt @@ -2,14 +2,14 @@ # SPDX-License-Identifier: Apache-2.0 if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") - set(LIBCC_310_EXT ./TOOLCHAIN_GCC_ARM/libcc_310_ext.a) - set(LIBCC_310_TRNG ./TOOLCHAIN_GCC_ARM/libcc_310_trng.a) + set(LIBCC_310_EXT TOOLCHAIN_GCC_ARM/libcc_310_ext.a) + set(LIBCC_310_TRNG TOOLCHAIN_GCC_ARM/libcc_310_trng.a) elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") - set(LIBCC_310_EXT ./TOOLCHAIN_ARM/libcc_310_ext.ar) - set(LIBCC_310_TRNG ./TOOLCHAIN_ARM/libcc_310_trng.ar) + set(LIBCC_310_EXT TOOLCHAIN_ARM/libcc_310_ext.ar) + set(LIBCC_310_TRNG TOOLCHAIN_ARM/libcc_310_trng.ar) elseif(${MBED_TOOLCHAIN} STREQUAL "IAR") - set(LIBCC_310_EXT ./TOOLCHAIN_IAR/lib_cc310_ext.a) - set(LIBCC_310_TRNG ./TOOLCHAIN_IAR/lib_cc310_trng.a) + set(LIBCC_310_EXT TOOLCHAIN_IAR/lib_cc310_ext.a) + set(LIBCC_310_TRNG TOOLCHAIN_IAR/lib_cc310_trng.a) endif() target_include_directories(mbed-mbedtls-cryptocell310 @@ -24,6 +24,6 @@ target_sources(mbed-mbedtls-cryptocell310 target_link_libraries(mbed-mbedtls-cryptocell310 INTERFACE - ${LIBCC_310_EXT} - ${LIBCC_310_TRNG} + ${CMAKE_CURRENT_SOURCE_DIR}/${LIBCC_310_EXT} + ${CMAKE_CURRENT_SOURCE_DIR}/${LIBCC_310_TRNG} ) diff --git a/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/binaries/CMakeLists.txt b/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/binaries/CMakeLists.txt index 2fc6782579..2052eaaa55 100644 --- a/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/binaries/CMakeLists.txt +++ b/connectivity/drivers/mbedtls/FEATURE_CRYPTOCELL310/binaries/CMakeLists.txt @@ -2,14 +2,14 @@ # SPDX-License-Identifier: Apache-2.0 if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") - set(LIBCC_310_CORE ./TOOLCHAIN_GCC_ARM/libcc_310_core.a) + set(LIBCC_310_CORE TOOLCHAIN_GCC_ARM/libcc_310_core.a) elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") - set(LIBCC_310_CORE ./TOOLCHAIN_ARM/libcc_310_core.ar) + set(LIBCC_310_CORE TOOLCHAIN_ARM/libcc_310_core.ar) elseif(${MBED_TOOLCHAIN} STREQUAL "IAR") - set(LIBCC_310_CORE ./TOOLCHAIN_IAR/lib_cc310_ext.a) + set(LIBCC_310_CORE TOOLCHAIN_IAR/lib_cc310_ext.a) endif() target_link_libraries(mbed-mbedtls-cryptocell310 INTERFACE - ${LIBCC_310_CORE} + ${CMAKE_CURRENT_SOURCE_DIR}/${LIBCC_310_CORE} )