xref: /aosp_15_r20/external/grpc-grpc/BoringSSL-Package.swift (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1 // swift-tools-version:5.5
2 // The swift-tools-version declares the minimum version of Swift required to build this package.
3 import PackageDescription
4 import Foundation
5 
6 let basePath = "third_party/boringssl-with-bazel"
7 let privacyInfoPath = "../../src/objective-c/PrivacyInfo.xcprivacy"
8 let testPath = "test/boringssl_spm_build"
9 
10 
11 
12 let package = Package(
13   name: "BoringSSL-GRPC",
14   products: [
15     .library(
16       name: "openssl_grpc",
17       targets: ["openssl_grpc"]
18     )
19   ],
20 
21   targets: [
22     .target(
23       name: "openssl_grpc",
24       path: basePath,
25       exclude: [
26       ],
27 
28       sources: [
29         "err_data.c",
30         "src/crypto/asn1/a_bitstr.c",
31         "src/crypto/asn1/a_bool.c",
32         "src/crypto/asn1/a_d2i_fp.c",
33         "src/crypto/asn1/a_dup.c",
34         "src/crypto/asn1/a_gentm.c",
35         "src/crypto/asn1/a_i2d_fp.c",
36         "src/crypto/asn1/a_int.c",
37         "src/crypto/asn1/a_mbstr.c",
38         "src/crypto/asn1/a_object.c",
39         "src/crypto/asn1/a_octet.c",
40         "src/crypto/asn1/a_strex.c",
41         "src/crypto/asn1/a_strnid.c",
42         "src/crypto/asn1/a_time.c",
43         "src/crypto/asn1/a_type.c",
44         "src/crypto/asn1/a_utctm.c",
45         "src/crypto/asn1/asn1_lib.c",
46         "src/crypto/asn1/asn1_par.c",
47         "src/crypto/asn1/asn_pack.c",
48         "src/crypto/asn1/f_int.c",
49         "src/crypto/asn1/f_string.c",
50         "src/crypto/asn1/posix_time.c",
51         "src/crypto/asn1/tasn_dec.c",
52         "src/crypto/asn1/tasn_enc.c",
53         "src/crypto/asn1/tasn_fre.c",
54         "src/crypto/asn1/tasn_new.c",
55         "src/crypto/asn1/tasn_typ.c",
56         "src/crypto/asn1/tasn_utl.c",
57         "src/crypto/base64/base64.c",
58         "src/crypto/bio/bio.c",
59         "src/crypto/bio/bio_mem.c",
60         "src/crypto/bio/connect.c",
61         "src/crypto/bio/errno.c",
62         "src/crypto/bio/fd.c",
63         "src/crypto/bio/file.c",
64         "src/crypto/bio/hexdump.c",
65         "src/crypto/bio/pair.c",
66         "src/crypto/bio/printf.c",
67         "src/crypto/bio/socket.c",
68         "src/crypto/bio/socket_helper.c",
69         "src/crypto/blake2/blake2.c",
70         "src/crypto/bn_extra/bn_asn1.c",
71         "src/crypto/bn_extra/convert.c",
72         "src/crypto/buf/buf.c",
73         "src/crypto/bytestring/asn1_compat.c",
74         "src/crypto/bytestring/ber.c",
75         "src/crypto/bytestring/cbb.c",
76         "src/crypto/bytestring/cbs.c",
77         "src/crypto/bytestring/unicode.c",
78         "src/crypto/chacha/chacha.c",
79         "src/crypto/cipher_extra/cipher_extra.c",
80         "src/crypto/cipher_extra/derive_key.c",
81         "src/crypto/cipher_extra/e_aesctrhmac.c",
82         "src/crypto/cipher_extra/e_aesgcmsiv.c",
83         "src/crypto/cipher_extra/e_chacha20poly1305.c",
84         "src/crypto/cipher_extra/e_des.c",
85         "src/crypto/cipher_extra/e_null.c",
86         "src/crypto/cipher_extra/e_rc2.c",
87         "src/crypto/cipher_extra/e_rc4.c",
88         "src/crypto/cipher_extra/e_tls.c",
89         "src/crypto/cipher_extra/tls_cbc.c",
90         "src/crypto/conf/conf.c",
91         "src/crypto/cpu_aarch64_apple.c",
92         "src/crypto/cpu_aarch64_fuchsia.c",
93         "src/crypto/cpu_aarch64_linux.c",
94         "src/crypto/cpu_aarch64_openbsd.c",
95         "src/crypto/cpu_aarch64_sysreg.c",
96         "src/crypto/cpu_aarch64_win.c",
97         "src/crypto/cpu_arm_freebsd.c",
98         "src/crypto/cpu_arm_linux.c",
99         "src/crypto/cpu_intel.c",
100         "src/crypto/crypto.c",
101         "src/crypto/curve25519/curve25519.c",
102         "src/crypto/curve25519/curve25519_64_adx.c",
103         "src/crypto/curve25519/spake25519.c",
104         "src/crypto/des/des.c",
105         "src/crypto/dh_extra/dh_asn1.c",
106         "src/crypto/dh_extra/params.c",
107         "src/crypto/digest_extra/digest_extra.c",
108         "src/crypto/dsa/dsa.c",
109         "src/crypto/dsa/dsa_asn1.c",
110         "src/crypto/ec_extra/ec_asn1.c",
111         "src/crypto/ec_extra/ec_derive.c",
112         "src/crypto/ec_extra/hash_to_curve.c",
113         "src/crypto/ecdh_extra/ecdh_extra.c",
114         "src/crypto/ecdsa_extra/ecdsa_asn1.c",
115         "src/crypto/engine/engine.c",
116         "src/crypto/err/err.c",
117         "src/crypto/evp/evp.c",
118         "src/crypto/evp/evp_asn1.c",
119         "src/crypto/evp/evp_ctx.c",
120         "src/crypto/evp/p_dsa_asn1.c",
121         "src/crypto/evp/p_ec.c",
122         "src/crypto/evp/p_ec_asn1.c",
123         "src/crypto/evp/p_ed25519.c",
124         "src/crypto/evp/p_ed25519_asn1.c",
125         "src/crypto/evp/p_hkdf.c",
126         "src/crypto/evp/p_rsa.c",
127         "src/crypto/evp/p_rsa_asn1.c",
128         "src/crypto/evp/p_x25519.c",
129         "src/crypto/evp/p_x25519_asn1.c",
130         "src/crypto/evp/pbkdf.c",
131         "src/crypto/evp/print.c",
132         "src/crypto/evp/scrypt.c",
133         "src/crypto/evp/sign.c",
134         "src/crypto/ex_data.c",
135         "src/crypto/fipsmodule/bcm.c",
136         "src/crypto/fipsmodule/fips_shared_support.c",
137         "src/crypto/hpke/hpke.c",
138         "src/crypto/hrss/hrss.c",
139         "src/crypto/keccak/keccak.c",
140         "src/crypto/kyber/kyber.c",
141         "src/crypto/lhash/lhash.c",
142         "src/crypto/mem.c",
143         "src/crypto/obj/obj.c",
144         "src/crypto/obj/obj_xref.c",
145         "src/crypto/pem/pem_all.c",
146         "src/crypto/pem/pem_info.c",
147         "src/crypto/pem/pem_lib.c",
148         "src/crypto/pem/pem_oth.c",
149         "src/crypto/pem/pem_pk8.c",
150         "src/crypto/pem/pem_pkey.c",
151         "src/crypto/pem/pem_x509.c",
152         "src/crypto/pem/pem_xaux.c",
153         "src/crypto/pkcs7/pkcs7.c",
154         "src/crypto/pkcs7/pkcs7_x509.c",
155         "src/crypto/pkcs8/p5_pbev2.c",
156         "src/crypto/pkcs8/pkcs8.c",
157         "src/crypto/pkcs8/pkcs8_x509.c",
158         "src/crypto/poly1305/poly1305.c",
159         "src/crypto/poly1305/poly1305_arm.c",
160         "src/crypto/poly1305/poly1305_vec.c",
161         "src/crypto/pool/pool.c",
162         "src/crypto/rand_extra/deterministic.c",
163         "src/crypto/rand_extra/forkunsafe.c",
164         "src/crypto/rand_extra/getentropy.c",
165         "src/crypto/rand_extra/ios.c",
166         "src/crypto/rand_extra/passive.c",
167         "src/crypto/rand_extra/rand_extra.c",
168         "src/crypto/rand_extra/trusty.c",
169         "src/crypto/rand_extra/windows.c",
170         "src/crypto/rc4/rc4.c",
171         "src/crypto/refcount.c",
172         "src/crypto/rsa_extra/rsa_asn1.c",
173         "src/crypto/rsa_extra/rsa_crypt.c",
174         "src/crypto/rsa_extra/rsa_print.c",
175         "src/crypto/siphash/siphash.c",
176         "src/crypto/spx/address.c",
177         "src/crypto/spx/fors.c",
178         "src/crypto/spx/merkle.c",
179         "src/crypto/spx/spx.c",
180         "src/crypto/spx/spx_util.c",
181         "src/crypto/spx/thash.c",
182         "src/crypto/spx/wots.c",
183         "src/crypto/stack/stack.c",
184         "src/crypto/thread.c",
185         "src/crypto/thread_none.c",
186         "src/crypto/thread_pthread.c",
187         "src/crypto/thread_win.c",
188         "src/crypto/trust_token/pmbtoken.c",
189         "src/crypto/trust_token/trust_token.c",
190         "src/crypto/trust_token/voprf.c",
191         "src/crypto/x509/a_digest.c",
192         "src/crypto/x509/a_sign.c",
193         "src/crypto/x509/a_verify.c",
194         "src/crypto/x509/algorithm.c",
195         "src/crypto/x509/asn1_gen.c",
196         "src/crypto/x509/by_dir.c",
197         "src/crypto/x509/by_file.c",
198         "src/crypto/x509/i2d_pr.c",
199         "src/crypto/x509/name_print.c",
200         "src/crypto/x509/policy.c",
201         "src/crypto/x509/rsa_pss.c",
202         "src/crypto/x509/t_crl.c",
203         "src/crypto/x509/t_req.c",
204         "src/crypto/x509/t_x509.c",
205         "src/crypto/x509/t_x509a.c",
206         "src/crypto/x509/v3_akey.c",
207         "src/crypto/x509/v3_akeya.c",
208         "src/crypto/x509/v3_alt.c",
209         "src/crypto/x509/v3_bcons.c",
210         "src/crypto/x509/v3_bitst.c",
211         "src/crypto/x509/v3_conf.c",
212         "src/crypto/x509/v3_cpols.c",
213         "src/crypto/x509/v3_crld.c",
214         "src/crypto/x509/v3_enum.c",
215         "src/crypto/x509/v3_extku.c",
216         "src/crypto/x509/v3_genn.c",
217         "src/crypto/x509/v3_ia5.c",
218         "src/crypto/x509/v3_info.c",
219         "src/crypto/x509/v3_int.c",
220         "src/crypto/x509/v3_lib.c",
221         "src/crypto/x509/v3_ncons.c",
222         "src/crypto/x509/v3_ocsp.c",
223         "src/crypto/x509/v3_pcons.c",
224         "src/crypto/x509/v3_pmaps.c",
225         "src/crypto/x509/v3_prn.c",
226         "src/crypto/x509/v3_purp.c",
227         "src/crypto/x509/v3_skey.c",
228         "src/crypto/x509/v3_utl.c",
229         "src/crypto/x509/x509.c",
230         "src/crypto/x509/x509_att.c",
231         "src/crypto/x509/x509_cmp.c",
232         "src/crypto/x509/x509_d2.c",
233         "src/crypto/x509/x509_def.c",
234         "src/crypto/x509/x509_ext.c",
235         "src/crypto/x509/x509_lu.c",
236         "src/crypto/x509/x509_obj.c",
237         "src/crypto/x509/x509_req.c",
238         "src/crypto/x509/x509_set.c",
239         "src/crypto/x509/x509_trs.c",
240         "src/crypto/x509/x509_txt.c",
241         "src/crypto/x509/x509_v3.c",
242         "src/crypto/x509/x509_vfy.c",
243         "src/crypto/x509/x509_vpm.c",
244         "src/crypto/x509/x509cset.c",
245         "src/crypto/x509/x509name.c",
246         "src/crypto/x509/x509rset.c",
247         "src/crypto/x509/x509spki.c",
248         "src/crypto/x509/x_algor.c",
249         "src/crypto/x509/x_all.c",
250         "src/crypto/x509/x_attrib.c",
251         "src/crypto/x509/x_crl.c",
252         "src/crypto/x509/x_exten.c",
253         "src/crypto/x509/x_name.c",
254         "src/crypto/x509/x_pubkey.c",
255         "src/crypto/x509/x_req.c",
256         "src/crypto/x509/x_sig.c",
257         "src/crypto/x509/x_spki.c",
258         "src/crypto/x509/x_val.c",
259         "src/crypto/x509/x_x509.c",
260         "src/crypto/x509/x_x509a.c",
261         "src/ssl/bio_ssl.cc",
262         "src/ssl/d1_both.cc",
263         "src/ssl/d1_lib.cc",
264         "src/ssl/d1_pkt.cc",
265         "src/ssl/d1_srtp.cc",
266         "src/ssl/dtls_method.cc",
267         "src/ssl/dtls_record.cc",
268         "src/ssl/encrypted_client_hello.cc",
269         "src/ssl/extensions.cc",
270         "src/ssl/handoff.cc",
271         "src/ssl/handshake.cc",
272         "src/ssl/handshake_client.cc",
273         "src/ssl/handshake_server.cc",
274         "src/ssl/s3_both.cc",
275         "src/ssl/s3_lib.cc",
276         "src/ssl/s3_pkt.cc",
277         "src/ssl/ssl_aead_ctx.cc",
278         "src/ssl/ssl_asn1.cc",
279         "src/ssl/ssl_buffer.cc",
280         "src/ssl/ssl_cert.cc",
281         "src/ssl/ssl_cipher.cc",
282         "src/ssl/ssl_file.cc",
283         "src/ssl/ssl_key_share.cc",
284         "src/ssl/ssl_lib.cc",
285         "src/ssl/ssl_privkey.cc",
286         "src/ssl/ssl_session.cc",
287         "src/ssl/ssl_stat.cc",
288         "src/ssl/ssl_transcript.cc",
289         "src/ssl/ssl_versions.cc",
290         "src/ssl/ssl_x509.cc",
291         "src/ssl/t1_enc.cc",
292         "src/ssl/tls13_both.cc",
293         "src/ssl/tls13_client.cc",
294         "src/ssl/tls13_enc.cc",
295         "src/ssl/tls13_server.cc",
296         "src/ssl/tls_method.cc",
297         "src/ssl/tls_record.cc",
298       ],
299       resources: [
300         .copy(privacyInfoPath),
301       ],
302       publicHeadersPath: "src/include",
303 
304       cSettings: [
305         .define("OPENSSL_NO_ASM", to: "1"),
306         .headerSearchPath("./"),
307         .headerSearchPath("include/"),
308       ]
309     ),
310     .testTarget(
311       name: "build-test",
312       dependencies: [
313         "openssl_grpc",
314       ],
315       path: testPath
316     ),
317   ],
318   cxxLanguageStandard: .cxx14
319 )
320