github.com/metux/go-metabuild@v0.0.0-20240118143255-d9ed5ab697f9/spec/buildconf/main.go (about) 1 package buildconf 2 3 import ( 4 "strings" 5 6 "github.com/metux/go-metabuild/spec/features" 7 "github.com/metux/go-metabuild/util/specobj" 8 ) 9 10 type Key = specobj.Key 11 type SpecObj = specobj.SpecObj 12 13 const ( 14 KeyCheckConfig = Key("config") 15 KeyPackages = Key("packages") 16 KeyFlags = Key("flags") 17 KeyVersion = Key("version") 18 KeyAuthors = Key("authors") 19 KeyLinguas = Key("linguas") 20 ) 21 22 type BuildConf struct { 23 specobj.SpecObj 24 Features features.FeatureMap 25 } 26 27 // define a conditional/switch symbol 28 func (bc BuildConf) ConfigBool(sym string, val bool) { 29 bc.KConfBool(sym, val) 30 bc.ACBool(sym, val) 31 } 32 33 func (bc BuildConf) ConfigStr(sym string, val string) { 34 bc.KConfStr(sym, val) 35 bc.ACStr(sym, val) 36 } 37 38 func (bc BuildConf) ConfigStrList(sym string, val []string) { 39 bc.ConfigStr(sym, strings.Join(val, " ")) 40 } 41 42 func (bc BuildConf) PkgNameTrans(id string) string { 43 return bc.TargetDistro().PackageNameTrans(id) 44 } 45 46 func (bc BuildConf) Init() { 47 bc.DefaultPutStr("@features", "${features}") 48 bc.DefaultPutStr(KeyBuildDir, BuildDir) 49 bc.DefaultPutStr(KeyBuildDirTmp, BuildDirTmp) 50 bc.DefaultPutStr(KeyBuildDirDist, BuildDirDist) 51 } 52 53 func (bc BuildConf) Flags(build bool) SpecObj { 54 return bc.SubForBuild(build, KeyFlags) 55 }