From e6918187568dbd01842d8d1d2c808ce16a894239 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 21 Apr 2024 13:54:28 +0200 Subject: Adding upstream version 18.2.2. Signed-off-by: Daniel Baumann --- src/jaegertracing/opentelemetry-cpp/bazel/BUILD | 6 + .../opentelemetry-cpp/bazel/curl.BUILD | 56 ++++++ src/jaegertracing/opentelemetry-cpp/bazel/curl.bzl | 201 +++++++++++++++++++++ .../opentelemetry-cpp/bazel/nlohmann_json.BUILD | 14 ++ .../bazel/opentelemetry_proto.BUILD | 123 +++++++++++++ .../opentelemetry-cpp/bazel/otel_cc_benchmark.bzl | 49 +++++ .../opentelemetry-cpp/bazel/repository.bzl | 181 +++++++++++++++++++ 7 files changed, 630 insertions(+) create mode 100644 src/jaegertracing/opentelemetry-cpp/bazel/BUILD create mode 100644 src/jaegertracing/opentelemetry-cpp/bazel/curl.BUILD create mode 100644 src/jaegertracing/opentelemetry-cpp/bazel/curl.bzl create mode 100644 src/jaegertracing/opentelemetry-cpp/bazel/nlohmann_json.BUILD create mode 100644 src/jaegertracing/opentelemetry-cpp/bazel/opentelemetry_proto.BUILD create mode 100644 src/jaegertracing/opentelemetry-cpp/bazel/otel_cc_benchmark.bzl create mode 100644 src/jaegertracing/opentelemetry-cpp/bazel/repository.bzl (limited to 'src/jaegertracing/opentelemetry-cpp/bazel') 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 +# /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/", + ) -- cgit v1.2.3