blob: 8639bae8474930d6a03dfc4ec9863eb6b639e48a [file] [log] [blame]
Julian Hall29620bf2022-06-09 10:26:37 +01001From b22daa35b3ef912e44e7f6a8d9f24c4703fb4784 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>
14---
Julian Hall29620bf2022-06-09 10:26:37 +010015 library/CMakeLists.txt | 77 +++++++++++++++++++++++++++++++-----------
16 1 file changed, 57 insertions(+), 20 deletions(-)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020017
18diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt
Julian Hall29620bf2022-06-09 10:26:37 +010019index 535988303..ea1247427 100644
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020020--- a/library/CMakeLists.txt
21+++ b/library/CMakeLists.txt
Julian Hall29620bf2022-06-09 10:26:37 +010022@@ -2,6 +2,8 @@ option(USE_STATIC_MBEDTLS_LIBRARY "Build mbed TLS static library." ON)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020023 option(USE_SHARED_MBEDTLS_LIBRARY "Build mbed TLS shared library." OFF)
24 option(LINK_WITH_PTHREAD "Explicitly link mbed TLS library to pthread." OFF)
25 option(LINK_WITH_TRUSTED_STORAGE "Explicitly link mbed TLS library to trusted_storage." OFF)
Julian Hall29620bf2022-06-09 10:26:37 +010026+option(BUIILD_X509 "Build x509 library too." ON)
27+option(BUILD_TLS "Build TLS library too" OFF)
28
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020029 # Set the project root directory if it's not already defined, as may happen if
30 # the library folder is included directly by a parent project, without
Julian Hall29620bf2022-06-09 10:26:37 +010031@@ -250,7 +252,15 @@ if (USE_STATIC_MBEDTLS_LIBRARY)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020032 set(mbedcrypto_static_target ${mbedcrypto_target})
33 endif()
Julian Hall29620bf2022-06-09 10:26:37 +010034
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020035-set(target_libraries ${mbedcrypto_target} ${mbedx509_target} ${mbedtls_target})
36+set(target_libraries ${mbedcrypto_target})
37+
Julian Hall29620bf2022-06-09 10:26:37 +010038+if (BUIILD_X509)
39+ list(APPEND target_libraries ${mbedx509_target})
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020040+endif()
Julian Hall29620bf2022-06-09 10:26:37 +010041+
42+if (BUILD_TLS)
43+ list(APPEND target_libraries ${mbedtls_target})
44+endif()
45
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020046 if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
47 string(APPEND mbedtls_static_target "_static")
Julian Hall29620bf2022-06-09 10:26:37 +010048@@ -258,9 +268,15 @@ if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020049 string(APPEND mbedcrypto_static_target "_static")
Julian Hall29620bf2022-06-09 10:26:37 +010050
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020051 list(APPEND target_libraries
52- ${mbedcrypto_static_target}
Balint Dobszay21ce26e2023-05-19 10:12:49 +020053- ${mbedx509_static_target}
54- ${mbedtls_static_target})
55+ ${mbedcrypto_static_target})
Julian Hall29620bf2022-06-09 10:26:37 +010056+
57+ if (BUIILD_X509 OR BUIILD_TLS)
58+ list(APPEND target_libraries ${mbedx509_static_target})
59+ endif()
Balint Dobszay21ce26e2023-05-19 10:12:49 +020060+
Julian Hall29620bf2022-06-09 10:26:37 +010061+ if (BUILD_TLS)
62+ list(APPEND target_libraries ${mbedtls_static_target})
Balint Dobszay21ce26e2023-05-19 10:12:49 +020063+ endif()
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020064 endif()
Julian Hall29620bf2022-06-09 10:26:37 +010065
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020066 if(USE_STATIC_MBEDTLS_LIBRARY)
Julian Hall29620bf2022-06-09 10:26:37 +010067@@ -272,13 +288,17 @@ if(USE_STATIC_MBEDTLS_LIBRARY)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020068 target_link_libraries(${mbedcrypto_static_target} PUBLIC everest)
69 endif()
Julian Hall29620bf2022-06-09 10:26:37 +010070
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020071- add_library(${mbedx509_static_target} STATIC ${src_x509})
72- set_target_properties(${mbedx509_static_target} PROPERTIES OUTPUT_NAME mbedx509)
73- target_link_libraries(${mbedx509_static_target} PUBLIC ${libs} ${mbedcrypto_static_target})
Julian Hall29620bf2022-06-09 10:26:37 +010074+ if (BUIILD_X509 OR BUIILD_TLS)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020075+ add_library(${mbedx509_static_target} STATIC ${src_x509})
76+ set_target_properties(${mbedx509_static_target} PROPERTIES OUTPUT_NAME mbedx509)
77+ target_link_libraries(${mbedx509_static_target} PUBLIC ${libs} ${mbedcrypto_static_target})
Julian Hall29620bf2022-06-09 10:26:37 +010078+ endif()
79
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020080- add_library(${mbedtls_static_target} STATIC ${src_tls})
81- set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls)
82- target_link_libraries(${mbedtls_static_target} PUBLIC ${libs} ${mbedx509_static_target})
Julian Hall29620bf2022-06-09 10:26:37 +010083+ if (BUILD_TLS)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020084+ add_library(${mbedtls_static_target} STATIC ${src_tls})
85+ set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls)
86+ target_link_libraries(${mbedtls_static_target} PUBLIC ${libs} ${mbedx509_static_target})
87+ endif()
88 endif(USE_STATIC_MBEDTLS_LIBRARY)
Julian Hall29620bf2022-06-09 10:26:37 +010089
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020090 if(USE_SHARED_MBEDTLS_LIBRARY)
Julian Hall29620bf2022-06-09 10:26:37 +010091@@ -290,14 +310,16 @@ if(USE_SHARED_MBEDTLS_LIBRARY)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020092 if(TARGET everest)
93 target_link_libraries(${mbedcrypto_target} PUBLIC everest)
94 endif()
95-
96- add_library(${mbedx509_target} SHARED ${src_x509})
Balint Dobszay21ce26e2023-05-19 10:12:49 +020097- set_target_properties(${mbedx509_target} PROPERTIES VERSION 3.4.0 SOVERSION 5)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +020098- target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${mbedcrypto_target})
99-
100- add_library(${mbedtls_target} SHARED ${src_tls})
Balint Dobszay21ce26e2023-05-19 10:12:49 +0200101- set_target_properties(${mbedtls_target} PROPERTIES VERSION 3.4.0 SOVERSION 19)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200102- target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target})
Julian Hall29620bf2022-06-09 10:26:37 +0100103+ if (BUIILD_X509 OR BUILD_TLS)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200104+ add_library(${mbedx509_target} SHARED ${src_x509})
Balint Dobszay21ce26e2023-05-19 10:12:49 +0200105+ set_target_properties(${mbedx509_target} PROPERTIES VERSION 3.4.0 SOVERSION 5)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200106+ target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${mbedcrypto_target})
Julian Hall29620bf2022-06-09 10:26:37 +0100107+ endif()
108+ if (BUILD_TLS)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200109+ add_library(${mbedtls_target} SHARED ${src_tls})
Balint Dobszay21ce26e2023-05-19 10:12:49 +0200110+ set_target_properties(${mbedtls_target} PROPERTIES VERSION 3.4.0 SOVERSION 19)
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200111+ target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target})
112+ endif()
113 endif(USE_SHARED_MBEDTLS_LIBRARY)
Julian Hall29620bf2022-06-09 10:26:37 +0100114
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200115 foreach(target IN LISTS target_libraries)
Julian Hall29620bf2022-06-09 10:26:37 +0100116@@ -322,7 +344,22 @@ endforeach(target)
117
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200118 set(lib_target "${MBEDTLS_TARGET_PREFIX}lib")
Julian Hall29620bf2022-06-09 10:26:37 +0100119
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200120-add_custom_target(${lib_target} DEPENDS ${mbedcrypto_target} ${mbedx509_target} ${mbedtls_target})
121+add_custom_target(${lib_target} DEPENDS ${mbedcrypto_target})
122+
Julian Hall29620bf2022-06-09 10:26:37 +0100123+if(BUIILD_X509 OR BUIILD_TLS)
124+ add_dependencies(${lib_target} ${mbedx509_target})
125+endif()
126+
127+if(BUIILD_TLS)
128+ add_dependencies(${lib_target} ${mbedtls_target})
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200129+endif()
130+
131 if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
132- add_dependencies(${lib_target} ${mbedcrypto_static_target} ${mbedx509_static_target} ${mbedtls_static_target})
133+ add_dependencies(${lib_target} ${mbedcrypto_static_target})
Julian Hall29620bf2022-06-09 10:26:37 +0100134+ if(BUIILD_X509 OR BUIILD_TLS)
135+ add_dependencies(${lib_target} ${mbedx509_static_target})
136+ endif()
137+ if(BUIILD_TLS)
138+ add_dependencies(${lib_target} ${mbedtls_static_target})
Gyorgy Szing9c8daca2023-03-28 17:09:33 +0200139+ endif()
140 endif()
Julian Hall29620bf2022-06-09 10:26:37 +0100141--
Balint Dobszay21ce26e2023-05-19 10:12:49 +02001422.34.1
Julian Hall29620bf2022-06-09 10:26:37 +0100143