Loading android/androidmk_test.go +22 −33 Original line number Diff line number Diff line Loading @@ -36,10 +36,6 @@ type customModule struct { data AndroidMkData distFiles TaggedDistFiles outputFile OptionalPath // The paths that will be used as the default dist paths if no tag is // specified. defaultDistPaths Paths } const ( Loading @@ -51,6 +47,7 @@ const ( func (m *customModule) GenerateAndroidBuildActions(ctx ModuleContext) { m.base().licenseMetadataFile = PathForOutput(ctx, "meta_lic") var defaultDistPaths Paths // If the dist_output_file: true then create an output file that is stored in // the OutputFile property of the AndroidMkEntry. Loading @@ -62,7 +59,7 @@ func (m *customModule) GenerateAndroidBuildActions(ctx ModuleContext) { // property in AndroidMkEntry when determining the default dist paths. // Setting this first allows it to be overridden based on the // default_dist_files setting replicating that previous behavior. m.defaultDistPaths = Paths{path} defaultDistPaths = Paths{path} } // Based on the setting of the default_dist_files property possibly create a Loading @@ -71,29 +68,40 @@ func (m *customModule) GenerateAndroidBuildActions(ctx ModuleContext) { defaultDistFiles := proptools.StringDefault(m.properties.Default_dist_files, defaultDistFiles_Tagged) switch defaultDistFiles { case defaultDistFiles_None: // Do nothing m.setOutputFiles(ctx, defaultDistPaths) case defaultDistFiles_Default: path := PathForTesting("default-dist.out") m.defaultDistPaths = Paths{path} defaultDistPaths = Paths{path} m.setOutputFiles(ctx, defaultDistPaths) m.distFiles = MakeDefaultDistFiles(path) case defaultDistFiles_Tagged: // Module types that set AndroidMkEntry.DistFiles to the result of calling // GenerateTaggedDistFiles(ctx) relied on no tag being treated as "" which // meant that the default dist paths would be whatever was returned by // OutputFiles(""). In order to preserve that behavior when treating no tag // as being equal to DefaultDistTag this ensures that // OutputFiles(DefaultDistTag) will return the same as OutputFiles(""). m.defaultDistPaths = PathsForTesting("one.out") // meant that the default dist paths would be the same as empty-string-tag // output files. In order to preserve that behavior when treating no tag // as being equal to DefaultDistTag this ensures that DefaultDistTag output // will be the same as empty-string-tag output. defaultDistPaths = PathsForTesting("one.out") m.setOutputFiles(ctx, defaultDistPaths) // This must be called after setting defaultDistPaths/outputFile as // GenerateTaggedDistFiles calls into OutputFiles(tag) which may use those // fields. // GenerateTaggedDistFiles calls into outputFiles property which may use // those fields. m.distFiles = m.GenerateTaggedDistFiles(ctx) } } func (m *customModule) setOutputFiles(ctx ModuleContext, defaultDistPaths Paths) { ctx.SetOutputFiles(PathsForTesting("one.out"), "") ctx.SetOutputFiles(PathsForTesting("two.out", "three/four.out"), ".multiple") ctx.SetOutputFiles(PathsForTesting("another.out"), ".another-tag") if defaultDistPaths != nil { ctx.SetOutputFiles(defaultDistPaths, DefaultDistTag) } } func (m *customModule) AndroidMk() AndroidMkData { return AndroidMkData{ Custom: func(w io.Writer, name, prefix, moduleDir string, data AndroidMkData) { Loading @@ -102,25 +110,6 @@ func (m *customModule) AndroidMk() AndroidMkData { } } func (m *customModule) OutputFiles(tag string) (Paths, error) { switch tag { case DefaultDistTag: if m.defaultDistPaths != nil { return m.defaultDistPaths, nil } else { return nil, fmt.Errorf("default dist tag is not available") } case "": return PathsForTesting("one.out"), nil case ".multiple": return PathsForTesting("two.out", "three/four.out"), nil case ".another-tag": return PathsForTesting("another.out"), nil default: return nil, fmt.Errorf("unsupported module reference tag %q", tag) } } func (m *customModule) AndroidMkEntries() []AndroidMkEntries { return []AndroidMkEntries{ { Loading android/paths_test.go +5 −15 Original line number Diff line number Diff line Loading @@ -1183,9 +1183,6 @@ type pathForModuleSrcOutputFileProviderModule struct { Outs []string Tagged []string } outs Paths tagged Paths } func pathForModuleSrcOutputFileProviderModuleFactory() Module { Loading @@ -1196,24 +1193,17 @@ func pathForModuleSrcOutputFileProviderModuleFactory() Module { } func (p *pathForModuleSrcOutputFileProviderModule) GenerateAndroidBuildActions(ctx ModuleContext) { var outs, taggedOuts Paths for _, out := range p.props.Outs { p.outs = append(p.outs, PathForModuleOut(ctx, out)) outs = append(outs, PathForModuleOut(ctx, out)) } for _, tagged := range p.props.Tagged { p.tagged = append(p.tagged, PathForModuleOut(ctx, tagged)) } taggedOuts = append(taggedOuts, PathForModuleOut(ctx, tagged)) } func (p *pathForModuleSrcOutputFileProviderModule) OutputFiles(tag string) (Paths, error) { switch tag { case "": return p.outs, nil case ".tagged": return p.tagged, nil default: return nil, fmt.Errorf("unsupported tag %q", tag) } ctx.SetOutputFiles(outs, "") ctx.SetOutputFiles(taggedOuts, ".tagged") } type pathForModuleSrcTestCase struct { Loading android/prebuilt_test.go +3 −12 Original line number Diff line number Diff line Loading @@ -15,7 +15,6 @@ package android import ( "fmt" "testing" "github.com/google/blueprint" Loading Loading @@ -494,7 +493,6 @@ type prebuiltModule struct { properties struct { Srcs []string `android:"path,arch_variant"` } src Path } func newPrebuiltModule() Module { Loading @@ -510,24 +508,17 @@ func (p *prebuiltModule) Name() string { } func (p *prebuiltModule) GenerateAndroidBuildActions(ctx ModuleContext) { var src Path if len(p.properties.Srcs) >= 1 { p.src = p.prebuilt.SingleSourcePath(ctx) src = p.prebuilt.SingleSourcePath(ctx) } ctx.SetOutputFiles(Paths{src}, "") } func (p *prebuiltModule) Prebuilt() *Prebuilt { return &p.prebuilt } func (p *prebuiltModule) OutputFiles(tag string) (Paths, error) { switch tag { case "": return Paths{p.src}, nil default: return nil, fmt.Errorf("unsupported module reference tag %q", tag) } } type sourceModuleProperties struct { Deps []string `android:"path,arch_variant"` } Loading Loading
android/androidmk_test.go +22 −33 Original line number Diff line number Diff line Loading @@ -36,10 +36,6 @@ type customModule struct { data AndroidMkData distFiles TaggedDistFiles outputFile OptionalPath // The paths that will be used as the default dist paths if no tag is // specified. defaultDistPaths Paths } const ( Loading @@ -51,6 +47,7 @@ const ( func (m *customModule) GenerateAndroidBuildActions(ctx ModuleContext) { m.base().licenseMetadataFile = PathForOutput(ctx, "meta_lic") var defaultDistPaths Paths // If the dist_output_file: true then create an output file that is stored in // the OutputFile property of the AndroidMkEntry. Loading @@ -62,7 +59,7 @@ func (m *customModule) GenerateAndroidBuildActions(ctx ModuleContext) { // property in AndroidMkEntry when determining the default dist paths. // Setting this first allows it to be overridden based on the // default_dist_files setting replicating that previous behavior. m.defaultDistPaths = Paths{path} defaultDistPaths = Paths{path} } // Based on the setting of the default_dist_files property possibly create a Loading @@ -71,29 +68,40 @@ func (m *customModule) GenerateAndroidBuildActions(ctx ModuleContext) { defaultDistFiles := proptools.StringDefault(m.properties.Default_dist_files, defaultDistFiles_Tagged) switch defaultDistFiles { case defaultDistFiles_None: // Do nothing m.setOutputFiles(ctx, defaultDistPaths) case defaultDistFiles_Default: path := PathForTesting("default-dist.out") m.defaultDistPaths = Paths{path} defaultDistPaths = Paths{path} m.setOutputFiles(ctx, defaultDistPaths) m.distFiles = MakeDefaultDistFiles(path) case defaultDistFiles_Tagged: // Module types that set AndroidMkEntry.DistFiles to the result of calling // GenerateTaggedDistFiles(ctx) relied on no tag being treated as "" which // meant that the default dist paths would be whatever was returned by // OutputFiles(""). In order to preserve that behavior when treating no tag // as being equal to DefaultDistTag this ensures that // OutputFiles(DefaultDistTag) will return the same as OutputFiles(""). m.defaultDistPaths = PathsForTesting("one.out") // meant that the default dist paths would be the same as empty-string-tag // output files. In order to preserve that behavior when treating no tag // as being equal to DefaultDistTag this ensures that DefaultDistTag output // will be the same as empty-string-tag output. defaultDistPaths = PathsForTesting("one.out") m.setOutputFiles(ctx, defaultDistPaths) // This must be called after setting defaultDistPaths/outputFile as // GenerateTaggedDistFiles calls into OutputFiles(tag) which may use those // fields. // GenerateTaggedDistFiles calls into outputFiles property which may use // those fields. m.distFiles = m.GenerateTaggedDistFiles(ctx) } } func (m *customModule) setOutputFiles(ctx ModuleContext, defaultDistPaths Paths) { ctx.SetOutputFiles(PathsForTesting("one.out"), "") ctx.SetOutputFiles(PathsForTesting("two.out", "three/four.out"), ".multiple") ctx.SetOutputFiles(PathsForTesting("another.out"), ".another-tag") if defaultDistPaths != nil { ctx.SetOutputFiles(defaultDistPaths, DefaultDistTag) } } func (m *customModule) AndroidMk() AndroidMkData { return AndroidMkData{ Custom: func(w io.Writer, name, prefix, moduleDir string, data AndroidMkData) { Loading @@ -102,25 +110,6 @@ func (m *customModule) AndroidMk() AndroidMkData { } } func (m *customModule) OutputFiles(tag string) (Paths, error) { switch tag { case DefaultDistTag: if m.defaultDistPaths != nil { return m.defaultDistPaths, nil } else { return nil, fmt.Errorf("default dist tag is not available") } case "": return PathsForTesting("one.out"), nil case ".multiple": return PathsForTesting("two.out", "three/four.out"), nil case ".another-tag": return PathsForTesting("another.out"), nil default: return nil, fmt.Errorf("unsupported module reference tag %q", tag) } } func (m *customModule) AndroidMkEntries() []AndroidMkEntries { return []AndroidMkEntries{ { Loading
android/paths_test.go +5 −15 Original line number Diff line number Diff line Loading @@ -1183,9 +1183,6 @@ type pathForModuleSrcOutputFileProviderModule struct { Outs []string Tagged []string } outs Paths tagged Paths } func pathForModuleSrcOutputFileProviderModuleFactory() Module { Loading @@ -1196,24 +1193,17 @@ func pathForModuleSrcOutputFileProviderModuleFactory() Module { } func (p *pathForModuleSrcOutputFileProviderModule) GenerateAndroidBuildActions(ctx ModuleContext) { var outs, taggedOuts Paths for _, out := range p.props.Outs { p.outs = append(p.outs, PathForModuleOut(ctx, out)) outs = append(outs, PathForModuleOut(ctx, out)) } for _, tagged := range p.props.Tagged { p.tagged = append(p.tagged, PathForModuleOut(ctx, tagged)) } taggedOuts = append(taggedOuts, PathForModuleOut(ctx, tagged)) } func (p *pathForModuleSrcOutputFileProviderModule) OutputFiles(tag string) (Paths, error) { switch tag { case "": return p.outs, nil case ".tagged": return p.tagged, nil default: return nil, fmt.Errorf("unsupported tag %q", tag) } ctx.SetOutputFiles(outs, "") ctx.SetOutputFiles(taggedOuts, ".tagged") } type pathForModuleSrcTestCase struct { Loading
android/prebuilt_test.go +3 −12 Original line number Diff line number Diff line Loading @@ -15,7 +15,6 @@ package android import ( "fmt" "testing" "github.com/google/blueprint" Loading Loading @@ -494,7 +493,6 @@ type prebuiltModule struct { properties struct { Srcs []string `android:"path,arch_variant"` } src Path } func newPrebuiltModule() Module { Loading @@ -510,24 +508,17 @@ func (p *prebuiltModule) Name() string { } func (p *prebuiltModule) GenerateAndroidBuildActions(ctx ModuleContext) { var src Path if len(p.properties.Srcs) >= 1 { p.src = p.prebuilt.SingleSourcePath(ctx) src = p.prebuilt.SingleSourcePath(ctx) } ctx.SetOutputFiles(Paths{src}, "") } func (p *prebuiltModule) Prebuilt() *Prebuilt { return &p.prebuilt } func (p *prebuiltModule) OutputFiles(tag string) (Paths, error) { switch tag { case "": return Paths{p.src}, nil default: return nil, fmt.Errorf("unsupported module reference tag %q", tag) } } type sourceModuleProperties struct { Deps []string `android:"path,arch_variant"` } Loading