github.com/metux/go-metabuild@v0.0.0-20240118143255-d9ed5ab697f9/engine/builder/gen/xdtcsource.go (about) 1 package gen 2 3 import ( 4 "io/ioutil" 5 6 "github.com/metux/go-metabuild/engine/builder/base" 7 "github.com/metux/go-metabuild/spec" 8 "github.com/metux/go-metabuild/spec/target" 9 "github.com/metux/go-metabuild/util" 10 "github.com/metux/go-metabuild/util/fileutil" 11 "github.com/metux/go-metabuild/util/strs" 12 ) 13 14 type XdtCSource struct { 15 base.BaseBuilder 16 } 17 18 func (b XdtCSource) JobRun() error { 19 src := b.Sources()[0] 20 cheader := b.RequiredEntryStr(target.KeyOutputCHeader) 21 resname := b.RequiredEntryStr(target.KeyResourceName) 22 23 raw, err := ioutil.ReadFile(src) 24 util.ErrPanicf(err, "failed reading input: "+src) 25 26 return fileutil.WriteText(cheader, strs.XdtCSource(string(raw), src, resname)) 27 } 28 29 func MakeXdtCSource(o spec.TargetObject, id string) XdtCSource { 30 return XdtCSource{base.BaseBuilder{o, id}} 31 }