From 2f73062d47d179d43a72fdb5b8e089786abb4fd9 Mon Sep 17 00:00:00 2001 From: Inseob Kim Date: Tue, 23 Jul 2024 14:03:40 +0900 Subject: [PATCH] Make genrule's srcs property configurable This allows using select statements with it. Bug: 354824866 Test: m Change-Id: If1d71ac177618ad3eb628cdec57469886ee27c88 --- genrule/genrule.go | 8 +++++--- genrule/genrule_test.go | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) 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) {