diff --git a/CMakeLists.txt b/CMakeLists.txt index daeab1d..22a5b80 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -276,8 +276,7 @@ mbed_create_distro(mbed-os mbed-core-flags mbed-core-sources mbed-rtos-flags mbed-rtos-sources) # Now make the Mbed OS code depend on the target, ensuring everything has access to the uC's flags and objects. - target_link_libraries(mbed-baremetal PUBLIC ${MBED_TARGET_CMAKE_NAME}-lib) - target_link_libraries(mbed-os PUBLIC ${MBED_TARGET_CMAKE_NAME}-lib) + target_link_libraries(mbed-core-flags INTERFACE ${MBED_TARGET_CMAKE_NAME}-lib) endif() # Ninja requires to be forced for response files diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/CMakeLists.txt b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/CMakeLists.txt index b829ac4..df61be1 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/CMakeLists.txt +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/CMakeLists.txt @@ -22,6 +22,4 @@ src/psa_hrng.c ) -# Make sure that mbed-psa can include headers from Mbed OS and the target -# Must be private so that we do not commit to a baremetal or OS choice -target_link_libraries(mbed-psa PRIVATE mbed-core-flags ${MBED_TARGET_CMAKE_NAME}-lib) \ No newline at end of file +target_link_libraries(mbed-psa PRIVATE mbed-core-flags) \ No newline at end of file diff --git a/tools/cmake/app.cmake b/tools/cmake/app.cmake index 3b439e9..c0c57b8 100644 --- a/tools/cmake/app.cmake +++ b/tools/cmake/app.cmake @@ -36,23 +36,16 @@ find_package(Python3 COMPONENTS Interpreter) include(CheckPythonPackage) -# Check python packages from requirements.txt -file(STRINGS ${CMAKE_CURRENT_LIST_DIR}/../requirements.txt PYTHON_REQUIREMENTS) -foreach(REQUIREMENT ${PYTHON_REQUIREMENTS}) - # Look for a string from the start of each line that does not contain "<", ">", "=", or " ". - if(REQUIREMENT MATCHES "^([^<>= ]+)") - set(PACKAGE_NAME ${CMAKE_MATCH_1}) - string(TOUPPER ${PACKAGE_NAME} PACKAGE_NAME_UCASE) # Ucase name needed for CMake variable - string(TOLOWER ${PACKAGE_NAME} PACKAGE_NAME_LCASE) # Lcase name needed for import statement +# Check python packages +set(PYTHON_PACKAGES_TO_CHECK prettytable future jinja2 mbed_tools) +foreach(PACKAGE_NAME ${PYTHON_PACKAGES_TO_CHECK}) + string(TOUPPER ${PACKAGE_NAME} PACKAGE_NAME_UCASE) # Ucase name needed for CMake variable + string(TOLOWER ${PACKAGE_NAME} PACKAGE_NAME_LCASE) # Lcase name needed for import statement - check_python_package(${PACKAGE_NAME_LCASE} HAVE_PYTHON_${PACKAGE_NAME_UCASE}) - if(NOT HAVE_PYTHON_${PACKAGE_NAME_UCASE}) - message(WARNING "Missing Python dependency ${PACKAGE_NAME}") - endif() - else() - message(FATAL_ERROR "Cannot parse line \"${REQUIREMENT}\" in requirements.txt") + check_python_package(${PACKAGE_NAME_LCASE} HAVE_PYTHON_${PACKAGE_NAME_UCASE}) + if(NOT HAVE_PYTHON_${PACKAGE_NAME_UCASE}) + message(WARNING "Missing Python dependency ${PACKAGE_NAME}") endif() - endforeach() # Check deps for memap diff --git a/tools/cmake/toolchains/GCC_ARM.cmake b/tools/cmake/toolchains/GCC_ARM.cmake index c80f1bb..5d74715 100644 --- a/tools/cmake/toolchains/GCC_ARM.cmake +++ b/tools/cmake/toolchains/GCC_ARM.cmake @@ -19,6 +19,7 @@ "-Wl,--end-group" "-specs=nosys.specs" "-Wl,--cref" + "-Wl,--allow-multiple-definition" ) # Add the -Wl,--whole-archive flag as a hack to fix resolution of weak symbols between .a libraries.