diff options
Diffstat (limited to 'libgo/go/cmd/go/internal/imports/tags.go')
-rw-r--r-- | libgo/go/cmd/go/internal/imports/tags.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/libgo/go/cmd/go/internal/imports/tags.go b/libgo/go/cmd/go/internal/imports/tags.go new file mode 100644 index 00000000000..1c22a472b80 --- /dev/null +++ b/libgo/go/cmd/go/internal/imports/tags.go @@ -0,0 +1,34 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package imports + +import "cmd/go/internal/cfg" + +var tags map[string]bool + +func Tags() map[string]bool { + if tags == nil { + tags = loadTags() + } + return tags +} + +func loadTags() map[string]bool { + tags := map[string]bool{ + cfg.BuildContext.GOOS: true, + cfg.BuildContext.GOARCH: true, + cfg.BuildContext.Compiler: true, + } + if cfg.BuildContext.CgoEnabled { + tags["cgo"] = true + } + for _, tag := range cfg.BuildContext.BuildTags { + tags[tag] = true + } + for _, tag := range cfg.BuildContext.ReleaseTags { + tags[tag] = true + } + return tags +} |