mirror of https://github.com/ARMmbed/mbed-os.git
Typically when adding a unit test directory to a CMake project a check will be used to ensure the subdirectory is added only if the following are true: * The BUILD_TESTING option is set to ON. * The current CMake project is the top-level project. The reason being, if a downstream project includes our project they generally don't want to build our unit tests. In mbed-os, we do correctly specify the above condition before adding the central UNITTEST subdirectory, which fetches googletest and adds the "stub" libraries the unit tests depend on. However, we only check if CMAKE_CROSSCOMPILING is OFF (or undefined) before actually adding the unit tests. This mismatched logic would lead to unexpected build failures in various scenarios. One likely case could be: a downstream project including mbed-os happens to set CMAKE_CROSSCOMPILING to OFF/undefined for any reason (possibly to build its own unit tests). mbed-os would go ahead and attempt to build its tests without fetching googletest or adding the required stub targets. To fix the issue replace the check for CMAKE_CROSSCOMPILING in the unit tests with the same BUILD_TESTING idiom we use for adding the central UNITTESTS subdirectory. |
||
---|---|---|
.. | ||
COMPONENT_DATAFLASH | ||
COMPONENT_FLASHIAP | ||
COMPONENT_I2CEE | ||
COMPONENT_OSPIF | ||
COMPONENT_QSPIF | ||
COMPONENT_SD | ||
COMPONENT_SPIF | ||
include/blockdevice | ||
source | ||
tests | ||
CMakeLists.txt | ||
mbed_lib.json |