1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
//go:build !windows
package main
import (
"flag"
"go/build/constraint"
)
// buildTags is a comma-separated list of build tags.
//
// This follows the pre-Go 1.17 syntax and is kept for compatibility reasons.
type buildTags struct {
Expr constraint.Expr
}
var _ flag.Value = (*buildTags)(nil)
func (bt *buildTags) String() string {
if bt.Expr == nil {
return ""
}
return (bt.Expr).String()
}
func (bt *buildTags) Set(value string) error {
ct, err := constraint.Parse("// +build " + value)
if err != nil {
return err
}
bt.Expr = ct
return nil
}
func andConstraints(x, y constraint.Expr) constraint.Expr {
if x == nil {
return y
}
if y == nil {
return x
}
return &constraint.AndExpr{X: x, Y: y}
}
|