The mbed-lorawan library is converted from an INTERFACE to an OBJECT.
However, the board specific LoRaWAN device drivers are now individual
INTERFACE CMake library targets that link with mbed-lorawan if
they are included in the build.
The mbed-nfc library is converted from an INTERFACE to an OBJECT.
However, the board specific NFC device drivers are now individual
INTERFACE CMake library targets that link with mbed-nfc if
they are included in the build.
Libraries require mbedtls drivers paths to get mbedtls configuration.
To get driver to mbedtls, we need to link privately, not exposing object files to the consumers of mbed-tls. And provide publicly headers, as drivers are part of mbedtls, they must be also available.
This is how application gets in mbedtls driver header:
```
In file included from ../../../../mbed-os/connectivity/mbedtls/./include/mbedtls/config.h:31,
from ../../../../mbed-os/connectivity/mbedtls/./include/mbedtls/platform.h:37,
from ../../../../mbed-os/connectivity/netsocket/./include/netsocket/TLSSocketWrapper.h:28,
from ../../../../mbed-os/connectivity/netsocket/./include/netsocket/nsapi.h:45,
from ../../../../mbed-os/mbed.h:27,
from ../../../../source/main.cpp:17:
../../../../mbed-os/connectivity/mbedtls/./platform/inc/platform_mbed.h:47:10: fatal error: mbedtls_device.h: No such file or directory
47 | #include "mbedtls_device.h"
```
If it is an OBJECT it would need mbed-ble and mbed-core. As we want to link these drivers to
mbed-ble to be available for an app (the only required step for an app is to link to mbed-ble and
we figure out internally what is required for a specific board - using config library add/remove).
This can be refactored once we get CMake config story to replace our config (or at least targets.json information like add/remove libraries).
This needs much more time to be done properly. Use what we have currently to be able to
use mbed-ble as object library.
Once we get add/remove libraries from targets, fix should be easier as we already have
own CMake targets per driver, just connect them together with mbed-ble on request.
mbed-ble to be OBJECT library.
Cordio is interface as it is part of mbed-ble but as an external component that we fetch from upstream cordio repository.
Mbed TLS 2.24.0 has added a new function mbedtls_ecp_write_key()
which is the reverse of the existing mbedtls_ecp_read_key(). This
function should be platform agnostic, but needs to be copied into
Cypress's hardware-accelerated ECP driver as part of the updated
API.
- Make packet trace optional, can be enabled by enabling macro
STM32xx_DEEP_TRACE
- Shorten traces during driver initialisation to avoid problems with
driver startup when soft reset is used.
Refactor all Cypress targets to be CMake buildsystem targets. This removes
the need for checking MBED_TARGET_LABELS repeatedly and allows us to be
more flexible in the way we include MBED_TARGET source in the build.
A side effect of this is it will allow us to support custom targets
without breaking the build for 'standard' targets, as we use CMake's
standard mechanism for adding build rules to the build system, rather
than implementing our own layer of logic to exclude files not needed for
the target being built. Using this approach, if an MBED_TARGET is not
linked to using target_link_libraries its source files will not be
added to the build. This means custom target source can be added to the
user's application CMakeLists.txt without polluting the build system
when trying to compile for a standard MBED_TARGET.