# Copyright (c) 2024, Google Inc. # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY # SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION # OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN # CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. load( ":gen/sources.bzl", "bcm_internal_headers", "bcm_sources", "bcm_sources_asm", "bssl_internal_headers", "bssl_sources", "crypto_headers", "crypto_internal_headers", "crypto_sources", "crypto_sources_asm", "crypto_test_data", "crypto_test_sources", "decrepit_internal_headers", "decrepit_sources", "decrepit_test_sources", "pki_headers", "pki_internal_headers", "pki_sources", "pki_test_data", "pki_test_sources", "ssl_headers", "ssl_internal_headers", "ssl_sources", "ssl_test_sources", "test_support_internal_headers", "test_support_sources", "test_support_sources_asm", "urandom_test_sources", ) load(":util/util.bzl", "bssl_cc_binary", "bssl_cc_library", "bssl_cc_test") licenses(["notice"]) exports_files(["LICENSE"]) bssl_cc_library( name = "crypto", srcs = bcm_sources + crypto_sources, hdrs = crypto_headers, asm_srcs = bcm_sources_asm + crypto_sources_asm, copts = ["-DBORINGSSL_IMPLEMENTATION"], includes = ["include"], internal_hdrs = bcm_internal_headers + crypto_internal_headers, linkopts = select({ "@platforms//os:windows": [ "-defaultlib:advapi32.lib", "-defaultlib:ws2_32.lib", ], "//conditions:default": ["-pthread"], }), visibility = ["//visibility:public"], ) bssl_cc_library( name = "ssl", srcs = ssl_sources, hdrs = ssl_headers, copts = ["-DBORINGSSL_IMPLEMENTATION"], internal_hdrs = ssl_internal_headers, visibility = ["//visibility:public"], deps = [":crypto_internal"], ) bssl_cc_library( name = "test_support", testonly = True, srcs = test_support_sources, asm_srcs = test_support_sources_asm, copts = ["-DBORINGSSL_USE_BAZEL_RUNFILES"], internal_hdrs = test_support_internal_headers, deps = [ ":crypto_internal", "@bazel_tools//tools/cpp/runfiles", "@googletest//:gtest", ], ) bssl_cc_test( name = "crypto_test", size = "large", srcs = crypto_test_sources, data = crypto_test_data, # crypto_test references assembly symbols directly and thus must be linked # statically. linkstatic = True, shard_count = 32, deps = [ ":crypto_internal", ":test_support", "@googletest//:gtest", ], ) bssl_cc_test( name = "urandom_test", srcs = urandom_test_sources, deps = [ ":crypto_internal", ":test_support", "@googletest//:gtest", ], ) bssl_cc_test( name = "ssl_test", srcs = ssl_test_sources, deps = [ ":crypto_internal", ":ssl_internal", ":test_support", "@googletest//:gtest", ], ) bssl_cc_binary( name = "bssl", srcs = bssl_sources + bssl_internal_headers, visibility = ["//visibility:public"], deps = [ ":crypto_internal", ":ssl_internal", ], ) # Build, but do not export libdecrepit. bssl_cc_library( name = "decrepit", srcs = decrepit_sources, copts = ["-DBORINGSSL_IMPLEMENTATION"], internal_hdrs = decrepit_internal_headers, deps = [ ":crypto_internal", ":ssl_internal", ], ) bssl_cc_test( name = "decrepit_test", srcs = decrepit_test_sources, deps = [ ":crypto_internal", ":decrepit", ":test_support", "@googletest//:gtest", ], ) # Build, but do not (yet) export libpki. bssl_cc_library( name = "pki", srcs = pki_sources, hdrs = pki_headers, copts = ["-DBORINGSSL_IMPLEMENTATION"], internal_hdrs = pki_internal_headers, deps = [":crypto"], ) bssl_cc_test( name = "pki_test", srcs = pki_test_sources, data = pki_test_data, deps = [ ":crypto_internal", ":pki", ":test_support", "@googletest//:gtest", ], )