diff --git a/.github/workflows/greentea_cmake.yml b/.github/workflows/greentea_cmake.yml index 005e5ac441..0f72c95f4b 100644 --- a/.github/workflows/greentea_cmake.yml +++ b/.github/workflows/greentea_cmake.yml @@ -18,7 +18,7 @@ jobs: - name: Build NUCLEO_G031K8 with baremetal profile run: | rm -rf __build - cmake -S . -B __build -GNinja -DCMAKE_CTEST_ARGUMENTS="--output-on-failure;-V" -DMBED_BUILD_GREENTEA_TESTS=ON -DMBED_GREENTEA_TEST_BAREMETAL=ON -DMBED_GREENTEA_SERIAL_PORT=/dev/ttyDUMMY -DMBED_TARGET=NUCLEO_G031K8 -DMBED_APP_JSON=TESTS/configs/baremetal.json + cmake -S . -B __build -GNinja -DCMAKE_CTEST_ARGUMENTS="--output-on-failure;-V" -DMBED_BUILD_GREENTEA_TESTS=ON -DMBED_GREENTEA_TEST_BAREMETAL=ON -DMBED_GREENTEA_SERIAL_PORT=/dev/ttyDUMMY -DMBED_TARGET=NUCLEO_G031K8 -DMBED_APP_JSON_PATH=TESTS/configs/baremetal.json cmake --build __build - name: Build ARM_MUSCA_S1 with full profile diff --git a/tools/cmake/mbed_generate_configuration.cmake b/tools/cmake/mbed_generate_configuration.cmake index f3267eef64..6a235d1e8c 100644 --- a/tools/cmake/mbed_generate_configuration.cmake +++ b/tools/cmake/mbed_generate_configuration.cmake @@ -35,11 +35,12 @@ get_filename_component(CUSTOM_TARGETS_JSON_PATH "${CUSTOM_TARGETS_JSON_PATH}" AB # Check if mbed_app.json was modified # Note: if the path is an empty string, get_filename_component(ABSOLUTE) will convert it to a directory, # so we have to verify that the path we have is a file, not a dir. -if(NOT EXISTS "${MBED_APP_JSON_PATH}" OR IS_DIRECTORY "${MBED_APP_JSON_PATH}") - message(FATAL_ERROR "Failed to find mbed_app.json at ${MBED_APP_JSON_PATH}") +if(EXISTS "${MBED_APP_JSON_PATH}" AND (NOT IS_DIRECTORY "${MBED_APP_JSON_PATH}")) + file(TIMESTAMP "${MBED_APP_JSON_PATH}" MBED_APP_JSON_TIMESTAMP "%s" UTC) +else() + set(MBED_APP_JSON_TIMESTAMP "") endif() -file(TIMESTAMP "${MBED_APP_JSON_PATH}" MBED_APP_JSON_TIMESTAMP "%s" UTC) if(NOT MBED_NEED_TO_RECONFIGURE) if(NOT "${MBED_INTERNAL_LAST_MBED_APP_JSON_TIMESTAMP}" STREQUAL "${MBED_APP_JSON_TIMESTAMP}") message(STATUS "Mbed: mbed_app.json modified, regenerating configs...") @@ -76,6 +77,12 @@ endif() if(MBED_NEED_TO_RECONFIGURE) # Generate mbed_config.cmake for this target + if(EXISTS "${MBED_APP_JSON_PATH}" AND (NOT IS_DIRECTORY "${MBED_APP_JSON_PATH}")) + set(APP_CONFIG_ARGUMENT --app-config "${MBED_APP_JSON_PATH}") + else() + set(APP_CONFIG_ARGUMENT "") + endif() + if(EXISTS "${CUSTOM_TARGETS_JSON_PATH}" AND (NOT IS_DIRECTORY "${CUSTOM_TARGETS_JSON_PATH}")) set(CUSTOM_TARGET_ARGUMENT --custom-targets-json "${CUSTOM_TARGETS_JSON_PATH}") else() @@ -92,7 +99,7 @@ if(MBED_NEED_TO_RECONFIGURE) -m "${MBED_TARGET}" --mbed-os-path ${CMAKE_CURRENT_LIST_DIR}/../.. --output-dir ${CMAKE_CURRENT_BINARY_DIR} - --app-config "${MBED_APP_JSON_PATH}" + ${APP_CONFIG_ARGUMENT} ${CUSTOM_TARGET_ARGUMENT}) execute_process( diff --git a/tools/cmake/tests/mbed_test_mode/CMakeLists.txt b/tools/cmake/tests/mbed_test_mode/CMakeLists.txt index d40c51399d..073d18ddcf 100644 --- a/tools/cmake/tests/mbed_test_mode/CMakeLists.txt +++ b/tools/cmake/tests/mbed_test_mode/CMakeLists.txt @@ -4,7 +4,6 @@ cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../.. CACHE INTERNAL "") -set(MBED_CONFIG_PATH ${CMAKE_CURRENT_BINARY_DIR} CACHE STATIC "") include(${MBED_PATH}/tools/cmake/app.cmake) diff --git a/tools/cmake/tests/multiple_executables/CMakeLists.txt b/tools/cmake/tests/multiple_executables/CMakeLists.txt index 0070dfcf22..fd4d624618 100644 --- a/tools/cmake/tests/multiple_executables/CMakeLists.txt +++ b/tools/cmake/tests/multiple_executables/CMakeLists.txt @@ -4,7 +4,6 @@ cmake_minimum_required(VERSION 3.19.0) set(MBED_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../..") -set(MBED_CONFIG_PATH "${CMAKE_CURRENT_BINARY_DIR}") include("${MBED_PATH}/tools/cmake/app.cmake")