...
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 )
View as plain text