Remove ExpandSourcesSubDir and ModuleSrcPath.WithSubDir
am: 2fafa3ec49
Change-Id: Ic23229e9c3269ecb15c21a43517dee29f88dd274
This commit is contained in:
commit
ba0fa9c339
|
@ -60,7 +60,11 @@ func FileGroupFactory() Module {
|
|||
}
|
||||
|
||||
func (fg *fileGroup) GenerateAndroidBuildActions(ctx ModuleContext) {
|
||||
fg.srcs = ctx.ExpandSourcesSubDir(fg.properties.Srcs, fg.properties.Exclude_srcs, String(fg.properties.Path))
|
||||
fg.srcs = ctx.ExpandSources(fg.properties.Srcs, fg.properties.Exclude_srcs)
|
||||
|
||||
if fg.properties.Path != nil {
|
||||
fg.srcs = PathsWithModuleSrcSubDir(ctx, fg.srcs, String(fg.properties.Path))
|
||||
}
|
||||
}
|
||||
|
||||
func (fg *fileGroup) Srcs() Paths {
|
||||
|
|
|
@ -117,7 +117,6 @@ type ModuleContext interface {
|
|||
ExpandSources(srcFiles, excludes []string) Paths
|
||||
ExpandSource(srcFile, prop string) Path
|
||||
ExpandOptionalSource(srcFile *string, prop string) OptionalPath
|
||||
ExpandSourcesSubDir(srcFiles, excludes []string, subDir string) Paths
|
||||
Glob(globPattern string, excludes []string) Paths
|
||||
GlobFiles(globPattern string, excludes []string) Paths
|
||||
|
||||
|
@ -1421,39 +1420,6 @@ type SourceFileProducer interface {
|
|||
// Returns a list of paths expanded from globs and modules referenced using ":module" syntax. The property must
|
||||
// be tagged with `android:"path" to support automatic source module dependency resolution.
|
||||
func (ctx *androidModuleContext) ExpandSources(srcFiles, excludes []string) Paths {
|
||||
return ctx.ExpandSourcesSubDir(srcFiles, excludes, "")
|
||||
}
|
||||
|
||||
// Returns a single path expanded from globs and modules referenced using ":module" syntax. The property must
|
||||
// be tagged with `android:"path" to support automatic source module dependency resolution.
|
||||
func (ctx *androidModuleContext) ExpandSource(srcFile, prop string) Path {
|
||||
srcFiles := ctx.ExpandSourcesSubDir([]string{srcFile}, nil, "")
|
||||
if len(srcFiles) == 1 {
|
||||
return srcFiles[0]
|
||||
} else if len(srcFiles) == 0 {
|
||||
if ctx.Config().AllowMissingDependencies() {
|
||||
ctx.AddMissingDependencies([]string{srcFile})
|
||||
} else {
|
||||
ctx.PropertyErrorf(prop, "%s path %s does not exist", prop, srcFile)
|
||||
}
|
||||
return nil
|
||||
} else {
|
||||
ctx.PropertyErrorf(prop, "module providing %s must produce exactly one file", prop)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// Returns an optional single path expanded from globs and modules referenced using ":module" syntax if
|
||||
// the srcFile is non-nil. The property must be tagged with `android:"path" to support automatic source module
|
||||
// dependency resolution.
|
||||
func (ctx *androidModuleContext) ExpandOptionalSource(srcFile *string, prop string) OptionalPath {
|
||||
if srcFile != nil {
|
||||
return OptionalPathForPath(ctx.ExpandSource(*srcFile, prop))
|
||||
}
|
||||
return OptionalPath{}
|
||||
}
|
||||
|
||||
func (ctx *androidModuleContext) ExpandSourcesSubDir(srcFiles, excludes []string, subDir string) Paths {
|
||||
prefix := PathForModuleSrc(ctx).String()
|
||||
|
||||
var expandedExcludes []string
|
||||
|
@ -1508,22 +1474,48 @@ func (ctx *androidModuleContext) ExpandSourcesSubDir(srcFiles, excludes []string
|
|||
}
|
||||
} else if pathtools.IsGlob(s) {
|
||||
globbedSrcFiles := ctx.GlobFiles(filepath.Join(prefix, s), expandedExcludes)
|
||||
for i, s := range globbedSrcFiles {
|
||||
globbedSrcFiles[i] = s.(ModuleSrcPath).WithSubDir(ctx, subDir)
|
||||
}
|
||||
globbedSrcFiles = PathsWithModuleSrcSubDir(ctx, globbedSrcFiles, "")
|
||||
expandedSrcFiles = append(expandedSrcFiles, globbedSrcFiles...)
|
||||
} else {
|
||||
p := PathForModuleSrc(ctx, s).WithSubDir(ctx, subDir)
|
||||
p := PathForModuleSrc(ctx, s)
|
||||
j := findStringInSlice(p.String(), expandedExcludes)
|
||||
if j == -1 {
|
||||
expandedSrcFiles = append(expandedSrcFiles, p)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return expandedSrcFiles
|
||||
}
|
||||
|
||||
// Returns a single path expanded from globs and modules referenced using ":module" syntax. The property must
|
||||
// be tagged with `android:"path" to support automatic source module dependency resolution.
|
||||
func (ctx *androidModuleContext) ExpandSource(srcFile, prop string) Path {
|
||||
srcFiles := ctx.ExpandSources([]string{srcFile}, nil)
|
||||
if len(srcFiles) == 1 {
|
||||
return srcFiles[0]
|
||||
} else if len(srcFiles) == 0 {
|
||||
if ctx.Config().AllowMissingDependencies() {
|
||||
ctx.AddMissingDependencies([]string{srcFile})
|
||||
} else {
|
||||
ctx.PropertyErrorf(prop, "%s path %s does not exist", prop, srcFile)
|
||||
}
|
||||
return nil
|
||||
} else {
|
||||
ctx.PropertyErrorf(prop, "module providing %s must produce exactly one file", prop)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// Returns an optional single path expanded from globs and modules referenced using ":module" syntax if
|
||||
// the srcFile is non-nil. The property must be tagged with `android:"path" to support automatic source module
|
||||
// dependency resolution.
|
||||
func (ctx *androidModuleContext) ExpandOptionalSource(srcFile *string, prop string) OptionalPath {
|
||||
if srcFile != nil {
|
||||
return OptionalPathForPath(ctx.ExpandSource(*srcFile, prop))
|
||||
}
|
||||
return OptionalPath{}
|
||||
}
|
||||
|
||||
func (ctx *androidModuleContext) RequiredModuleNames() []string {
|
||||
return ctx.module.base().commonProperties.Required
|
||||
}
|
||||
|
|
|
@ -620,6 +620,15 @@ func (p SourcePath) Join(ctx PathContext, paths ...string) SourcePath {
|
|||
return p.withRel(path)
|
||||
}
|
||||
|
||||
// join is like Join but does less path validation.
|
||||
func (p SourcePath) join(ctx PathContext, paths ...string) SourcePath {
|
||||
path, err := validateSafePath(paths...)
|
||||
if err != nil {
|
||||
reportPathError(ctx, err)
|
||||
}
|
||||
return p.withRel(path)
|
||||
}
|
||||
|
||||
// OverlayPath returns the overlay for `path' if it exists. This assumes that the
|
||||
// SourcePath is the path to a resource overlay directory.
|
||||
func (p SourcePath) OverlayPath(ctx ModuleContext, path Path) OptionalPath {
|
||||
|
@ -773,10 +782,30 @@ func PathForModuleSrc(ctx ModuleContext, paths ...string) ModuleSrcPath {
|
|||
} else if !exists {
|
||||
reportPathErrorf(ctx, "module source path %q does not exist", path)
|
||||
}
|
||||
|
||||
return path
|
||||
}
|
||||
|
||||
// PathsWithModuleSrcSubDir takes a list of Paths and returns a new list of Paths where Rel() on each path
|
||||
// will return the path relative to subDir in the module's source directory. If any input paths are not located
|
||||
// inside subDir then a path error will be reported.
|
||||
func PathsWithModuleSrcSubDir(ctx ModuleContext, paths Paths, subDir string) Paths {
|
||||
paths = append(Paths(nil), paths...)
|
||||
subDirFullPath := PathForModuleSrc(ctx, subDir)
|
||||
for i, path := range paths {
|
||||
rel := Rel(ctx, subDirFullPath.String(), path.String())
|
||||
paths[i] = subDirFullPath.join(ctx, rel)
|
||||
}
|
||||
return paths
|
||||
}
|
||||
|
||||
// PathWithModuleSrcSubDir takes a Path and returns a Path where Rel() will return the path relative to subDir in the
|
||||
// module's source directory. If the input path is not located inside subDir then a path error will be reported.
|
||||
func PathWithModuleSrcSubDir(ctx ModuleContext, path Path, subDir string) Path {
|
||||
subDirFullPath := PathForModuleSrc(ctx, subDir)
|
||||
rel := Rel(ctx, subDirFullPath.String(), path.String())
|
||||
return subDirFullPath.Join(ctx, rel)
|
||||
}
|
||||
|
||||
// OptionalPathForModuleSrc returns an OptionalPath. The OptionalPath contains a
|
||||
// valid path if p is non-nil.
|
||||
func OptionalPathForModuleSrc(ctx ModuleContext, p *string) OptionalPath {
|
||||
|
@ -799,12 +828,6 @@ func (p ModuleSrcPath) resPathWithName(ctx ModuleContext, name string) ModuleRes
|
|||
return PathForModuleRes(ctx, p.path, name)
|
||||
}
|
||||
|
||||
func (p ModuleSrcPath) WithSubDir(ctx ModuleContext, subdir string) ModuleSrcPath {
|
||||
subdir = PathForModuleSrc(ctx, subdir).String()
|
||||
p.rel = Rel(ctx, subdir, p.path)
|
||||
return p
|
||||
}
|
||||
|
||||
// ModuleOutPath is a Path representing a module's output directory.
|
||||
type ModuleOutPath struct {
|
||||
OutputPath
|
||||
|
|
Loading…
Reference in New Issue