Skip to content

Commit

Permalink
Carry MBedTLS patch that works around CMake 3.18.2 bug. (#38933)
Browse files Browse the repository at this point in the history
MBedTLS fails to build with CMake 3.18.2, due to a bug in
CMake 3.18.2 causing failure to find python3. For more information,
please see Mbed-TLS/mbedtls#3690 and
https://gitlab.kitware.com/cmake/cmake/-/issues/21204.

This pull request applies the MBedTLS patch that works around this
issue from Mbed-TLS/mbedtls#3691, which
has been merged into MBedTLS's development branch but not
yet into a tagged release. The latest minor release as of that
merge was 2.25.0, so it's probably safe to conjecture that this
patch will be live as of minor release 2.26.0; it's also
possible that this patch will land on patch releases for
2.24.0 and 2.25.0, but this author doesn't know.
  • Loading branch information
Sacha0 authored Dec 21, 2020
1 parent 684d5fc commit c3d3c6a
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
11 changes: 11 additions & 0 deletions deps/mbedtls.mk
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,17 @@ $(SRCCACHE)/$(MBEDTLS_SRC)/source-extracted: $(SRCCACHE)/$(MBEDTLS_SRC).tar.gz
checksum-mbedtls: $(SRCCACHE)/$(MBEDTLS_SRC).tar.gz
$(JLCHECKSUM) $<

$(SRCCACHE)/$(MBEDTLS_SRC)/mbedtls-cmake-findpy.patch-applied: $(SRCCACHE)/$(MBEDTLS_SRC)/source-extracted
# Apply workaround for CMake 3.18.2 bug (https://github.com/ARMmbed/mbedtls/pull/3691).
# This patch merged upstream shortly after MBedTLS's 2.25.0 minor release, so chances
# are it will be included at least in their next minor release (2.26.0?).
cd $(SRCCACHE)/$(MBEDTLS_SRC) && \
patch -p1 -f < $(SRCDIR)/patches/mbedtls-cmake-findpy.patch
echo 1 > @$

$(BUILDDIR)/$(MBEDTLS_SRC)/build-configured: \
$(SRCCACHE)/$(MBEDTLS_SRC)/mbedtls-cmake-findpy.patch-applied

$(BUILDDIR)/$(MBEDTLS_SRC)/build-configured: $(SRCCACHE)/$(MBEDTLS_SRC)/source-extracted
mkdir -p $(dir $@)
cd $(dir $@) && \
Expand Down
23 changes: 23 additions & 0 deletions deps/patches/mbedtls-cmake-findpy.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8833246..2ed55ed 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,6 +17,18 @@
#

cmake_minimum_required(VERSION 2.6)
+
+# https://cmake.org/cmake/help/latest/policy/CMP0011.html
+# Setting this policy is required in CMake >= 3.18.0, otherwise a warning is generated. The OLD
+# policy setting is deprecated, and will be removed in future versions.
+cmake_policy(SET CMP0011 NEW)
+# https://cmake.org/cmake/help/latest/policy/CMP0012.html
+# Setting the CMP0012 policy to NEW is required for FindPython3 to work with CMake 3.18.2
+# (there is a bug in this particular version), otherwise, setting the CMP0012 policy is required
+# for CMake versions >= 3.18.3 otherwise a deprecated warning is generated. The OLD policy setting
+# is deprecated and will be removed in future versions.
+cmake_policy(SET CMP0012 NEW)
+
if(TEST_CPP)
project("mbed TLS" C CXX)
else()

0 comments on commit c3d3c6a

Please sign in to comment.