Build: Fixed compile error for the mbedtls-2.7.9 on Cygwin platform
When building Mbed TLS > 2.7 on Cygwin as part of the TF-M build,
related to a failure in the creation of a symbolic link.
Changes the build system to build Mbed TLS with CMAKE_HOST_UNIX = true.
More see Mbed TLS issue https://github.com/ARMmbed/mbedtls/issues/1496
Change-Id: I92c25fca7220e2b279e1c07b6c3f29f4161546e2
Co-Authored-By: Gyorgy Szing <Gyorgy.Szing@arm.com>
Signed-off-by: Qixiang Xu <qixiang.xu@arm.com>
diff --git a/BuildMbedtls.cmake b/BuildMbedtls.cmake
index 1807d80..afb5307 100644
--- a/BuildMbedtls.cmake
+++ b/BuildMbedtls.cmake
@@ -1,5 +1,5 @@
#-------------------------------------------------------------------------------
-# Copyright (c) 2017-2018, Arm Limited. All rights reserved.
+# Copyright (c) 2017-2019, Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
@@ -47,6 +47,15 @@
string(APPEND MBEDTLS_C_FLAGS ${MBEDTLS_PREINCLUDE_C_FLAGS})
endif()
+function(get_mbedtls_version)
+ file(READ "${MBEDTLS_SOURCE_DIR}/include/mbedtls/version.h" MBEDTLS_VER_FILE)
+ string(REGEX REPLACE ".*#define[ ]+MBEDTLS_VERSION_STRING[^\"]+\"+([0-9.]+)\".*" "\\1"
+ _MBEDTLS_VER ${MBEDTLS_VER_FILE})
+ set(MBEDTLS_VERSION ${_MBEDTLS_VER} PARENT_SCOPE)
+endfunction()
+
+get_mbedtls_version()
+
string(APPEND MBEDTLS_C_FLAGS ${CMAKE_C_FLAGS})
# Workaround Mbed TLS issue https://github.com/ARMmbed/mbedtls/issues/1077
@@ -71,6 +80,10 @@
CMAKE_ARGS -DENABLE_TESTING=OFF -DENABLE_PROGRAMS=OFF
#Enforce our build system's settings.
CMAKE_ARGS -DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH} -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
+ #Workaround for MbedTLS issue https://github.com/ARMmbed/mbedtls/issues/1496
+ if(MBEDTLS_VERSION VERSION_GREATER "2.7.0")
+ CMAKE_ARGS -DCMAKE_HOST_UNIX:bool=true
+ endif()
#Inherit the build setting of this project
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${MBEDTLS_BUILD_TYPE}
#C compiler settings