# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you 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 # # http://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. workspace(name = "com_github_brpc_brpc") load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") # # Constants # BAZEL_IO_VERSION = "4.2.2" # 2021-12-03T09:26:35Z BAZEL_IO_SHA256 = "4c179ce66bbfff6ac5d81b8895518096e7f750866d08da2d4a574d1b8029e914" BAZEL_SKYLIB_VERSION = "1.1.1" # 2021-09-27T17:33:49Z BAZEL_SKYLIB_SHA256 = "c6966ec828da198c5d9adbaa94c05e3a1c7f21bd012a0b29ba8ddbccb2c93b0d" BAZEL_PLATFORMS_VERSION = "0.0.4" # 2021-02-26 BAZEL_PLATFORMS_SHA256 = "079945598e4b6cc075846f7fd6a9d0857c33a7afc0de868c2ccb96405225135d" RULES_PROTO_TAG = "4.0.0" # 2021-09-15T14:13:21Z RULES_PROTO_SHA256 = "66bfdf8782796239d3875d37e7de19b1d94301e8972b3cbd2446b332429b4df1" RULES_CC_COMMIT_ID = "0913abc3be0edff60af681c0473518f51fb9eeef" # 2021-08-12T14:14:28Z RULES_CC_SHA256 = "04d22a8c6f0caab1466ff9ae8577dbd12a0c7d0bc468425b75de094ec68ab4f9" # # Starlark libraries # http_archive( name = "io_bazel", sha256 = BAZEL_IO_SHA256, strip_prefix = "bazel-" + BAZEL_IO_VERSION, url = "https://github.com/bazelbuild/bazel/archive/" + BAZEL_IO_VERSION + ".zip", ) http_archive( name = "bazel_skylib", sha256 = BAZEL_SKYLIB_SHA256, urls = [ "https://github.com/bazelbuild/bazel-skylib/releases/download/{version}/bazel-skylib-{version}.tar.gz".format(version = BAZEL_SKYLIB_VERSION), "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/{version}/bazel-skylib-{version}.tar.gz".format(version = BAZEL_SKYLIB_VERSION), ], ) http_archive( name = "platforms", sha256 = BAZEL_PLATFORMS_SHA256, urls = [ "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/{version}/platforms-{version}.tar.gz".format(version = BAZEL_PLATFORMS_VERSION), "https://github.com/bazelbuild/platforms/releases/download/{version}/platforms-{version}.tar.gz".format(version = BAZEL_PLATFORMS_VERSION), ], ) http_archive( name = "rules_proto", sha256 = RULES_PROTO_SHA256, strip_prefix = "rules_proto-{version}".format(version = RULES_PROTO_TAG), urls = ["https://github.com/bazelbuild/rules_proto/archive/refs/tags/{version}.tar.gz".format(version = RULES_PROTO_TAG)], ) http_archive( name = "rules_cc", sha256 = RULES_CC_SHA256, strip_prefix = "rules_cc-{commit_id}".format(commit_id = RULES_CC_COMMIT_ID), urls = [ "https://github.com/bazelbuild/rules_cc/archive/{commit_id}.tar.gz".format(commit_id = RULES_CC_COMMIT_ID), ], ) http_archive( name = "rules_perl", # 2021-09-23T03:21:58Z sha256 = "55fbe071971772758ad669615fc9aac9b126db6ae45909f0f36de499f6201dd3", strip_prefix = "rules_perl-2f4f36f454375e678e81e5ca465d4d497c5c02da", urls = [ "https://github.com/bazelbuild/rules_perl/archive/2f4f36f454375e678e81e5ca465d4d497c5c02da.tar.gz", ], ) # Use rules_foreign_cc as fewer as possible. # # 1. Build very basic libraries without any further dependencies. # 2. Build too complex to bazelize library. http_archive( name = "rules_foreign_cc", # 2021-12-03T17:15:40Z sha256 = "1df78c7d7eed2dc21b8b325a2853c31933a81e7b780f9a59a5d078be9008b13a", strip_prefix = "rules_foreign_cc-0.7.0", url = "https://github.com/bazelbuild/rules_foreign_cc/archive/0.7.0.tar.gz", ) # # Starlark rules # load("@rules_foreign_cc//foreign_cc:repositories.bzl", "rules_foreign_cc_dependencies") rules_foreign_cc_dependencies(register_preinstalled_tools = False) # # C++ Dependencies # # Ordered lexicographical. # http_archive( name = "boost", # 2021-08-05T01:30:05Z build_file = "@com_github_nelhage_rules_boost//:BUILD.boost", patch_cmds = ["rm -f doc/pdf/BUILD"], patch_cmds_win = ["Remove-Item -Force doc/pdf/BUILD"], sha256 = "5347464af5b14ac54bb945dc68f1dd7c56f0dad7262816b956138fc53bcc0131", strip_prefix = "boost_1_77_0", urls = [ "https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.gz", ], ) http_archive( name = "com_github_gflags_gflags", # 2018-11-11T21:30:10Z sha256 = "34af2f15cf7367513b352bdcd2493ab14ce43692d2dcd9dfc499492966c64dcf", strip_prefix = "gflags-2.2.2", urls = ["https://github.com/gflags/gflags/archive/v2.2.2.tar.gz"], ) http_archive( name = "com_github_google_crc32c", # 2021-10-05T19:47:30Z build_file = "//bazel/third_party/crc32c:crc32c.BUILD", sha256 = "ac07840513072b7fcebda6e821068aa04889018f24e10e46181068fb214d7e56", strip_prefix = "crc32c-1.1.2", urls = ["https://github.com/google/crc32c/archive/1.1.2.tar.gz"], ) http_archive( name = "com_github_google_glog", # 2021-05-07T23:06:39Z patch_args = ["-p1"], patches = [ "//bazel/third_party/glog:0001-mark-override-resolve-warning.patch", ], sha256 = "21bc744fb7f2fa701ee8db339ded7dce4f975d0d55837a97be7d46e8382dea5a", strip_prefix = "glog-0.5.0", urls = ["https://github.com/google/glog/archive/v0.5.0.zip"], ) http_archive( name = "com_github_google_leveldb", # 2021-02-23T21:51:12Z build_file = "//bazel/third_party/leveldb:leveldb.BUILD", sha256 = "9a37f8a6174f09bd622bc723b55881dc541cd50747cbd08831c2a82d620f6d76", strip_prefix = "leveldb-1.23", urls = [ "https://github.com/google/leveldb/archive/refs/tags/1.23.tar.gz", ], ) http_archive( name = "com_github_google_snappy", # 2017-08-25 build_file = "//bazel/third_party/snappy:snappy.BUILD", sha256 = "3dfa02e873ff51a11ee02b9ca391807f0c8ea0529a4924afa645fbf97163f9d4", strip_prefix = "snappy-1.1.7", urls = [ "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/snappy/archive/1.1.7.tar.gz", "https://github.com/google/snappy/archive/1.1.7.tar.gz", ], ) http_archive( name = "com_github_libevent_libevent", # 2020-07-05T13:33:03Z build_file = "//bazel/third_party/event:event.BUILD", sha256 = "92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb", strip_prefix = "libevent-2.1.12-stable", urls = [ "https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz", ], ) # TODO: SIMD optimization. # https://github.com/cloudflare/zlib http_archive( name = "com_github_madler_zlib", # 2017-01-15T17:57:23Z build_file = "//bazel/third_party/zlib:zlib.BUILD", sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1", strip_prefix = "zlib-1.2.11", urls = [ "https://downloads.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz", "https://zlib.net/fossils/zlib-1.2.11.tar.gz", ], ) http_archive( name = "com_github_nelhage_rules_boost", # 2021-08-27T15:46:06Z patch_cmds = ["sed -i 's/net_zlib_zlib/com_github_madler_zlib/g' BUILD.boost"], patch_cmds_win = [ """$content = (Get-Content 'BUILD.boost') -replace "net_zlib_zlib", "com_github_madler_zlib" Set-Content BUILD.boost -Value $content -Encoding UTF8 """, ], sha256 = "2d0b2eef7137730dbbb180397fe9c3d601f8f25950c43222cb3ee85256a21869", strip_prefix = "rules_boost-fce83babe3f6287bccb45d2df013a309fa3194b8", urls = [ "https://github.com/nelhage/rules_boost/archive/fce83babe3f6287bccb45d2df013a309fa3194b8.tar.gz", ], ) http_archive( name = "com_google_absl", # 2021-09-27T18:06:52Z sha256 = "2f0d9c7bc770f32bda06a9548f537b63602987d5a173791485151aba28a90099", strip_prefix = "abseil-cpp-7143e49e74857a009e16c51f6076eb197b6ccb49", urls = ["https://github.com/abseil/abseil-cpp/archive/7143e49e74857a009e16c51f6076eb197b6ccb49.zip"], ) http_archive( name = "com_google_googletest", # 2021-07-09T13:28:13Z sha256 = "12ef65654dc01ab40f6f33f9d02c04f2097d2cd9fbe48dc6001b29543583b0ad", strip_prefix = "googletest-8d51ffdfab10b3fba636ae69bc03da4b54f8c235", urls = ["https://github.com/google/googletest/archive/8d51ffdfab10b3fba636ae69bc03da4b54f8c235.zip"], ) http_archive( name = "com_google_protobuf", # 2021-10-29T00:04:02Z build_file = "//bazel/third_party/protobuf:protobuf.BUILD", patch_cmds = [ "sed -i protobuf.bzl -re '4,4d;417,508d'", ], patch_cmds_win = [ """$content = Get-Content 'protobuf.bzl' | Where-Object { -not ($_.ReadCount -ne 4) -and -not ($_.ReadCount -ge 418 -and $_.ReadCount -le 509) } Set-Content protobuf.bzl -Value $content -Encoding UTF8 """, ], sha256 = "87407cd28e7a9c95d9f61a098a53cf031109d451a7763e7dd1253abf8b4df422", strip_prefix = "protobuf-3.19.1", urls = ["https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.19.1.tar.gz"], ) # bRPC cannot use boringssl. Build openssl. http_archive( name = "openssl", # 2021-12-14T15:45:01Z build_file = "//bazel/third_party/openssl:openssl.BUILD", sha256 = "f89199be8b23ca45fc7cb9f1d8d3ee67312318286ad030f5316aca6462db6c96", strip_prefix = "openssl-1.1.1m", urls = [ "https://www.openssl.org/source/openssl-1.1.1m.tar.gz", "https://github.com/openssl/openssl/archive/OpenSSL_1_1_1m.tar.gz", ], ) http_archive( name = "org_apache_thrift", # 2021-09-11T11:54:01Z build_file = "//bazel/third_party/thrift:thrift.BUILD", sha256 = "d5883566d161f8f6ddd4e21f3a9e3e6b8272799d054820f1c25b11e86718f86b", strip_prefix = "thrift-0.15.0", urls = ["https://archive.apache.org/dist/thrift/0.15.0/thrift-0.15.0.tar.gz"], ) # # Perl Dependencies # load("@rules_perl//perl:deps.bzl", "perl_register_toolchains") perl_register_toolchains() # # Tools Dependencies # http_archive( name = "com_grail_bazel_compdb", sha256 = "d32835b26dd35aad8fd0ba0d712265df6565a3ad860d39e4c01ad41059ea7eda", strip_prefix = "bazel-compilation-database-0.5.2", urls = ["https://github.com/grailbio/bazel-compilation-database/archive/0.5.2.tar.gz"], ) load("@com_grail_bazel_compdb//:deps.bzl", "bazel_compdb_deps") bazel_compdb_deps()