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