1*da0073e9SAndroid Build Coastguard Workerload("@rules_cc//cc:defs.bzl", "cc_library") 2*da0073e9SAndroid Build Coastguard Workerload("@bazel_skylib//rules:common_settings.bzl", "bool_flag", "string_flag") 3*da0073e9SAndroid Build Coastguard Worker 4*da0073e9SAndroid Build Coastguard Workerpackage(default_visibility = ["//visibility:public"]) 5*da0073e9SAndroid Build Coastguard Worker 6*da0073e9SAndroid Build Coastguard Workerbool_flag( 7*da0073e9SAndroid Build Coastguard Worker name = "with_abseil", 8*da0073e9SAndroid Build Coastguard Worker build_setting_default = False, 9*da0073e9SAndroid Build Coastguard Worker) 10*da0073e9SAndroid Build Coastguard Worker 11*da0073e9SAndroid Build Coastguard WorkerCPP_STDLIBS = [ 12*da0073e9SAndroid Build Coastguard Worker "none", 13*da0073e9SAndroid Build Coastguard Worker "best", 14*da0073e9SAndroid Build Coastguard Worker "2014", 15*da0073e9SAndroid Build Coastguard Worker "2017", 16*da0073e9SAndroid Build Coastguard Worker "2020", 17*da0073e9SAndroid Build Coastguard Worker "2023", 18*da0073e9SAndroid Build Coastguard Worker] 19*da0073e9SAndroid Build Coastguard Worker 20*da0073e9SAndroid Build Coastguard Workerstring_flag( 21*da0073e9SAndroid Build Coastguard Worker name = "with_cxx_stdlib", 22*da0073e9SAndroid Build Coastguard Worker build_setting_default = "best", 23*da0073e9SAndroid Build Coastguard Worker values = CPP_STDLIBS, 24*da0073e9SAndroid Build Coastguard Worker) 25*da0073e9SAndroid Build Coastguard Worker 26*da0073e9SAndroid Build Coastguard Workercc_library( 27*da0073e9SAndroid Build Coastguard Worker name = "api", 28*da0073e9SAndroid Build Coastguard Worker hdrs = glob(["include/**/*.h"]), 29*da0073e9SAndroid Build Coastguard Worker defines = select({ 30*da0073e9SAndroid Build Coastguard Worker ":with_external_abseil": ["HAVE_ABSEIL"], 31*da0073e9SAndroid Build Coastguard Worker "//conditions:default": [], 32*da0073e9SAndroid Build Coastguard Worker }) + select({ 33*da0073e9SAndroid Build Coastguard Worker ":set_cxx_stdlib_none": [], 34*da0073e9SAndroid Build Coastguard Worker ### automatic selection 35*da0073e9SAndroid Build Coastguard Worker ":set_cxx_stdlib_best": ["OPENTELEMETRY_STL_VERSION=(__cplusplus/100)"], 36*da0073e9SAndroid Build Coastguard Worker # See https://learn.microsoft.com/en-us/cpp/build/reference/zc-cplusplus 37*da0073e9SAndroid Build Coastguard Worker ":set_cxx_stdlib_best_and_msvc": ["OPENTELEMETRY_STL_VERSION=(_MSVC_LANG/100)"], 38*da0073e9SAndroid Build Coastguard Worker ### manual selection 39*da0073e9SAndroid Build Coastguard Worker ":set_cxx_stdlib_2014": ["OPENTELEMETRY_STL_VERSION=2014"], 40*da0073e9SAndroid Build Coastguard Worker ":set_cxx_stdlib_2017": ["OPENTELEMETRY_STL_VERSION=2017"], 41*da0073e9SAndroid Build Coastguard Worker ":set_cxx_stdlib_2020": ["OPENTELEMETRY_STL_VERSION=2020"], 42*da0073e9SAndroid Build Coastguard Worker ":set_cxx_stdlib_2023": ["OPENTELEMETRY_STL_VERSION=2023"], 43*da0073e9SAndroid Build Coastguard Worker "//conditions:default": [], 44*da0073e9SAndroid Build Coastguard Worker }), 45*da0073e9SAndroid Build Coastguard Worker strip_include_prefix = "include", 46*da0073e9SAndroid Build Coastguard Worker tags = ["api"], 47*da0073e9SAndroid Build Coastguard Worker deps = select({ 48*da0073e9SAndroid Build Coastguard Worker ":with_external_abseil": [ 49*da0073e9SAndroid Build Coastguard Worker "@com_google_absl//absl/base", 50*da0073e9SAndroid Build Coastguard Worker "@com_google_absl//absl/strings", 51*da0073e9SAndroid Build Coastguard Worker "@com_google_absl//absl/types:variant", 52*da0073e9SAndroid Build Coastguard Worker ], 53*da0073e9SAndroid Build Coastguard Worker "//conditions:default": [], 54*da0073e9SAndroid Build Coastguard Worker }), 55*da0073e9SAndroid Build Coastguard Worker) 56*da0073e9SAndroid Build Coastguard Worker 57*da0073e9SAndroid Build Coastguard Workerconfig_setting( 58*da0073e9SAndroid Build Coastguard Worker name = "with_external_abseil", 59*da0073e9SAndroid Build Coastguard Worker flag_values = {":with_abseil": "true"}, 60*da0073e9SAndroid Build Coastguard Worker) 61*da0073e9SAndroid Build Coastguard Worker 62*da0073e9SAndroid Build Coastguard Worker[config_setting( 63*da0073e9SAndroid Build Coastguard Worker name = "set_cxx_stdlib_%s" % v, 64*da0073e9SAndroid Build Coastguard Worker flag_values = {":with_cxx_stdlib": v}, 65*da0073e9SAndroid Build Coastguard Worker) for v in CPP_STDLIBS] 66*da0073e9SAndroid Build Coastguard Worker 67*da0073e9SAndroid Build Coastguard Workerconfig_setting( 68*da0073e9SAndroid Build Coastguard Worker name = "set_cxx_stdlib_best_and_msvc", 69*da0073e9SAndroid Build Coastguard Worker constraint_values = ["@bazel_tools//tools/cpp:msvc"], 70*da0073e9SAndroid Build Coastguard Worker flag_values = {":with_cxx_stdlib": "best"}, 71*da0073e9SAndroid Build Coastguard Worker) 72