...

Text file src/github.com/bazelbuild/rules_go/go/private/rules/info.bzl

Documentation: github.com/bazelbuild/rules_go/go/private/rules

     1# Copyright 2014 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:context.bzl",
    17    "go_context",
    18)
    19load(
    20    "//go/private:common.bzl",
    21    "GO_TOOLCHAIN",
    22)
    23
    24def _go_info_impl(ctx):
    25    go = go_context(ctx)
    26    report = go.declare_file(go, ext = ".txt")
    27    args = go.builder_args(go)
    28    args.add("-out", report)
    29    go.actions.run(
    30        inputs = go.sdk_files,
    31        outputs = [report],
    32        mnemonic = "GoInfo",
    33        executable = ctx.executable._go_info,
    34        arguments = [args],
    35    )
    36    return [DefaultInfo(
    37        files = depset([report]),
    38        runfiles = ctx.runfiles([report]),
    39    )]
    40
    41_go_info = rule(
    42    implementation = _go_info_impl,
    43    attrs = {
    44        "_go_info": attr.label(
    45            executable = True,
    46            cfg = "exec",
    47            default = "//go/tools/builders:info",
    48        ),
    49        "_go_context_data": attr.label(
    50            default = "//:go_context_data",
    51        ),
    52    },
    53    toolchains = [GO_TOOLCHAIN],
    54)
    55
    56def go_info():
    57    _go_info(
    58        name = "go_info",
    59        visibility = ["//visibility:public"],
    60    )

View as plain text