diff --git a/genrule/genrule.go b/genrule/genrule.go index 5b40768b4..08d857d05 100644 --- a/genrule/genrule.go +++ b/genrule/genrule.go @@ -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) diff --git a/genrule/genrule_test.go b/genrule/genrule_test.go index fba9aec65..444aedb90 100644 --- a/genrule/genrule_test.go +++ b/genrule/genrule_test.go @@ -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) {