summaryrefslogtreecommitdiffstats
path: root/src/jaegertracing/opentelemetry-cpp/bazel
diff options
context:
space:
mode:
Diffstat (limited to 'src/jaegertracing/opentelemetry-cpp/bazel')
-rw-r--r--src/jaegertracing/opentelemetry-cpp/bazel/BUILD6
-rw-r--r--src/jaegertracing/opentelemetry-cpp/bazel/curl.BUILD56
-rw-r--r--src/jaegertracing/opentelemetry-cpp/bazel/curl.bzl201
-rw-r--r--src/jaegertracing/opentelemetry-cpp/bazel/nlohmann_json.BUILD14
-rw-r--r--src/jaegertracing/opentelemetry-cpp/bazel/opentelemetry_proto.BUILD123
-rw-r--r--src/jaegertracing/opentelemetry-cpp/bazel/otel_cc_benchmark.bzl49
-rw-r--r--src/jaegertracing/opentelemetry-cpp/bazel/repository.bzl181
7 files changed, 630 insertions, 0 deletions
diff --git a/src/jaegertracing/opentelemetry-cpp/bazel/BUILD b/src/jaegertracing/opentelemetry-cpp/bazel/BUILD
new file mode 100644
index 000000000..2d352a7d3
--- /dev/null
+++ b/src/jaegertracing/opentelemetry-cpp/bazel/BUILD
@@ -0,0 +1,6 @@
+package(default_visibility = ["//:__subpackages__"])
+
+config_setting(
+ name = "windows",
+ constraint_values = ["@bazel_tools//platforms:windows"],
+)
diff --git a/src/jaegertracing/opentelemetry-cpp/bazel/curl.BUILD b/src/jaegertracing/opentelemetry-cpp/bazel/curl.BUILD
new file mode 100644
index 000000000..2c668b895
--- /dev/null
+++ b/src/jaegertracing/opentelemetry-cpp/bazel/curl.BUILD
@@ -0,0 +1,56 @@
+# Builds CURL from a distribution.
+
+load("@io_opentelemetry_cpp//bazel:curl.bzl", "CURL_COPTS")
+
+package(features = ["no_copts_tokenization"])
+
+config_setting(
+ name = "windows",
+ constraint_values = [
+ "@bazel_tools//platforms:windows",
+ ],
+ visibility = ["//visibility:private"],
+)
+
+config_setting(
+ name = "osx",
+ constraint_values = [
+ "@bazel_tools//platforms:osx",
+ ],
+ visibility = ["//visibility:private"],
+)
+
+cc_library(
+ name = "curl",
+ srcs = glob([
+ "lib/**/*.c",
+ ]),
+ hdrs = glob([
+ "include/curl/*.h",
+ "lib/**/*.h",
+ ]),
+ copts = CURL_COPTS + [
+ "-DOS=\"os\"",
+ ],
+ defines = ["CURL_STATICLIB"],
+ includes = [
+ "include/",
+ "lib/",
+ ],
+ linkopts = select({
+ "//:windows": [
+ "-DEFAULTLIB:ws2_32.lib",
+ "-DEFAULTLIB:advapi32.lib",
+ "-DEFAULTLIB:crypt32.lib",
+ "-DEFAULTLIB:Normaliz.lib",
+ ],
+ "//:osx": [
+ "-framework SystemConfiguration",
+ "-lpthread",
+ ],
+ "//conditions:default": [
+ "-lpthread",
+ ],
+ }),
+ visibility = ["//visibility:public"],
+)
diff --git a/src/jaegertracing/opentelemetry-cpp/bazel/curl.bzl b/src/jaegertracing/opentelemetry-cpp/bazel/curl.bzl
new file mode 100644
index 000000000..6a887c50c
--- /dev/null
+++ b/src/jaegertracing/opentelemetry-cpp/bazel/curl.bzl
@@ -0,0 +1,201 @@
+# Copyright 2020, OpenTelemetry 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
+#
+# 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.
+
+# Compiler options for building libcurl.
+
+BASE_CURL_COPTS = [
+ # Disable everything else except HTTP protocol.
+ "-DHTTP_ONLY=1",
+ "-DENABLE_IPV6=1",
+ "-DGETHOSTNAME_TYPE_ARG2=size_t",
+ "-DGETSERVBYPORT_R_ARGS=6",
+ "-DGETSERVBYPORT_R_BUFSIZE=4096",
+ "-DHAVE_ALARM=1",
+ "-DHAVE_ALLOCA_H=1",
+ "-DHAVE_ARPA_INET_H=1",
+ "-DHAVE_ARPA_TFTP_H=1",
+ "-DHAVE_ASSERT_H=1",
+ "-DHAVE_BASENAME=1",
+ "-DHAVE_BOOL_T=1",
+ "-DHAVE_CLOCK_GETTIME_MONOTONIC=1",
+ "-DHAVE_CONNECT=1",
+ "-DHAVE_DLFCN_H=1",
+ "-DHAVE_ENGINE_LOAD_BUILTIN_ENGINES=1",
+ "-DHAVE_ERRNO_H=1",
+ "-DHAVE_FCNTL=1",
+ "-DHAVE_FCNTL_H=1",
+ "-DHAVE_FCNTL_O_NONBLOCK=1",
+ "-DHAVE_FDOPEN=1",
+ "-DHAVE_FREEADDRINFO=1",
+ "-DHAVE_FREEIFADDRS=1",
+ "-DHAVE_FSETXATTR=1",
+ "-DHAVE_FSETXATTR_5=1",
+ "-DHAVE_FTRUNCATE=1",
+ "-DHAVE_GAI_STRERROR=1",
+ "-DHAVE_GETADDRINFO=1",
+ "-DHAVE_GETADDRINFO_THREADSAFE=1",
+ "-DHAVE_GETEUID=1",
+ "-DHAVE_GETHOSTBYADDR=1",
+ "-DHAVE_GETHOSTBYADDR_R=1",
+ "-DHAVE_GETHOSTBYADDR_R_8=1",
+ "-DHAVE_GETHOSTBYNAME=1",
+ "-DHAVE_GETHOSTBYNAME_R=1",
+ "-DHAVE_GETHOSTBYNAME_R_6=1",
+ "-DHAVE_GETHOSTNAME=1",
+ "-DHAVE_GETIFADDRS=1",
+ "-DHAVE_GETNAMEINFO=1",
+ "-DHAVE_GETPPID=1",
+ "-DHAVE_GETPWUID=1",
+ "-DHAVE_GETPWUID_R=1",
+ "-DHAVE_GETRLIMIT=1",
+ "-DHAVE_GETSERVBYPORT_R=1",
+ "-DHAVE_GETTIMEOFDAY=1",
+ "-DHAVE_GMTIME_R=1",
+ "-DHAVE_IFADDRS_H=1",
+ "-DHAVE_IF_NAMETOINDEX=1",
+ "-DHAVE_INET_NTOP=1",
+ "-DHAVE_INET_PTON=1",
+ "-DHAVE_INTTYPES_H=1",
+ "-DHAVE_IOCTL=1",
+ "-DHAVE_IOCTL_FIONBIO=1",
+ "-DHAVE_IOCTL_SIOCGIFADDR=1",
+ "-DHAVE_LIBGEN_H=1",
+ "-DHAVE_LL=1",
+ "-DHAVE_LOCALE_H=1",
+ "-DHAVE_LOCALTIME_R=1",
+ "-DHAVE_LONGLONG=1",
+ "-DHAVE_MALLOC_H=1",
+ "-DHAVE_MEMORY_H=1",
+ "-DHAVE_NETDB_H=1",
+ "-DHAVE_NETINET_IN_H=1",
+ "-DHAVE_NETINET_TCP_H=1",
+ "-DHAVE_NET_IF_H=1",
+ "-DHAVE_PIPE=1",
+ "-DHAVE_POLL=1",
+ "-DHAVE_POLL_FINE=1",
+ "-DHAVE_POLL_H=1",
+ "-DHAVE_POSIX_STRERROR_R=1",
+ "-DHAVE_PTHREAD_H=1",
+ "-DHAVE_PWD_H=1",
+ "-DHAVE_RECV=1",
+ "-DHAVE_SELECT=1",
+ "-DHAVE_SEND=1",
+ "-DHAVE_SETJMP_H=1",
+ "-DHAVE_SETLOCALE=1",
+ "-DHAVE_SETRLIMIT=1",
+ "-DHAVE_SETSOCKOPT=1",
+ "-DHAVE_SGTTY_H=1",
+ "-DHAVE_SIGACTION=1",
+ "-DHAVE_SIGINTERRUPT=1",
+ "-DHAVE_SIGNAL=1",
+ "-DHAVE_SIGNAL_H=1",
+ "-DHAVE_SIGSETJMP=1",
+ "-DHAVE_SIG_ATOMIC_T=1",
+ "-DHAVE_SOCKADDR_IN6_SIN6_SCOPE_ID=1",
+ "-DHAVE_SOCKET=1",
+ "-DHAVE_SOCKETPAIR=1",
+ "-DHAVE_STDBOOL_H=1",
+ "-DHAVE_STDINT_H=1",
+ "-DHAVE_STDIO_H=1",
+ "-DHAVE_STDLIB_H=1",
+ "-DHAVE_STRCASECMP=1",
+ "-DHAVE_STRDUP=1",
+ "-DHAVE_STRERROR_R=1",
+ "-DHAVE_STRINGS_H=1",
+ "-DHAVE_STRING_H=1",
+ "-DHAVE_STRNCASECMP=1",
+ "-DHAVE_STRSTR=1",
+ "-DHAVE_STRTOK_R=1",
+ "-DHAVE_STRTOLL=1",
+ "-DHAVE_STRUCT_SOCKADDR_STORAGE=1",
+ "-DHAVE_STRUCT_TIMEVAL=1",
+ "-DHAVE_SYS_IOCTL_H=1",
+ "-DHAVE_SYS_PARAM_H=1",
+ "-DHAVE_SYS_POLL_H=1",
+ "-DHAVE_SYS_RESOURCE_H=1",
+ "-DHAVE_SYS_SELECT_H=1",
+ "-DHAVE_SYS_SOCKET_H=1",
+ "-DHAVE_SYS_STAT_H=1",
+ "-DHAVE_SYS_TIME_H=1",
+ "-DHAVE_SYS_TYPES_H=1",
+ "-DHAVE_SYS_UIO_H=1",
+ "-DHAVE_SYS_UN_H=1",
+ "-DHAVE_SYS_WAIT_H=1",
+ "-DHAVE_SYS_XATTR_H=1",
+ "-DHAVE_TERMIOS_H=1",
+ "-DHAVE_TERMIO_H=1",
+ "-DHAVE_TIME_H=1",
+ "-DHAVE_UNISTD_H=1",
+ "-DHAVE_UTIME=1",
+ "-DHAVE_UTIMES=1",
+ "-DHAVE_UTIME_H=1",
+ "-DHAVE_VARIADIC_MACROS_C99=1",
+ "-DHAVE_VARIADIC_MACROS_GCC=1",
+ "-DHAVE_WRITABLE_ARGV=1",
+ "-DHAVE_WRITEV=1",
+ "-DRECV_TYPE_ARG1=int",
+ "-DRECV_TYPE_ARG2=void*",
+ "-DRECV_TYPE_ARG3=size_t",
+ "-DRECV_TYPE_ARG4=int",
+ "-DRECV_TYPE_RETV=ssize_t",
+ "-DRETSIGTYPE=void",
+ "-DSELECT_QUAL_ARG5=",
+ "-DSELECT_TYPE_ARG1=int",
+ "-DSELECT_TYPE_ARG234=fd_set*",
+ "-DSELECT_TYPE_RETV=int",
+ "-DSEND_QUAL_ARG2=const",
+ "-DSEND_TYPE_ARG1=int",
+ "-DSEND_TYPE_ARG2=void*",
+ "-DSEND_TYPE_ARG3=size_t",
+ "-DSEND_TYPE_ARG4=int",
+ "-DSEND_TYPE_RETV=ssize_t",
+ "-DSIZEOF_CURL_OFF_T=8",
+ "-DSIZEOF_INT=4",
+ "-DSIZEOF_LONG=8",
+ "-DSIZEOF_OFF_T=8",
+ "-DSIZEOF_SHORT=2",
+ "-DSIZEOF_SIZE_T=8",
+ "-DSIZEOF_TIME_T=8",
+ "-DSTDC_HEADERS=1",
+ "-DSTRERROR_R_TYPE_ARG3=size_t",
+ "-DTIME_WITH_SYS_TIME=1",
+ "-DUSE_THREADS_POSIX=1",
+ "-DUSE_UNIX_SOCKETS=1",
+
+ # Extra defines needed by curl
+ "-DBUILDING_LIBCURL",
+ "-DCURL_HIDDEN_SYMBOLS",
+]
+
+LINUX_CURL_COPTS = [
+ "-DHAVE_LINUX_TCP_H=1",
+ "-DHAVE_MSG_NOSIGNAL=1",
+]
+
+CURL_COPTS = select({
+ "//:windows": [
+ # Disable everything else except HTTP protocol.
+ "/DHTTP_ONLY=1",
+ "/DCURL_STATICLIB",
+ "/DWIN32",
+ "/DBUILDING_LIBCURL",
+ "/DUSE_WIN32_IDN",
+ "/DWANT_IDN_PROTOTYPES",
+ "/DUSE_IPV6",
+ "/DUSE_WINDOWS_SSPI",
+ "/DUSE_SCHANNEL",
+ ],
+ "//:osx": BASE_CURL_COPTS,
+ "//conditions:default": BASE_CURL_COPTS + LINUX_CURL_COPTS,
+})
diff --git a/src/jaegertracing/opentelemetry-cpp/bazel/nlohmann_json.BUILD b/src/jaegertracing/opentelemetry-cpp/bazel/nlohmann_json.BUILD
new file mode 100644
index 000000000..cd2d93eef
--- /dev/null
+++ b/src/jaegertracing/opentelemetry-cpp/bazel/nlohmann_json.BUILD
@@ -0,0 +1,14 @@
+licenses(["notice"]) # 3-Clause BSD
+
+exports_files(["LICENSE.MIT"])
+
+cc_library(
+ name = "json",
+ hdrs = glob([
+ "include/**/*.hpp",
+ ]),
+ includes = ["include"],
+ visibility = ["//visibility:public"],
+ alwayslink = 1,
+)
+
diff --git a/src/jaegertracing/opentelemetry-cpp/bazel/opentelemetry_proto.BUILD b/src/jaegertracing/opentelemetry-cpp/bazel/opentelemetry_proto.BUILD
new file mode 100644
index 000000000..35319270d
--- /dev/null
+++ b/src/jaegertracing/opentelemetry-cpp/bazel/opentelemetry_proto.BUILD
@@ -0,0 +1,123 @@
+# Copyright 2020, OpenTelemetry 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
+#
+# 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.
+
+package(default_visibility = ["//visibility:public"])
+
+load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+
+proto_library(
+ name = "common_proto",
+ srcs = [
+ "opentelemetry/proto/common/v1/common.proto",
+ ],
+)
+
+cc_proto_library(
+ name = "common_proto_cc",
+ deps = [":common_proto"],
+)
+
+proto_library(
+ name = "resource_proto",
+ srcs = [
+ "opentelemetry/proto/resource/v1/resource.proto",
+ ],
+ deps = [
+ ":common_proto",
+ ],
+)
+
+cc_proto_library(
+ name = "resource_proto_cc",
+ deps = [":resource_proto"],
+)
+
+proto_library(
+ name = "trace_proto",
+ srcs = [
+ "opentelemetry/proto/trace/v1/trace.proto",
+ ],
+ deps = [
+ ":common_proto",
+ ":resource_proto",
+ ],
+)
+
+cc_proto_library(
+ name = "trace_proto_cc",
+ deps = [":trace_proto"],
+)
+
+proto_library(
+ name = "trace_service_proto",
+ srcs = [
+ "opentelemetry/proto/collector/trace/v1/trace_service.proto",
+ ],
+ deps = [
+ ":trace_proto",
+ ],
+)
+
+cc_proto_library(
+ name = "trace_service_proto_cc",
+ deps = [":trace_service_proto"],
+)
+
+cc_grpc_library(
+ name = "trace_service_grpc_cc",
+ srcs = [":trace_service_proto"],
+ generate_mocks = True,
+ grpc_only = True,
+ deps = [":trace_service_proto_cc"],
+)
+
+proto_library(
+ name = "logs_proto",
+ srcs = [
+ "opentelemetry/proto/logs/v1/logs.proto",
+ ],
+ deps = [
+ ":common_proto",
+ ":resource_proto",
+ ],
+)
+
+cc_proto_library(
+ name = "logs_proto_cc",
+ deps = [":logs_proto"],
+)
+
+proto_library(
+ name = "logs_service_proto",
+ srcs = [
+ "opentelemetry/proto/collector/logs/v1/logs_service.proto",
+ ],
+ deps = [
+ ":logs_proto",
+ ],
+)
+
+cc_proto_library(
+ name = "logs_service_proto_cc",
+ deps = [":logs_service_proto"],
+)
+
+cc_grpc_library(
+ name = "logs_service_grpc_cc",
+ srcs = [":logs_service_proto"],
+ generate_mocks = True,
+ grpc_only = True,
+ deps = [":logs_service_proto_cc"],
+)
diff --git a/src/jaegertracing/opentelemetry-cpp/bazel/otel_cc_benchmark.bzl b/src/jaegertracing/opentelemetry-cpp/bazel/otel_cc_benchmark.bzl
new file mode 100644
index 000000000..c40681917
--- /dev/null
+++ b/src/jaegertracing/opentelemetry-cpp/bazel/otel_cc_benchmark.bzl
@@ -0,0 +1,49 @@
+def otel_cc_benchmark(name, srcs, deps, tags = [""]):
+ """
+ Creates targets for the benchmark and related targets.
+
+ Example:
+
+ otel_cc_benchmark(
+ name = "foo_benchmark",
+ srcs = ["foo_benchmark.cc"],
+ deps = ["//bar"],
+ )
+
+ Creates:
+
+ :foo_benchmark (the benchmark binary)
+ :foo_benchmark_result (results from running the benchmark)
+ :foo_benchmark_smoketest (a fast test that runs a single iteration)
+ """
+
+ # This is the benchmark as a binary, it can be run manually, and is used
+ # to generate the _result below.
+ native.cc_binary(
+ name = name,
+ srcs = srcs,
+ deps = deps + ["@com_github_google_benchmark//:benchmark"],
+ tags = tags + ["manual"],
+ defines = ["BAZEL_BUILD"],
+ )
+
+ # The result of running the benchmark, captured into a text file.
+ native.genrule(
+ name = name + "_result",
+ outs = [name + "_result.json"],
+ tools = [":" + name],
+ tags = tags + ["benchmark_result", "manual"],
+ testonly = True,
+ cmd = "$(location :" + name + (") --benchmark_format=json --benchmark_color=false --benchmark_min_time=.1 &> $@"),
+ )
+
+ # This is run as part of "bazel test ..." to smoke-test benchmarks. It's
+ # meant to complete quickly rather than get accurate results.
+ native.cc_test(
+ name = name + "_smoketest",
+ srcs = srcs,
+ deps = deps + ["@com_github_google_benchmark//:benchmark"],
+ args = ["--benchmark_min_time=0"],
+ tags = tags + ["benchmark"],
+ defines = ["BAZEL_BUILD"],
+ )
diff --git a/src/jaegertracing/opentelemetry-cpp/bazel/repository.bzl b/src/jaegertracing/opentelemetry-cpp/bazel/repository.bzl
new file mode 100644
index 000000000..30a34fb2f
--- /dev/null
+++ b/src/jaegertracing/opentelemetry-cpp/bazel/repository.bzl
@@ -0,0 +1,181 @@
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
+
+_ALL_CONTENT = """
+filegroup(
+ name = "all_srcs",
+ srcs = glob(["**"]),
+ visibility = ["//visibility:public"],
+)
+"""
+
+#
+# MAINTAINER
+#
+# This file is used for the Bazel build.
+#
+# When changing (add, upgrade, remove) dependencies
+# please update:
+# - the CMake build, see file
+# <root>/third_party_release
+# - git submodule, see command
+# git submodule status
+#
+
+def opentelemetry_cpp_deps():
+ """Loads dependencies need to compile the opentelemetry-cpp library."""
+
+ # Google Benchmark library.
+ # Only needed for benchmarks, not to build the OpenTelemetry library.
+ maybe(
+ http_archive,
+ name = "com_github_google_benchmark",
+ sha256 = "1f71c72ce08d2c1310011ea6436b31e39ccab8c2db94186d26657d41747c85d6",
+ strip_prefix = "benchmark-1.6.0",
+ urls = [
+ "https://github.com/google/benchmark/archive/v1.6.0.tar.gz",
+ ],
+ )
+
+ # GoogleTest framework.
+ # Only needed for tests, not to build the OpenTelemetry library.
+ maybe(
+ http_archive,
+ name = "com_google_googletest",
+ sha256 = "a03a7b24b3a0766dc823c9008dd32c56a1183889c04f084653266af22289ab0c",
+ strip_prefix = "googletest-a6dfd3aca7f2f91f95fc7ab650c95a48420d513d",
+ urls = [
+ "https://github.com/google/googletest/archive/a6dfd3aca7f2f91f95fc7ab650c95a48420d513d.tar.gz",
+ ],
+ )
+
+ # Load abseil dependency(optional)
+ maybe(
+ http_archive,
+ name = "com_google_absl",
+ sha256 = "dd7db6815204c2a62a2160e32c55e97113b0a0178b2f090d6bab5ce36111db4b",
+ strip_prefix = "abseil-cpp-20210324.0",
+ urls = [
+ "https://github.com/abseil/abseil-cpp/archive/20210324.0.tar.gz",
+ ],
+ )
+
+ # Load gRPC dependency
+ maybe(
+ http_archive,
+ name = "com_github_grpc_grpc_legacy",
+ sha256 = "024118069912358e60722a2b7e507e9c3b51eeaeee06e2dd9d95d9c16f6639ec",
+ strip_prefix = "grpc-1.39.1",
+ urls = [
+ "https://github.com/grpc/grpc/archive/v1.39.1.tar.gz",
+ ],
+ )
+
+ maybe(
+ http_archive,
+ name = "com_github_grpc_grpc",
+ sha256 = "b74ce7d26fe187970d1d8e2c06a5d3391122f7bc1fdce569aff5e435fb8fe780",
+ strip_prefix = "grpc-1.43.2",
+ urls = [
+ "https://github.com/grpc/grpc/archive/v1.43.2.tar.gz",
+ ],
+ )
+
+ # OTLP Protocol definition
+ maybe(
+ http_archive,
+ name = "com_github_opentelemetry_proto",
+ build_file = "@io_opentelemetry_cpp//bazel:opentelemetry_proto.BUILD",
+ sha256 = "f269fbcb30e17b03caa1decd231ce826e59d7651c0f71c3b28eb5140b4bb5412",
+ strip_prefix = "opentelemetry-proto-0.17.0",
+ urls = [
+ "https://github.com/open-telemetry/opentelemetry-proto/archive/v0.17.0.tar.gz",
+ ],
+ )
+
+ # JSON library
+ maybe(
+ http_archive,
+ name = "github_nlohmann_json",
+ build_file = "@io_opentelemetry_cpp//bazel:nlohmann_json.BUILD",
+ sha256 = "b94997df68856753b72f0d7a3703b7d484d4745c567f3584ef97c96c25a5798e",
+ urls = [
+ "https://github.com/nlohmann/json/releases/download/v3.10.5/include.zip",
+ ],
+ )
+
+ # C++ Prometheus Client library.
+ maybe(
+ http_archive,
+ name = "com_github_jupp0r_prometheus_cpp",
+ sha256 = "07018db604ea3e61f5078583e87c80932ea10c300d979061490ee1b7dc8e3a41",
+ strip_prefix = "prometheus-cpp-1.0.0",
+ urls = [
+ "https://github.com/jupp0r/prometheus-cpp/archive/refs/tags/v1.0.0.tar.gz",
+ ],
+ )
+
+ # libcurl (optional)
+ maybe(
+ http_archive,
+ name = "curl",
+ build_file = "@io_opentelemetry_cpp//bazel:curl.BUILD",
+ sha256 = "ba98332752257b47b9dea6d8c0ad25ec1745c20424f1dd3ff2c99ab59e97cf91",
+ strip_prefix = "curl-7.73.0",
+ urls = ["https://curl.haxx.se/download/curl-7.73.0.tar.gz"],
+ )
+
+ # libthrift (optional)
+ maybe(
+ http_archive,
+ name = "com_github_thrift",
+ build_file_content = _ALL_CONTENT,
+ sha256 = "5ae1c4d16452a22eaf9d802ba7489907147c2b316ff38c9758918552fae5132c",
+ strip_prefix = "thrift-0.14.1",
+ urls = [
+ "https://github.com/apache/thrift/archive/refs/tags/v0.14.1.tar.gz",
+ ],
+ )
+
+ # rules foreign cc
+ maybe(
+ http_archive,
+ name = "rules_foreign_cc",
+ sha256 = "69023642d5781c68911beda769f91fcbc8ca48711db935a75da7f6536b65047f",
+ strip_prefix = "rules_foreign_cc-0.6.0",
+ url = "https://github.com/bazelbuild/rules_foreign_cc/archive/0.6.0.tar.gz",
+ )
+
+ # bazel skylib
+ maybe(
+ http_archive,
+ name = "bazel_skylib",
+ sha256 = "c6966ec828da198c5d9adbaa94c05e3a1c7f21bd012a0b29ba8ddbccb2c93b0d",
+ urls = [
+ "https://github.com/bazelbuild/bazel-skylib/releases/download/1.1.1/bazel-skylib-1.1.1.tar.gz",
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.1.1/bazel-skylib-1.1.1.tar.gz",
+ ],
+ )
+
+ # boost headers from vcpkg
+ maybe(
+ native.new_local_repository,
+ name = "boost_all_hdrs",
+ build_file_content = """
+package(default_visibility = ["//visibility:public"])
+cc_library(
+ name = "boost_all_hdrs",
+ hdrs = glob(
+ ["include/**/*.h*"],
+ ),
+ strip_include_prefix = "include",
+ copts = [
+ "-isystem include",
+ "-fexceptions",
+ ],
+ visibility = ["//visibility:public"],
+)
+ """,
+ path = "tools/vcpkg/installed/x64-windows/",
+ )