blob: 2f31613a5d3017ffe04fc1ddbfb64688aacc659b [file] [log] [blame]
Imre Kis8a86a002024-01-22 15:43:11 +01001From ee65a0f8164db4531d35aa40db7b2f066cd333d7 Mon Sep 17 00:00:00 2001
Gyorgy Szing9c8daca2023-03-28 17:09:33 +02002From: Gyorgy Szing <Gyorgy.Szing@arm.com>
3Date: Tue, 28 Mar 2023 18:20:44 +0200
Julian Hall29620bf2022-06-09 10:26:37 +01004Subject: [PATCH 1/1] Add capability to selectively build libraries
Gyorgy Szing9c8daca2023-03-28 17:09:33 +02005
Julian Hall29620bf2022-06-09 10:26:37 +01006Introduce the BUILD_X509 and BUILD_TLS options which allows disabling
7or enabling building of these libraries.
Gyorgy Szing9c8daca2023-03-28 17:09:33 +02008
Julian Hall29620bf2022-06-09 10:26:37 +01009Uptream-status: Invalid [other]
10 - This is a Trusted Services specific change, there is no intention
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020011 to upstream this change.
12
13Signed-off-by: Gyorgy Szing <Gyorgy.Szing@arm.com>
Imre Kis8a86a002024-01-22 15:43:11 +010014Signed-off-by: Imre Kis <imre.kis@arm.com>
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020015---
Julian Hall29620bf2022-06-09 10:26:37 +010016 library/CMakeLists.txt | 77 +++++++++++++++++++++++++++++++-----------
17 1 file changed, 57 insertions(+), 20 deletions(-)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020018
19diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt
Imre Kis8a86a002024-01-22 15:43:11 +010020index eeda06aee..d79c657fd 100644
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020021--- a/library/CMakeLists.txt
22+++ b/library/CMakeLists.txt
Imre Kis8a86a002024-01-22 15:43:11 +010023@@ -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)
Julian Hall29620bf2022-06-09 10:26:37 +010027+option(BUIILD_X509 "Build x509 library too." ON)
28+option(BUILD_TLS "Build TLS library too" OFF)
29
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020030 # 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
Imre Kis8a86a002024-01-22 15:43:11 +010032@@ -255,7 +257,15 @@ if (USE_STATIC_MBEDTLS_LIBRARY)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020033 set(mbedcrypto_static_target ${mbedcrypto_target})
34 endif()
Julian Hall29620bf2022-06-09 10:26:37 +010035
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020036-set(target_libraries ${mbedcrypto_target} ${mbedx509_target} ${mbedtls_target})
37+set(target_libraries ${mbedcrypto_target})
38+
Julian Hall29620bf2022-06-09 10:26:37 +010039+if (BUIILD_X509)
40+ list(APPEND target_libraries ${mbedx509_target})
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020041+endif()
Julian Hall29620bf2022-06-09 10:26:37 +010042+
43+if (BUILD_TLS)
44+ list(APPEND target_libraries ${mbedtls_target})
45+endif()
46
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020047 if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
48 string(APPEND mbedtls_static_target "_static")
Imre Kis8a86a002024-01-22 15:43:11 +010049@@ -263,9 +273,15 @@ if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020050 string(APPEND mbedcrypto_static_target "_static")
Julian Hall29620bf2022-06-09 10:26:37 +010051
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020052 list(APPEND target_libraries
53- ${mbedcrypto_static_target}
Balint Dobszay21ce26e2023-05-19 10:12:49 +020054- ${mbedx509_static_target}
55- ${mbedtls_static_target})
56+ ${mbedcrypto_static_target})
Imre Kis8a86a002024-01-22 15:43:11 +010057+
Julian Hall29620bf2022-06-09 10:26:37 +010058+ if (BUIILD_X509 OR BUIILD_TLS)
59+ list(APPEND target_libraries ${mbedx509_static_target})
60+ endif()
Balint Dobszay21ce26e2023-05-19 10:12:49 +020061+
Julian Hall29620bf2022-06-09 10:26:37 +010062+ if (BUILD_TLS)
63+ list(APPEND target_libraries ${mbedtls_static_target})
Balint Dobszay21ce26e2023-05-19 10:12:49 +020064+ endif()
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020065 endif()
Julian Hall29620bf2022-06-09 10:26:37 +010066
Imre Kis8a86a002024-01-22 15:43:11 +010067 set(p256m_target "${MBEDTLS_TARGET_PREFIX}p256m")
68@@ -284,13 +300,17 @@ if(USE_STATIC_MBEDTLS_LIBRARY)
69 target_link_libraries(${mbedcrypto_static_target} PUBLIC ${p256m_target})
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020070 endif()
Julian Hall29620bf2022-06-09 10:26:37 +010071
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020072- 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})
Julian Hall29620bf2022-06-09 10:26:37 +010075+ if (BUIILD_X509 OR BUIILD_TLS)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020076+ 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})
Julian Hall29620bf2022-06-09 10:26:37 +010079+ endif()
80
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020081- 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})
Julian Hall29620bf2022-06-09 10:26:37 +010084+ if (BUILD_TLS)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020085+ 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)
Julian Hall29620bf2022-06-09 10:26:37 +010090
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020091 if(USE_SHARED_MBEDTLS_LIBRARY)
Imre Kis8a86a002024-01-22 15:43:11 +010092@@ -306,14 +326,16 @@ if(USE_SHARED_MBEDTLS_LIBRARY)
93 if(TARGET ${p256m_target})
94 target_link_libraries(${mbedcrypto_target} PUBLIC ${p256m_target})
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020095 endif()
96-
97- add_library(${mbedx509_target} SHARED ${src_x509})
Imre Kis8a86a002024-01-22 15:43:11 +010098- set_target_properties(${mbedx509_target} PROPERTIES VERSION 3.5.1 SOVERSION 6)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020099- target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${mbedcrypto_target})
100-
101- add_library(${mbedtls_target} SHARED ${src_tls})
Imre Kis8a86a002024-01-22 15:43:11 +0100102- set_target_properties(${mbedtls_target} PROPERTIES VERSION 3.5.1 SOVERSION 20)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200103- target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target})
Julian Hall29620bf2022-06-09 10:26:37 +0100104+ if (BUIILD_X509 OR BUILD_TLS)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200105+ add_library(${mbedx509_target} SHARED ${src_x509})
Imre Kis8a86a002024-01-22 15:43:11 +0100106+ set_target_properties(${mbedx509_target} PROPERTIES VERSION 3.5.1 SOVERSION 6)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200107+ target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${mbedcrypto_target})
Julian Hall29620bf2022-06-09 10:26:37 +0100108+ endif()
109+ if (BUILD_TLS)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200110+ add_library(${mbedtls_target} SHARED ${src_tls})
Imre Kis8a86a002024-01-22 15:43:11 +0100111+ set_target_properties(${mbedtls_target} PROPERTIES VERSION 3.5.1 SOVERSION 20)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200112+ target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target})
113+ endif()
114 endif(USE_SHARED_MBEDTLS_LIBRARY)
Julian Hall29620bf2022-06-09 10:26:37 +0100115
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200116 foreach(target IN LISTS target_libraries)
Imre Kis8a86a002024-01-22 15:43:11 +0100117@@ -349,7 +371,22 @@ endforeach(target)
Julian Hall29620bf2022-06-09 10:26:37 +0100118
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200119 set(lib_target "${MBEDTLS_TARGET_PREFIX}lib")
Julian Hall29620bf2022-06-09 10:26:37 +0100120
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200121-add_custom_target(${lib_target} DEPENDS ${mbedcrypto_target} ${mbedx509_target} ${mbedtls_target})
122+add_custom_target(${lib_target} DEPENDS ${mbedcrypto_target})
123+
Julian Hall29620bf2022-06-09 10:26:37 +0100124+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})
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200130+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})
Julian Hall29620bf2022-06-09 10:26:37 +0100135+ 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})
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200140+ endif()
141 endif()
Julian Hall29620bf2022-06-09 10:26:37 +0100142--
Balint Dobszay21ce26e2023-05-19 10:12:49 +02001432.34.1
Julian Hall29620bf2022-06-09 10:26:37 +0100144