| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | # Copyright The OpenTelemetry Authors# SPDX-License-Identifier: Apache-2.0load("@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"},)
 |