1From 009b346144f4efd6c7f6ca0ceaead89e7333bba7 Mon Sep 17 00:00:00 2001 2From: Gyorgy Szing <Gyorgy.Szing@arm.com> 3Date: Tue, 28 Mar 2023 18:20:44 +0200 4Subject: [PATCH] Add capability to selectively build libraries 5 6Introduce the BUILD_X509 and BUILD_TLS options which allows disabling 7or enabling building of these libraries. 8 9Uptream-status: Invalid [other] 10 - This is a Trusted Services specific change, there is no intention 11 to upstream this change. 12 13Signed-off-by: Gyorgy Szing <Gyorgy.Szing@arm.com> 14Signed-off-by: Imre Kis <imre.kis@arm.com> 15--- 16 library/CMakeLists.txt | 77 +++++++++++++++++++++++++++++++----------- 17 1 file changed, 57 insertions(+), 20 deletions(-) 18 19diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt 20index e6705de55..3244bd086 100644 21--- a/library/CMakeLists.txt 22+++ b/library/CMakeLists.txt 23@@ -2,6 +2,8 @@ option(USE_STATIC_MBEDTLS_LIBRARY "Build Mbed TLS static library." ON) 24 option(USE_SHARED_MBEDTLS_LIBRARY "Build Mbed TLS shared library." OFF) 25 option(LINK_WITH_PTHREAD "Explicitly link Mbed TLS library to pthread." OFF) 26 option(LINK_WITH_TRUSTED_STORAGE "Explicitly link Mbed TLS library to trusted_storage." OFF) 27+option(BUIILD_X509 "Build x509 library too." ON) 28+option(BUILD_TLS "Build TLS library too" OFF) 29 30 # Set the project root directory if it's not already defined, as may happen if 31 # the library folder is included directly by a parent project, without 32@@ -257,7 +259,15 @@ if (USE_STATIC_MBEDTLS_LIBRARY) 33 set(mbedcrypto_static_target ${mbedcrypto_target}) 34 endif() 35 36-set(target_libraries ${mbedcrypto_target} ${mbedx509_target} ${mbedtls_target}) 37+set(target_libraries ${mbedcrypto_target}) 38+ 39+if (BUIILD_X509) 40+ list(APPEND target_libraries ${mbedx509_target}) 41+endif() 42+ 43+if (BUILD_TLS) 44+ list(APPEND target_libraries ${mbedtls_target}) 45+endif() 46 47 if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY) 48 string(APPEND mbedtls_static_target "_static") 49@@ -265,9 +275,15 @@ if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY) 50 string(APPEND mbedcrypto_static_target "_static") 51 52 list(APPEND target_libraries 53- ${mbedcrypto_static_target} 54- ${mbedx509_static_target} 55- ${mbedtls_static_target}) 56+ ${mbedcrypto_static_target}) 57+ 58+ if (BUIILD_X509 OR BUIILD_TLS) 59+ list(APPEND target_libraries ${mbedx509_static_target}) 60+ endif() 61+ 62+ if (BUILD_TLS) 63+ list(APPEND target_libraries ${mbedtls_static_target}) 64+ endif() 65 endif() 66 67 set(p256m_target "${MBEDTLS_TARGET_PREFIX}p256m") 68@@ -286,13 +302,17 @@ if(USE_STATIC_MBEDTLS_LIBRARY) 69 target_link_libraries(${mbedcrypto_static_target} PUBLIC ${p256m_target}) 70 endif() 71 72- add_library(${mbedx509_static_target} STATIC ${src_x509}) 73- set_target_properties(${mbedx509_static_target} PROPERTIES OUTPUT_NAME mbedx509) 74- target_link_libraries(${mbedx509_static_target} PUBLIC ${libs} ${mbedcrypto_static_target}) 75+ if (BUIILD_X509 OR BUIILD_TLS) 76+ add_library(${mbedx509_static_target} STATIC ${src_x509}) 77+ set_target_properties(${mbedx509_static_target} PROPERTIES OUTPUT_NAME mbedx509) 78+ target_link_libraries(${mbedx509_static_target} PUBLIC ${libs} ${mbedcrypto_static_target}) 79+ endif() 80 81- add_library(${mbedtls_static_target} STATIC ${src_tls}) 82- set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls) 83- target_link_libraries(${mbedtls_static_target} PUBLIC ${libs} ${mbedx509_static_target}) 84+ if (BUILD_TLS) 85+ add_library(${mbedtls_static_target} STATIC ${src_tls}) 86+ set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls) 87+ target_link_libraries(${mbedtls_static_target} PUBLIC ${libs} ${mbedx509_static_target}) 88+ endif() 89 endif(USE_STATIC_MBEDTLS_LIBRARY) 90 91 if(USE_SHARED_MBEDTLS_LIBRARY) 92@@ -308,14 +328,16 @@ if(USE_SHARED_MBEDTLS_LIBRARY) 93 if(TARGET ${p256m_target}) 94 target_link_libraries(${mbedcrypto_target} PUBLIC ${p256m_target}) 95 endif() 96- 97- add_library(${mbedx509_target} SHARED ${src_x509}) 98- set_target_properties(${mbedx509_target} PROPERTIES VERSION 3.6.0 SOVERSION 7) 99- target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${mbedcrypto_target}) 100- 101- add_library(${mbedtls_target} SHARED ${src_tls}) 102- set_target_properties(${mbedtls_target} PROPERTIES VERSION 3.6.0 SOVERSION 21) 103- target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target}) 104+ if (BUIILD_X509 OR BUILD_TLS) 105+ add_library(${mbedx509_target} SHARED ${src_x509}) 106+ set_target_properties(${mbedx509_target} PROPERTIES VERSION 3.6.0 SOVERSION 7) 107+ target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${mbedcrypto_target}) 108+ endif() 109+ if (BUILD_TLS) 110+ add_library(${mbedtls_target} SHARED ${src_tls}) 111+ set_target_properties(${mbedtls_target} PROPERTIES VERSION 3.6.0 SOVERSION 21) 112+ target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target}) 113+ endif() 114 endif(USE_SHARED_MBEDTLS_LIBRARY) 115 116 foreach(target IN LISTS target_libraries) 117@@ -351,7 +373,22 @@ endforeach(target) 118 119 set(lib_target "${MBEDTLS_TARGET_PREFIX}lib") 120 121-add_custom_target(${lib_target} DEPENDS ${mbedcrypto_target} ${mbedx509_target} ${mbedtls_target}) 122+add_custom_target(${lib_target} DEPENDS ${mbedcrypto_target}) 123+ 124+if(BUIILD_X509 OR BUIILD_TLS) 125+ add_dependencies(${lib_target} ${mbedx509_target}) 126+endif() 127+ 128+if(BUIILD_TLS) 129+ add_dependencies(${lib_target} ${mbedtls_target}) 130+endif() 131+ 132 if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY) 133- add_dependencies(${lib_target} ${mbedcrypto_static_target} ${mbedx509_static_target} ${mbedtls_static_target}) 134+ add_dependencies(${lib_target} ${mbedcrypto_static_target}) 135+ if(BUIILD_X509 OR BUIILD_TLS) 136+ add_dependencies(${lib_target} ${mbedx509_static_target}) 137+ endif() 138+ if(BUIILD_TLS) 139+ add_dependencies(${lib_target} ${mbedtls_static_target}) 140+ endif() 141 endif() 142-- 1432.25.1 144 145