diff --git a/android/module.go b/android/module.go index 45477ea80..6239d272b 100644 --- a/android/module.go +++ b/android/module.go @@ -2366,6 +2366,7 @@ type IdeInfo struct { Classes []string `json:"class,omitempty"` Installed_paths []string `json:"installed,omitempty"` SrcJars []string `json:"srcjars,omitempty"` + Paths []string `json:"path,omitempty"` } func CheckBlueprintSyntax(ctx BaseModuleContext, filename string, contents string) []error { diff --git a/genrule/genrule.go b/genrule/genrule.go index fe877fe8d..f6904f195 100644 --- a/genrule/genrule.go +++ b/genrule/genrule.go @@ -144,6 +144,9 @@ type Module struct { subName string subDir string + + // Collect the module directory for IDE info in java/jdeps.go. + modulePaths []string } type taskFunc func(ctx android.ModuleContext, rawCommand string, srcFiles android.Paths) []generateTask @@ -190,6 +193,9 @@ func toolDepsMutator(ctx android.BottomUpMutatorContext) { func (g *Module) GenerateAndroidBuildActions(ctx android.ModuleContext) { g.subName = ctx.ModuleSubDir() + // Collect the module directory for IDE info in java/jdeps.go. + g.modulePaths = append(g.modulePaths, ctx.ModuleDir()) + if len(g.properties.Export_include_dirs) > 0 { for _, dir := range g.properties.Export_include_dirs { g.exportedIncludeDirs = append(g.exportedIncludeDirs, @@ -529,6 +535,7 @@ func (g *Module) IDEInfo(dpInfo *android.IdeInfo) { dpInfo.Deps = append(dpInfo.Deps, src) } } + dpInfo.Paths = append(dpInfo.Paths, g.modulePaths...) } func (g *Module) AndroidMk() android.AndroidMkData { diff --git a/java/java.go b/java/java.go index b97defa88..dedbf4719 100644 --- a/java/java.go +++ b/java/java.go @@ -471,6 +471,9 @@ type Module struct { kytheFiles android.Paths distFile android.Path + + // Collect the module directory for IDE info in java/jdeps.go. + modulePaths []string } func (j *Module) OutputFiles(tag string) (android.Paths, error) { @@ -1776,6 +1779,7 @@ func (j *Module) IDEInfo(dpInfo *android.IdeInfo) { if j.expandJarjarRules != nil { dpInfo.Jarjar_rules = append(dpInfo.Jarjar_rules, j.expandJarjarRules.String()) } + dpInfo.Paths = append(dpInfo.Paths, j.modulePaths...) } func (j *Module) CompilerDeps() []string { @@ -1856,6 +1860,9 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) { j.deviceProperties.UncompressDex = j.dexpreopter.uncompressedDex j.compile(ctx, nil) + // Collect the module directory for IDE info in java/jdeps.go. + j.modulePaths = append(j.modulePaths, ctx.ModuleDir()) + exclusivelyForApex := android.InAnyApex(ctx.ModuleName()) && !j.IsForPlatform() if (Bool(j.properties.Installable) || ctx.Host()) && !exclusivelyForApex { var extraInstallDeps android.Paths diff --git a/java/jdeps.go b/java/jdeps.go index 49e3de3cc..9f4388733 100644 --- a/java/jdeps.go +++ b/java/jdeps.go @@ -72,6 +72,7 @@ func (j *jdepsGeneratorSingleton) GenerateBuildActions(ctx android.SingletonCont dpInfo.Jarjar_rules = android.FirstUniqueStrings(dpInfo.Jarjar_rules) dpInfo.Jars = android.FirstUniqueStrings(dpInfo.Jars) dpInfo.SrcJars = android.FirstUniqueStrings(dpInfo.SrcJars) + dpInfo.Paths = android.FirstUniqueStrings(dpInfo.Paths) moduleInfos[name] = dpInfo mkProvider, ok := module.(android.AndroidMkDataProvider)