summaryrefslogtreecommitdiff
path: root/libgo/go/cmd/go/internal/imports/tags.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/cmd/go/internal/imports/tags.go')
-rw-r--r--libgo/go/cmd/go/internal/imports/tags.go34
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
+}