diff --git a/platform/tests/TESTS/mbed_functional/callback/CMakeLists.txt b/platform/tests/TESTS/mbed_functional/callback/CMakeLists.txt new file mode 100644 index 0000000000..a73ae51215 --- /dev/null +++ b/platform/tests/TESTS/mbed_functional/callback/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-mbed-functional-callback) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_functional/callback_big/CMakeLists.txt b/platform/tests/TESTS/mbed_functional/callback_big/CMakeLists.txt new file mode 100644 index 0000000000..5963f51f4b --- /dev/null +++ b/platform/tests/TESTS/mbed_functional/callback_big/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-mbed-functional-callback-big) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_functional/callback_small/CMakeLists.txt b/platform/tests/TESTS/mbed_functional/callback_small/CMakeLists.txt new file mode 100644 index 0000000000..54adf70846 --- /dev/null +++ b/platform/tests/TESTS/mbed_functional/callback_small/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-mbed-functional-callback-small) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_micro/attributes/CMakeLists.txt b/platform/tests/TESTS/mbed_micro/attributes/CMakeLists.txt new file mode 100644 index 0000000000..5a9ec666f8 --- /dev/null +++ b/platform/tests/TESTS/mbed_micro/attributes/CMakeLists.txt @@ -0,0 +1,15 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-mbed-micro-attributes) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +list(APPEND TEST_SOURCE_LIST weak.c attributes.c) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET} TEST_SOURCES ${TEST_SOURCE_LIST}) diff --git a/platform/tests/TESTS/mbed_micro/call_before_main/CMakeLists.txt b/platform/tests/TESTS/mbed_micro/call_before_main/CMakeLists.txt new file mode 100644 index 0000000000..7a1e30b31c --- /dev/null +++ b/platform/tests/TESTS/mbed_micro/call_before_main/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-mbed-micro-call-before-main) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_micro/cpp/CMakeLists.txt b/platform/tests/TESTS/mbed_micro/cpp/CMakeLists.txt new file mode 100644 index 0000000000..f3635a3429 --- /dev/null +++ b/platform/tests/TESTS/mbed_micro/cpp/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-mbed-micro-cpp) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_micro/div/CMakeLists.txt b/platform/tests/TESTS/mbed_micro/div/CMakeLists.txt new file mode 100644 index 0000000000..0add5bc066 --- /dev/null +++ b/platform/tests/TESTS/mbed_micro/div/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-mbed-micro-div) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_micro/static_assert/CMakeLists.txt b/platform/tests/TESTS/mbed_micro/static_assert/CMakeLists.txt new file mode 100644 index 0000000000..7da08b8c29 --- /dev/null +++ b/platform/tests/TESTS/mbed_micro/static_assert/CMakeLists.txt @@ -0,0 +1,15 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-mbed-micro-static-assert) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +list(APPEND TEST_SOURCE_LIST test_c.c test_cpp.cpp) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET} TEST_SOURCES ${TEST_SOURCE_LIST}) diff --git a/platform/tests/TESTS/mbed_platform/CircularBuffer/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/CircularBuffer/CMakeLists.txt new file mode 100644 index 0000000000..297273f0de --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/CircularBuffer/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-circular-buffer) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/FileHandle/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/FileHandle/CMakeLists.txt new file mode 100644 index 0000000000..f5ab21b630 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/FileHandle/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-filehandle) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/SharedPtr/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/SharedPtr/CMakeLists.txt new file mode 100644 index 0000000000..39ba0319f6 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/SharedPtr/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-sharedptr) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/SingletonPtr/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/SingletonPtr/CMakeLists.txt new file mode 100644 index 0000000000..9a20d6d43e --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/SingletonPtr/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-singletonptr) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/Stream/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/Stream/CMakeLists.txt new file mode 100644 index 0000000000..0fde0adf56 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/Stream/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-stream) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/Transaction/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/Transaction/CMakeLists.txt new file mode 100644 index 0000000000..f78777cfb7 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/Transaction/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-transaction) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/atomic/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/atomic/CMakeLists.txt new file mode 100644 index 0000000000..8020cfba88 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/atomic/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-atomic) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/crash_reporting/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/crash_reporting/CMakeLists.txt new file mode 100644 index 0000000000..3a1e96fd42 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/crash_reporting/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-crash-reporting) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/critical_section/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/critical_section/CMakeLists.txt new file mode 100644 index 0000000000..2da02fb5fb --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/critical_section/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-critical-section) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/error_handling/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/error_handling/CMakeLists.txt new file mode 100644 index 0000000000..8d6317cdeb --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/error_handling/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-error-handling) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/minimal-printf/compliance/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/minimal-printf/compliance/CMakeLists.txt new file mode 100644 index 0000000000..a21f584418 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/minimal-printf/compliance/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-minimal-printf-compliance) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET} TEST_SOURCES mbed_printf.c) diff --git a/platform/tests/TESTS/mbed_platform/stats_cpu/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/stats_cpu/CMakeLists.txt new file mode 100644 index 0000000000..058476a342 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/stats_cpu/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-stats-cpu) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/stats_heap/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/stats_heap/CMakeLists.txt new file mode 100644 index 0000000000..45606084c5 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/stats_heap/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-stats-heap) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/stats_sys/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/stats_sys/CMakeLists.txt new file mode 100644 index 0000000000..670b5714d9 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/stats_sys/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-stats-sys) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/stats_thread/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/stats_thread/CMakeLists.txt new file mode 100644 index 0000000000..6d066d3242 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/stats_thread/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-stats-thread) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/system_reset/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/system_reset/CMakeLists.txt new file mode 100644 index 0000000000..815364a63e --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/system_reset/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-system-reset) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/wait_ns/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/wait_ns/CMakeLists.txt new file mode 100644 index 0000000000..d4969d0953 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/wait_ns/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-wait-ns) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/tools/cmake/README.md b/tools/cmake/README.md index dba3c26bb8..e027944b45 100644 --- a/tools/cmake/README.md +++ b/tools/cmake/README.md @@ -76,3 +76,24 @@ If you're running CMake directly, you may need to pass it in yourself as follows ``` cmake -S -B -DCMAKE_BUILD_TYPE=debug ``` + +## How to build a greentea test + +Install prerequisites suggested in the previous section and follow the below steps to build: +* Generate the `.mbedbuild/` configuration directory for the Mbed target you want to run the test on using [mbed-os-example-blinky](https://github.com/ARMmbed/mbed-os-example-blinky) +``` +$ mbedtools configure -t -m +``` +* Copy `.mbedbuild/` into the test suite directory. +* Set your current directory to the test suite directory +* Run the following command to build the test binary with the full profile + + ``` + touch mbed-os.lib && mkdir cmake_build && cd cmake_build && cmake .. -G Ninja && cmake --build . + ``` +* Run the following command to build the test binary with the baremetal profile + ``` + touch mbed-os.lib && mkdir cmake_build && cd cmake_build && cmake .. -G Ninja -DMBED_BAREMETAL_GREENTEA_TEST=ON && cmake --build . + ``` + +Note: These steps will change when `mbedtools` implements a sub-command to invoke Greentea tests diff --git a/tools/cmake/mbed_greentea.cmake b/tools/cmake/mbed_greentea.cmake new file mode 100644 index 0000000000..a477196e33 --- /dev/null +++ b/tools/cmake/mbed_greentea.cmake @@ -0,0 +1,78 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +set(MBED_CONFIG_PATH ${CMAKE_CURRENT_SOURCE_DIR}/.mbedbuild CACHE INTERNAL "") + +include(${MBED_PATH}/tools/cmake/app.cmake) + +# CMake Macro for generalizing CMake configuration across the greentea test suite with configurable parameters +# Macro args: +# TEST_NAME - Test suite name +# TEST_INCLUDE_DIRS - Test suite include directories for the test +# TEST_SOURCES - Test suite sources +# TEST_REQUIRED_LIBS - Test suite required libraries +# +# calling the macro: +# mbed_greentea_cmake_macro( +# TEST_NAME mbed-platform-system-reset +# TEST_INCLUDE_DIRS mbed_store +# TEST_SOURCES foo.cpp bar.cpp +# TEST_REQUIRED_LIBS mbed-kvstore mbed-xyz +# ) + +macro(mbed_greentea_cmake_macro) + set(options) + set(singleValueArgs TEST_NAME) + set(multipleValueArgs + TEST_INCLUDE_DIRS + TEST_SOURCES + TEST_REQUIRED_LIBS + ) + cmake_parse_arguments(MBED_GREENTEA + "${options}" + "${singleValueArgs}" + "${multipleValueArgs}" + ${ARGN} + ) + + set(TEST_NAME ${MBED_GREENTEA_TEST_NAME}) + + add_subdirectory(${MBED_PATH} build) + + add_executable(${TEST_NAME}) + + mbed_configure_app_target(${TEST_NAME}) + + mbed_set_mbed_target_linker_script(${TEST_NAME}) + + target_include_directories(${TEST_NAME} + PRIVATE + . + ${MBED_GREENTEA_TEST_INCLUDE_DIRS} + ) + + target_sources(${TEST_NAME} + PRIVATE + main.cpp + ${MBED_GREENTEA_TEST_SOURCES} + ) + + if(MBED_BAREMETAL_GREENTEA_TEST) + list(APPEND MBED_GREENTEA_TEST_REQUIRED_LIBS mbed-baremetal mbed-greentea) + else() + list(APPEND MBED_GREENTEA_TEST_REQUIRED_LIBS mbed-os mbed-greentea) + endif() + + target_link_libraries(${TEST_NAME} + PRIVATE + ${MBED_GREENTEA_TEST_REQUIRED_LIBS} + ) + + mbed_set_post_build(${TEST_NAME}) + + option(VERBOSE_BUILD "Have a verbose build process") + if(VERBOSE_BUILD) + set(CMAKE_VERBOSE_MAKEFILE ON) + endif() + +endmacro()