openssl_headers = [ "aes.h", "asn1.h", "asn1_mac.h", "asn1err.h", "asn1t.h", "async.h", "asyncerr.h", "bio.h", "bioerr.h", "blowfish.h", "bn.h", "bnerr.h", "buffer.h", "buffererr.h", "camellia.h", "cast.h", "cmac.h", "cms.h", "cmserr.h", "comp.h", "comperr.h", "conf.h", "conf_api.h", "conferr.h", "crypto.h", "cryptoerr.h", "ct.h", "cterr.h", "des.h", "dh.h", "dherr.h", "dsa.h", "dsaerr.h", "dtls1.h", "e_os2.h", "ebcdic.h", "ec.h", "ecdh.h", "ecdsa.h", "ecerr.h", "engine.h", "engineerr.h", "err.h", "evp.h", "evperr.h", "hmac.h", "idea.h", "kdf.h", "kdferr.h", "lhash.h", "md2.h", "md4.h", "md5.h", "mdc2.h", "modes.h", "obj_mac.h", "objects.h", "objectserr.h", "ocsp.h", "ocsperr.h", "opensslconf.h", "opensslv.h", "ossl_typ.h", "pem.h", "pem2.h", "pemerr.h", "pkcs12.h", "pkcs12err.h", "pkcs7.h", "pkcs7err.h", "rand.h", "rand_drbg.h", "randerr.h", "rc2.h", "rc4.h", "rc5.h", "ripemd.h", "rsa.h", "rsaerr.h", "safestack.h", "seed.h", "sha.h", "srp.h", "srtp.h", "ssl.h", "ssl2.h", "ssl3.h", "sslerr.h", "stack.h", "store.h", "storeerr.h", "symhacks.h", "tls1.h", "ts.h", "tserr.h", "txt_db.h", "ui.h", "uierr.h", "whrlpool.h", "x509.h", "x509_vfy.h", "x509err.h", "x509v3.h", "x509v3err.h", ] openssl_header_paths = ["openssl/" + header for header in openssl_headers] archs = ["arm64"]#, "armv7", "x86_64"] rules = [ genrule( name = "openssl_build_" + arch, srcs = [ "build-openssl.sh", "openssl-1.1.1d.tar.gz", "patch-conf.patch", "patch-include.patch", ], cmd_bash = "cp $(SRCS) $(RULEDIR)/ && sh $(RULEDIR)/build-openssl.sh $(RULEDIR) $(RULEDIR) " + arch, outs = openssl_headers, visibility = [ "//visibility:public", ] ) for arch in archs ] ''' genrule( name = "openssl_build_merged", srcs = [ "pack-openssl.sh", ], bash = "sh $SRCDIR/pack-openssl.sh $OUT $(location :openssl_build_arm64)/out/include " + " ".join(["$(location :openssl_build_" + arch + ")/out/lib/libcrypto.a" for arch in archs]), out = "openssl", visibility = [ "PUBLIC", ] ) ''' #openssl_header_targets = gen_header_targets(openssl_header_paths, "openssl_header_", "", "openssl_build_arm64", "out/include") objc_library( name = "openssl", module_name = "openssl", enable_modules = True, hdrs = [":" + x for x in openssl_headers], deps = [], visibility = [ "//visibility:public", ] )