github.com/bazelbuild/rules_go@v0.47.2-0.20240515105122-e7ddb9ea474e/go/private/rules/info.bzl (about) 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 15 load( 16 "//go/private:common.bzl", 17 "GO_TOOLCHAIN", 18 ) 19 load( 20 "//go/private:context.bzl", 21 "go_context", 22 ) 23 24 def _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 56 def go_info(): 57 _go_info( 58 name = "go_info", 59 visibility = ["//visibility:public"], 60 )