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  }