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