123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- /* Copyright 2018 The Bazel Authors. All rights reserved.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
- package golang
- import "github.com/bazelbuild/bazel-gazelle/internal/rule"
- var goKinds = map[string]rule.KindInfo{
- "filegroup": {
- NonEmptyAttrs: map[string]bool{"srcs": true},
- MergeableAttrs: map[string]bool{"srcs": true},
- },
- "go_binary": {
- MatchAny: true,
- NonEmptyAttrs: map[string]bool{
- "deps": true,
- "embed": true,
- "srcs": true,
- },
- SubstituteAttrs: map[string]bool{"embed": true},
- MergeableAttrs: map[string]bool{
- "cgo": true,
- "clinkopts": true,
- "copts": true,
- "embed": true,
- "srcs": true,
- },
- ResolveAttrs: map[string]bool{"deps": true},
- },
- "go_library": {
- MatchAttrs: []string{"importpath"},
- NonEmptyAttrs: map[string]bool{
- "deps": true,
- "embed": true,
- "srcs": true,
- },
- SubstituteAttrs: map[string]bool{
- "embed": true,
- },
- MergeableAttrs: map[string]bool{
- "cgo": true,
- "clinkopts": true,
- "copts": true,
- "embed": true,
- "importmap": true,
- "importpath": true,
- "srcs": true,
- },
- ResolveAttrs: map[string]bool{"deps": true},
- },
- "go_proto_library": {
- MatchAttrs: []string{"importpath"},
- NonEmptyAttrs: map[string]bool{
- "deps": true,
- "embed": true,
- "proto": true,
- "srcs": true,
- },
- SubstituteAttrs: map[string]bool{"proto": true},
- MergeableAttrs: map[string]bool{
- "srcs": true,
- "importpath": true,
- "importmap": true,
- "cgo": true,
- "clinkopts": true,
- "copts": true,
- "embed": true,
- "proto": true,
- },
- ResolveAttrs: map[string]bool{"deps": true},
- },
- "go_repository": {
- MatchAttrs: []string{"importpath"},
- NonEmptyAttrs: nil, // never empty
- MergeableAttrs: map[string]bool{
- "commit": true,
- "importpath": true,
- "remote": true,
- "sha256": true,
- "strip_prefix": true,
- "tag": true,
- "type": true,
- "urls": true,
- "vcs": true,
- },
- },
- "go_test": {
- NonEmptyAttrs: map[string]bool{
- "deps": true,
- "embed": true,
- "srcs": true,
- },
- MergeableAttrs: map[string]bool{
- "cgo": true,
- "clinkopts": true,
- "copts": true,
- "embed": true,
- "srcs": true,
- },
- ResolveAttrs: map[string]bool{"deps": true},
- },
- }
- var goLoads = []rule.LoadInfo{
- {
- Name: "@io_bazel_rules_go//go:def.bzl",
- Symbols: []string{
- "cgo_library",
- "go_binary",
- "go_library",
- "go_prefix",
- "go_repository",
- "go_test",
- },
- }, {
- Name: "@io_bazel_rules_go//proto:def.bzl",
- Symbols: []string{
- "go_grpc_library",
- "go_proto_library",
- },
- }, {
- Name: "@bazel_gazelle//:deps.bzl",
- Symbols: []string{
- "go_repository",
- },
- After: []string{
- "go_rules_dependencies",
- "go_register_toolchains",
- "gazelle_dependencies",
- },
- },
- }
- func (_ *goLang) Kinds() map[string]rule.KindInfo { return goKinds }
- func (_ *goLang) Loads() []rule.LoadInfo { return goLoads }
|