diff --git a/apex/apex.go b/apex/apex.go index 494e167b5..7ffa6cc81 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -414,6 +414,9 @@ type apexBundle struct { // Path of API coverage generate file apisUsedByModuleFile android.ModuleOutPath apisBackedByModuleFile android.ModuleOutPath + + // Collect the module directory for IDE info in java/jdeps.go. + modulePaths []string } // apexFileClass represents a type of file that can be included in APEX. @@ -1689,6 +1692,9 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { handleSpecialLibs := !android.Bool(a.properties.Ignore_system_library_special_case) + // Collect the module directory for IDE info in java/jdeps.go. + a.modulePaths = append(a.modulePaths, ctx.ModuleDir()) + // TODO(jiyong): do this using WalkPayloadDeps // TODO(jiyong): make this clean!!! ctx.WalkDepsBlueprint(func(child, parent blueprint.Module) bool { @@ -2456,6 +2462,14 @@ func (a *apexBundle) checkApexAvailability(ctx android.ModuleContext) { }) } +// Collect information for opening IDE project files in java/jdeps.go. +func (a *apexBundle) IDEInfo(dpInfo *android.IdeInfo) { + dpInfo.Deps = append(dpInfo.Deps, a.properties.Java_libs...) + dpInfo.Deps = append(dpInfo.Deps, a.properties.Bootclasspath_fragments...) + dpInfo.Deps = append(dpInfo.Deps, a.properties.Systemserverclasspath_fragments...) + dpInfo.Paths = append(dpInfo.Paths, a.modulePaths...) +} + var ( apexAvailBaseline = makeApexAvailableBaseline() inverseApexAvailBaseline = invertApexBaseline(apexAvailBaseline) diff --git a/java/bootclasspath_fragment.go b/java/bootclasspath_fragment.go index cd0a216ca..4d23820fc 100644 --- a/java/bootclasspath_fragment.go +++ b/java/bootclasspath_fragment.go @@ -136,6 +136,9 @@ type BootclasspathFragmentModule struct { ClasspathFragmentBase properties bootclasspathFragmentProperties + + // Collect the module directory for IDE info in java/jdeps.go. + modulePaths []string } // commonBootclasspathFragment defines the methods that are implemented by both source and prebuilt @@ -402,6 +405,9 @@ func (b *BootclasspathFragmentModule) GenerateAndroidBuildActions(ctx android.Mo // Generate classpaths.proto config b.generateClasspathProtoBuildActions(ctx) + // Collect the module directory for IDE info in java/jdeps.go. + b.modulePaths = append(b.modulePaths, ctx.ModuleDir()) + // Gather the bootclasspath fragment's contents. var contents []android.Module ctx.VisitDirectDeps(func(module android.Module) { @@ -698,6 +704,12 @@ func (b *BootclasspathFragmentModule) generateBootImageBuildActions(ctx android. return true } +// Collect information for opening IDE project files in java/jdeps.go. +func (b *BootclasspathFragmentModule) IDEInfo(dpInfo *android.IdeInfo) { + dpInfo.Deps = append(dpInfo.Deps, b.properties.Contents...) + dpInfo.Paths = append(dpInfo.Paths, b.modulePaths...) +} + type bootclasspathFragmentMemberType struct { android.SdkMemberTypeBase } diff --git a/java/systemserver_classpath_fragment.go b/java/systemserver_classpath_fragment.go index c63a53f19..a0decb7e9 100644 --- a/java/systemserver_classpath_fragment.go +++ b/java/systemserver_classpath_fragment.go @@ -64,6 +64,9 @@ type SystemServerClasspathModule struct { ClasspathFragmentBase properties systemServerClasspathFragmentProperties + + // Collect the module directory for IDE info in java/jdeps.go. + modulePaths []string } func (s *SystemServerClasspathModule) ShouldSupportSdkVersion(ctx android.BaseModuleContext, sdkVersion android.ApiLevel) error { @@ -93,6 +96,9 @@ func (s *SystemServerClasspathModule) GenerateAndroidBuildActions(ctx android.Mo classpathJars := configuredJarListToClasspathJars(ctx, s.configuredJars(ctx), s.classpathType) s.classpathFragmentBase().generateClasspathProtoBuildActions(ctx, classpathJars) + + // Collect the module directory for IDE info in java/jdeps.go. + s.modulePaths = append(s.modulePaths, ctx.ModuleDir()) } func (s *SystemServerClasspathModule) configuredJars(ctx android.ModuleContext) android.ConfiguredJarList { @@ -139,3 +145,9 @@ func (s *SystemServerClasspathModule) ComponentDepsMutator(ctx android.BottomUpM ctx.AddDependency(module, systemServerClasspathFragmentContentDepTag, name) } } + +// Collect information for opening IDE project files in java/jdeps.go. +func (s *SystemServerClasspathModule) IDEInfo(dpInfo *android.IdeInfo) { + dpInfo.Deps = append(dpInfo.Deps, s.properties.Contents...) + dpInfo.Paths = append(dpInfo.Paths, s.modulePaths...) +}