Build: Convert lib dir to modern cmake
Rewrite cmake files inside the lib directory. Adds subdirectories for
external dependencies that are now fetched automatically by cmake. Add
patches for external repos that require them.
WARNING: This change will not build in isolation, it requires _all_
other cmake changes to successfully build. It is split out only for
clarity of changes.
Change-Id: I545fd9278fbccb56c4216ffd5a390e35787dc41a
Signed-off-by: Raef Coles <raef.coles@arm.com>
diff --git a/lib/ext/mbedcrypto/CMakeLists.txt b/lib/ext/mbedcrypto/CMakeLists.txt
new file mode 100644
index 0000000..828a188
--- /dev/null
+++ b/lib/ext/mbedcrypto/CMakeLists.txt
@@ -0,0 +1,44 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2020, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+include(FetchContent)
+set(FETCHCONTENT_QUIET FALSE)
+
+# Set to not download submodules if that option is available
+if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0")
+ cmake_policy(SET CMP0097 NEW)
+endif()
+
+if ("${MBEDCRYPTO_PATH}" STREQUAL "DOWNLOAD")
+ find_package(Git)
+ file(GLOB PATCH_FILES *.patch)
+
+ if (PATCH_FILES)
+ FetchContent_Declare(mbedcrypto
+ GIT_REPOSITORY https://github.com/ARMmbed/mbedtls.git
+ GIT_TAG mbedtls-${MBEDCRYPTO_VERSION}
+ GIT_SHALLOW TRUE
+ GIT_PROGRESS TRUE
+ GIT_SUBMODULES ""
+ PATCH_COMMAND ${GIT_EXECUTABLE} apply ${PATCH_FILES}
+ )
+ else()
+ FetchContent_Declare(mbedcrypto
+ GIT_REPOSITORY https://github.com/ARMmbed/mbedtls.git
+ GIT_TAG mbedtls-${MBEDCRYPTO_VERSION}
+ GIT_SHALLOW TRUE
+ GIT_PROGRESS TRUE
+ GIT_SUBMODULES ""
+ )
+ endif()
+
+ FetchContent_GetProperties(mbedcrypto)
+ if(NOT mbedcrypto_POPULATED)
+ FetchContent_Populate(mbedcrypto)
+ set(MBEDCRYPTO_PATH ${mbedcrypto_SOURCE_DIR} CACHE PATH "Path to mbed-crypto (or DOWNLOAD to get automatically" FORCE)
+ endif()
+endif()