Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2f73062d authored by Inseob Kim's avatar Inseob Kim
Browse files

Make genrule's srcs property configurable

This allows using select statements with it.

Bug: 354824866
Test: m
Change-Id: If1d71ac177618ad3eb628cdec57469886ee27c88
parent b114234f
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -139,7 +139,8 @@ type generatorProperties struct {
	Export_include_dirs []string

	// list of input files
	Srcs []string `android:"path,arch_variant"`
	Srcs         proptools.Configurable[[]string] `android:"path,arch_variant"`
	ResolvedSrcs []string                         `blueprint:"mutated"`

	// input files to exclude
	Exclude_srcs []string `android:"path,arch_variant"`
@@ -382,7 +383,8 @@ func (g *Module) generateCommonBuildActions(ctx android.ModuleContext) {
		}
		return srcFiles
	}
	srcFiles := addLabelsForInputs("srcs", g.properties.Srcs, g.properties.Exclude_srcs)
	g.properties.ResolvedSrcs = g.properties.Srcs.GetOrDefault(g.ConfigurableEvaluator(ctx), nil)
	srcFiles := addLabelsForInputs("srcs", g.properties.ResolvedSrcs, g.properties.Exclude_srcs)
	android.SetProvider(ctx, blueprint.SrcsFileProviderKey, blueprint.SrcsFileProviderData{SrcPaths: srcFiles.Strings()})

	var copyFrom android.Paths
@@ -589,7 +591,7 @@ func (g *Module) setOutputFiles(ctx android.ModuleContext) {
// Collect information for opening IDE project files in java/jdeps.go.
func (g *Module) IDEInfo(dpInfo *android.IdeInfo) {
	dpInfo.Srcs = append(dpInfo.Srcs, g.Srcs().Strings()...)
	for _, src := range g.properties.Srcs {
	for _, src := range g.properties.ResolvedSrcs {
		if strings.HasPrefix(src, ":") {
			src = strings.Trim(src, ":")
			dpInfo.Deps = append(dpInfo.Deps, src)
+1 −1
Original line number Diff line number Diff line
@@ -694,7 +694,7 @@ func TestGenruleDefaults(t *testing.T) {
	android.AssertStringEquals(t, "cmd", expectedCmd, gen.rawCommands[0])

	expectedSrcs := []string{"in1"}
	android.AssertDeepEquals(t, "srcs", expectedSrcs, gen.properties.Srcs)
	android.AssertDeepEquals(t, "srcs", expectedSrcs, gen.properties.ResolvedSrcs)
}

func TestGenruleAllowMissingDependencies(t *testing.T) {