github.com/metux/go-metabuild@v0.0.0-20240118143255-d9ed5ab697f9/engine/builder/gen/gresource.go (about)

     1  package gen
     2  
     3  import (
     4  	"github.com/metux/go-metabuild/engine/builder/base"
     5  	"github.com/metux/go-metabuild/spec"
     6  	"github.com/metux/go-metabuild/spec/target"
     7  )
     8  
     9  type GlibResource struct {
    10  	base.BaseBuilder
    11  }
    12  
    13  func (b GlibResource) JobRun() error {
    14  	cheader := b.RequiredEntryStr(target.KeyOutputCHeader)
    15  	csource := b.RequiredEntryStr(target.KeyOutputCSource)
    16  	gresource := b.RequiredEntryStr(target.KeyOutputGResource)
    17  
    18  	c1 := append(b.BuilderCmd(), b.RequiredSourceAbs())
    19  
    20  	if srcdir := b.EntryStr(target.KeyIncludeDir); srcdir != "" {
    21  		c1 = append(c1, "--sourcedir="+srcdir)
    22  	}
    23  
    24  	b.ExecAbort(append(c1, "--target="+cheader, "--generate-header"), "")
    25  	b.ExecAbort(append(c1, "--target="+csource, "--generate-source"), "")
    26  	b.ExecAbort(append(c1, "--target="+gresource), "")
    27  
    28  	return nil
    29  }
    30  
    31  func MakeGlibResource(o spec.TargetObject, id string) GlibResource {
    32  	return GlibResource{base.BaseBuilder{o, id}}
    33  }