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

     1  package composite
     2  
     3  import (
     4  	"github.com/metux/go-metabuild/engine/builder/c"
     5  	"github.com/metux/go-metabuild/engine/builder/gen"
     6  	"github.com/metux/go-metabuild/spec"
     7  	"github.com/metux/go-metabuild/util/jobs"
     8  )
     9  
    10  type CompositeGlibResource struct {
    11  	c.BaseCBuilder
    12  }
    13  
    14  func (b CompositeGlibResource) jobGen() jobs.Job {
    15  	builderGen := gen.MakeGlibResource(b.SubTarget("generate"), b.JobId()+"/generate")
    16  	builderGen.LoadTargetDefaults()
    17  	return builderGen
    18  }
    19  
    20  func (b CompositeGlibResource) jobLib() jobs.Job {
    21  	builderLib := c.MakeCLibrary(b.SubTarget("library"), b.JobId()+"/library")
    22  	builderLib.LoadTargetDefaults()
    23  	return builderLib
    24  }
    25  
    26  func (b CompositeGlibResource) JobSub() ([]jobs.Job, error) {
    27  	jobs := []jobs.Job{b.jobGen(), b.jobLib()}
    28  
    29  	// needed a 2nd time, so we can overwrite sub's template by ours
    30  	b.LoadTargetDefaults()
    31  
    32  	return jobs, nil
    33  }
    34  
    35  func MakeGlibResource(o spec.TargetObject, id string) CompositeGlibResource {
    36  	return CompositeGlibResource{BaseCBuilder: c.MakeBaseCBuilder(o, id)}
    37  }