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