| # Copyright 2024 The BoringSSL Authors |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # https://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| 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") |
| load("@rules_license//rules:license.bzl", "license") |
| |
| package( |
| default_applicable_licenses = [":license"], |
| # Disable the parse_headers feature. It does not work well in C right now. |
| # See https://github.com/bazelbuild/bazel/issues/23460 for details. When |
| # that is fixed, if enabled, we likely also need to rename some headers to |
| # .inc per |
| # https://google.github.io/styleguide/cppguide.html#Self_contained_Headers |
| features = ["-parse_headers"], |
| ) |
| |
| license( |
| name = "license", |
| package_name = "BoringSSL", |
| license_kinds = [ |
| "@rules_license//licenses/spdx:Apache-2.0", |
| ], |
| license_text = "LICENSE", |
| ) |
| |
| 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", |
| ], |
| ) |