...

Text file src/github.com/bazelbuild/rules_go/go/platform/list.bzl

Documentation: github.com/bazelbuild/rules_go/go/platform

     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