1# Copyright 2017 The Bazel Authors. All rights reserved. 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15load( 16 "//go/private:platforms.bzl", 17 _GOARCH = "GOARCH_CONSTRAINTS", 18 _GOOS = "GOOS_CONSTRAINTS", 19 _GOOS_GOARCH = "GOOS_GOARCH", 20 _MSAN_GOOS_GOARCH = "MSAN_GOOS_GOARCH", 21 _RACE_GOOS_GOARCH = "RACE_GOOS_GOARCH", 22) 23 24GOOS_GOARCH = _GOOS_GOARCH 25GOOS = _GOOS 26GOARCH = _GOARCH 27RACE_GOOS_GOARCH = _RACE_GOOS_GOARCH 28MSAN_GOOS_GOARCH = _MSAN_GOOS_GOARCH 29 30def declare_config_settings(): 31 """Generates config_setting targets. 32 33 declare_config_settings declares a config_setting target for each goos, 34 goarch, and valid goos_goarch pair. These targets may be used in select 35 expressions. Each target refers to a corresponding constraint_value in 36 //go/toolchain. 37 """ 38 for goos in GOOS: 39 native.config_setting( 40 name = goos, 41 constraint_values = [Label("//go/toolchain:" + goos)], 42 visibility = ["//visibility:public"], 43 ) 44 for goarch in GOARCH: 45 native.config_setting( 46 name = goarch, 47 constraint_values = [Label("//go/toolchain:" + goarch)], 48 visibility = ["//visibility:public"], 49 ) 50 for goos, goarch in GOOS_GOARCH: 51 native.config_setting( 52 name = goos + "_" + goarch, 53 constraint_values = [ 54 Label("//go/toolchain:" + goos), 55 Label("//go/toolchain:" + goarch), 56 ], 57 visibility = ["//visibility:public"], 58 ) 59 60 # Setting that determines whether cgo is enabled. 61 # This is experimental and may be changed or removed when we migrate 62 # to build settings. 63 native.config_setting( 64 name = "internal_cgo_off", 65 constraint_values = [Label("//go/toolchain:cgo_off")], 66 visibility = [Label("//:__pkg__")], 67 ) 68