openthread/ot-rtos

mbedcrypto errors when building CLI Test Application for nRF52840

Jakebluhm opened this issue · 0 comments

Following the steps to build the CLI test application for Nordics nRF52840 I get the following error when running Cmake:

CMake Error at third_party/mbedtls/CMakeLists.txt:58 (target_link_libraries):
The plain signature for target_link_libraries has already been used with
the target "mbedcrypto". All uses of target_link_libraries with a target
must be either all-keyword or all-plain.

To Reproduce
Running on Windows 10

  1. git clone https://github.com/openthread/ot-rtos
  2. git submodule update --init
  3. mkdir build && cd build
  4. cmake .. -DCMAKE_CXX_COMPILER="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.33.31629/bin/Hostx64/x64/cl.exe" -DCMAKE_C_COMPILER="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.33.31629/bin/Hostx64/x64/cl.exe" -DCMAKE_TOOLCHAIN_FILE=../cmake/arm-none-eabi.cmake -DPLATFORM_NAME=nrf52
    (Note: I am using MSVC Compiler - cl.exe that comes with Visual Studio 2022)

Running this command:

cmake .. -DCMAKE_CXX_COMPILER="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.33.31629/bin/Hostx64/x64/cl.exe" -DCMAKE_C_COMPILER="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.33.31629/bin/Hostx64/x64/cl.exe" -DCMAKE_TOOLCHAIN_FILE=../cmake/arm-none-eabi.cmake -DPLATFORM_NAME=nrf52

Gives these warnings/errors:

CMake Warning:
Ignoring extra path from command line:

"../cmake/arm-none-eabi.cmake"

-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19044.
PLATFORM_NAME is nrf52
OT_PLATFORM_NAME is nrf52840
CMake Warning (dev) at C:/Program Files/CMake/share/cmake-3.24/Modules/ExternalProject.cmake:2251 (message):
Policy CMP0114 is not set: ExternalProject step targets fully adopt their
steps. Run "cmake --help-policy CMP0114" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.

ExternalProject target 'ot' would depend on the targets for step(s)
'configure' under policy CMP0114, but this is being left out for
compatibility since the policy is not set.
Call Stack (most recent call first):
third_party/openthread/CMakeLists.txt:96 (ExternalProject_Add_StepTargets)
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Deprecation Warning at third_party/mbedtls/repo/CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.

Update the VERSION argument value or use a ... suffix to tell
CMake that the project does not need compatibility with older versions.

CMake Error at third_party/mbedtls/CMakeLists.txt:58 (target_link_libraries):
The plain signature for target_link_libraries has already been used with
the target "mbedcrypto". All uses of target_link_libraries with a target
must be either all-keyword or all-plain.

The uses of the plain signature are here:

  • third_party/mbedtls/repo/library/CMakeLists.txt:145 (target_link_libraries)

-- Configuring incomplete, errors occurred!`