2020-02-19 03:08:25 +04:00

175 lines
3.5 KiB
Python

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_libs = [
"libcrypto.a",
]
genrule(
name = "openssl_build",
srcs = [
"build-openssl-bazel.sh",
"openssl-1.1.1d.tar.gz",
"patch-conf.patch",
"patch-include.patch",
],
cmd_bash =
"""
if [ "$(TARGET_CPU)" == "ios_armv7" ]; then
BUILD_ARCH="armv7"
elif [ "$(TARGET_CPU)" == "ios_arm64" ]; then
BUILD_ARCH="arm64"
elif [ "$(TARGET_CPU)" == "ios_x86_64" ]; then
BUILD_ARCH="x86_64"
else
echo "Unsupported architecture $(TARGET_CPU)"
fi
""" + "\n" +
"mkdir -p $(RULEDIR)/$$BUILD_ARCH && cp $(SRCS) $(RULEDIR)/$$BUILD_ARCH/ && sh $(RULEDIR)/$$BUILD_ARCH/build-openssl-bazel.sh $(RULEDIR)/$$BUILD_ARCH $(RULEDIR)/$$BUILD_ARCH $$BUILD_ARCH" + "\n" +
"\n".join([
"cp \"$(RULEDIR)/$$BUILD_ARCH/build/$$BUILD_ARCH/include/openssl/{}\" \"$(location :{})\"\n".format(x, x) for x in openssl_headers
]) +
"\n".join([
"cp \"$(RULEDIR)/$$BUILD_ARCH/build/$$BUILD_ARCH/lib/{}\" \"$(location :{})\"\n".format(x, x) for x in openssl_libs
]),
outs = openssl_headers + openssl_libs,
visibility = [
"//visibility:public",
]
)
genrule(
name = "openssl_include",
srcs = [":" + x for x in openssl_headers],
outs = ["Public/openssl/" + x for x in openssl_headers],
cmd_bash = " && ".join(["cp $(location :{}) $(location Public/openssl/{})".format(x, x) for x in openssl_headers]),
visibility = [
"//visibility:public",
],
)
cc_library(
name = "openssl_lib",
srcs = [":" + x for x in openssl_libs],
)
objc_library(
name = "openssl",
module_name = "openssl",
enable_modules = True,
hdrs = ["Public/openssl/" + x for x in openssl_headers],
includes = [
"Public",
],
deps = [
":openssl_lib",
],
visibility = [
"//visibility:public",
]
)