summaryrefslogtreecommitdiffstats
path: root/src/jaegertracing/opentelemetry-cpp/bazel/repository.bzl
diff options
context:
space:
mode:
Diffstat (limited to 'src/jaegertracing/opentelemetry-cpp/bazel/repository.bzl')
-rw-r--r--src/jaegertracing/opentelemetry-cpp/bazel/repository.bzl181
1 files changed, 181 insertions, 0 deletions
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/",
+ )