| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- # Copyright The OpenTelemetry Authors
- # SPDX-License-Identifier: Apache-2.0
- load("@bazel_skylib//rules:common_settings.bzl", "bool_flag", "int_flag", "string_flag")
- package(default_visibility = ["//visibility:public"])
- CPP_STDLIBS = [
- "none",
- "best",
- "2014",
- "2017",
- "2020",
- "2023",
- ]
- string_flag(
- name = "with_cxx_stdlib",
- build_setting_default = "best",
- values = CPP_STDLIBS,
- )
- cc_library(
- name = "api",
- hdrs = glob(["include/**/*.h"]),
- defines = select({
- ":set_cxx_stdlib_none": [],
- ### automatic selection
- ":set_cxx_stdlib_best": ["OPENTELEMETRY_STL_VERSION=(__cplusplus/100)"],
- # See https://learn.microsoft.com/en-us/cpp/build/reference/zc-cplusplus
- ":set_cxx_stdlib_best_and_msvc": ["OPENTELEMETRY_STL_VERSION=(_MSVC_LANG/100)"],
- ### manual selection
- ":set_cxx_stdlib_2014": ["OPENTELEMETRY_STL_VERSION=2014"],
- ":set_cxx_stdlib_2017": ["OPENTELEMETRY_STL_VERSION=2017"],
- ":set_cxx_stdlib_2020": ["OPENTELEMETRY_STL_VERSION=2020"],
- ":set_cxx_stdlib_2023": ["OPENTELEMETRY_STL_VERSION=2023"],
- "//conditions:default": [],
- }) + select({
- ":abi_version_no_1": ["OPENTELEMETRY_ABI_VERSION_NO=1"],
- ":abi_version_no_2": ["OPENTELEMETRY_ABI_VERSION_NO=2"],
- }),
- strip_include_prefix = "include",
- tags = ["api"],
- deps = [
- "@com_google_absl//absl/base",
- "@com_google_absl//absl/strings",
- "@com_google_absl//absl/types:variant",
- ],
- )
- [config_setting(
- name = "set_cxx_stdlib_%s" % v,
- flag_values = {":with_cxx_stdlib": v},
- ) for v in CPP_STDLIBS]
- config_setting(
- name = "set_cxx_stdlib_best_and_msvc",
- constraint_values = ["@bazel_tools//tools/cpp:msvc"],
- flag_values = {":with_cxx_stdlib": "best"},
- )
- bool_flag(
- name = "with_abseil",
- build_setting_default = False,
- deprecation = "The value of this flag is ignored. Bazel builds always depend on Abseil for its pre-adopted `std::` types. You should remove this flag from your build command.",
- )
- int_flag(
- name = "abi_version_no",
- build_setting_default = 1,
- )
- config_setting(
- name = "abi_version_no_1",
- flag_values = {":abi_version_no": "1"},
- )
- config_setting(
- name = "abi_version_no_2",
- flag_values = {":abi_version_no": "2"},
- )
|