1# 2# Copyright 2017 The Abseil Authors. 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# https://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# 16 17load("@bazel_skylib//lib:selects.bzl", "selects") 18 19package(default_visibility = ["//visibility:public"]) 20 21licenses(["notice"]) 22 23config_setting( 24 name = "clang_compiler", 25 flag_values = { 26 "@bazel_tools//tools/cpp:compiler": "clang", 27 }, 28 visibility = [":__subpackages__"], 29) 30 31config_setting( 32 name = "gcc_compiler", 33 flag_values = { 34 "@bazel_tools//tools/cpp:compiler": "gcc", 35 }, 36 visibility = [":__subpackages__"], 37) 38 39config_setting( 40 name = "mingw_unspecified_compiler", 41 flag_values = { 42 "@bazel_tools//tools/cpp:compiler": "mingw", 43 }, 44 visibility = [":__subpackages__"], 45) 46 47config_setting( 48 name = "mingw-gcc_compiler", 49 flag_values = { 50 "@bazel_tools//tools/cpp:compiler": "mingw-gcc", 51 }, 52 visibility = [":__subpackages__"], 53) 54 55config_setting( 56 name = "msvc_compiler", 57 flag_values = { 58 "@bazel_tools//tools/cpp:compiler": "msvc-cl", 59 }, 60 visibility = [":__subpackages__"], 61) 62 63config_setting( 64 name = "clang-cl_compiler", 65 flag_values = { 66 "@bazel_tools//tools/cpp:compiler": "clang-cl", 67 }, 68 visibility = [":__subpackages__"], 69) 70 71# x64_windows-clang-cl - used for selecting clang-cl for CI builds 72platform( 73 name = "x64_windows-clang-cl", 74 constraint_values = [ 75 "@platforms//cpu:x86_64", 76 "@platforms//os:windows", 77 "@bazel_tools//tools/cpp:clang-cl", 78 ], 79 visibility = [":__subpackages__"], 80) 81 82config_setting( 83 name = "osx", 84 constraint_values = [ 85 "@platforms//os:osx", 86 ], 87) 88 89config_setting( 90 name = "ios", 91 constraint_values = [ 92 "@platforms//os:ios", 93 ], 94) 95 96config_setting( 97 name = "ppc", 98 values = { 99 "cpu": "ppc", 100 }, 101 visibility = [":__subpackages__"], 102) 103 104config_setting( 105 name = "cpu_wasm", 106 values = { 107 "cpu": "wasm", 108 }, 109 visibility = [":__subpackages__"], 110) 111 112config_setting( 113 name = "cpu_wasm32", 114 values = { 115 "cpu": "wasm32", 116 }, 117 visibility = [":__subpackages__"], 118) 119 120config_setting( 121 name = "platforms_wasm32", 122 constraint_values = [ 123 "@platforms//cpu:wasm32", 124 ], 125 visibility = [":__subpackages__"], 126) 127 128config_setting( 129 name = "platforms_wasm64", 130 constraint_values = [ 131 "@platforms//cpu:wasm64", 132 ], 133 visibility = [":__subpackages__"], 134) 135 136selects.config_setting_group( 137 name = "wasm", 138 match_any = [ 139 ":cpu_wasm", 140 ":cpu_wasm32", 141 ":platforms_wasm32", 142 ":platforms_wasm64", 143 ], 144 visibility = [":__subpackages__"], 145) 146 147config_setting( 148 name = "fuchsia", 149 values = { 150 "cpu": "fuchsia", 151 }, 152 visibility = [":__subpackages__"], 153) 154 155selects.config_setting_group( 156 name = "mingw_compiler", 157 match_any = [ 158 ":mingw_unspecified_compiler", 159 ":mingw-gcc_compiler", 160 ], 161 visibility = [":__subpackages__"], 162) 163