summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/base_rules.mk4
-rw-r--r--core/tasks/ide.mk17
2 files changed, 18 insertions, 3 deletions
diff --git a/core/base_rules.mk b/core/base_rules.mk
index 580126b..c361d93 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -482,6 +482,8 @@ ALL_MODULES += $(LOCAL_MODULE)
# Don't use += on subvars, or else they'll end up being
# recursively expanded.
+ALL_MODULES.$(LOCAL_MODULE).CLASS := \
+ $(ALL_MODULES.$(LOCAL_MODULE).CLASS) $(LOCAL_MODULE_CLASS)
ALL_MODULES.$(LOCAL_MODULE).PATH := \
$(ALL_MODULES.$(LOCAL_MODULE).PATH) $(LOCAL_PATH)
ALL_MODULES.$(LOCAL_MODULE).TAGS := \
@@ -499,6 +501,8 @@ ALL_MODULES.$(LOCAL_MODULE).EVENT_LOG_TAGS := \
ALL_MODULES.$(LOCAL_MODULE).INTERMEDIATE_SOURCE_DIR := \
$(ALL_MODULES.$(LOCAL_MODULE).INTERMEDIATE_SOURCE_DIR) $(LOCAL_INTERMEDIATE_SOURCE_DIR)
+INSTALLABLE_FILES.$(LOCAL_INSTALLED_MODULE).MODULE := $(LOCAL_MODULE)
+
###########################################################
## Take care of LOCAL_MODULE_TAGS
###########################################################
diff --git a/core/tasks/ide.mk b/core/tasks/ide.mk
index 57a4609..e557e60 100644
--- a/core/tasks/ide.mk
+++ b/core/tasks/ide.mk
@@ -30,16 +30,27 @@ ifdef eclipse_project_goals
endif
eclipse_project_modules := $(call filter-ide-modules,ECLIPSE,$(eclipse_project_goals))
+ ifneq ($(filter lunch,$(eclipse_project_modules)),)
+ eclipse_project_modules := $(filter-out lunch,$(eclipse_project_modules))
+ installed_modules := $(foreach m,$(ALL_DEFAULT_INSTALLED_MODULES),\
+ $(INSTALLABLE_FILES.$(m).MODULE))
+ java_modules := $(foreach m,$(installed_modules),\
+ $(if $(filter JAVA_LIBRARIES APPS,$(ALL_MODULES.$(m).CLASS)),$(m),))
+ eclipse_project_modules := $(sort $(eclipse_project_modules) $(java_modules))
+ endif
+
source_paths := $(foreach m,$(eclipse_project_modules),$(ALL_MODULES.$(m).PATH)) \
- $(foreach m,$(eclipse_project_modules),$(ALL_MODULES.$(m).INTERMEDIATE_SOURCE_DIR))
+ $(foreach m,$(eclipse_project_modules),$(ALL_MODULES.$(m).INTERMEDIATE_SOURCE_DIR)) \
+ $(INTERNAL_SDK_SOURCE_DIRS)
+ source_paths := $(sort $(source_paths))
.classpath: PRIVATE_MODULES := $(eclipse_project_modules)
-.classpath: PRIVATE_DIRS := $(source_paths) $(INTERNAL_SDK_SOURCE_DIRS)
+.classpath: PRIVATE_DIRS := $(source_paths)
# the mess below with ./src tries to guess whether the src
$(eclipse_project_goals): .classpath
.classpath: FORCE
- $(hide) echo Generating .classpath for modules: $(PRIVATE_MODULES)
+ $(hide) echo Generating .classpath for eclipse
$(hide) echo '<classpath>' > $@
$(hide) for p in $(PRIVATE_DIRS) ; do \
echo -n ' <classpathentry kind="src" path="' >> $@ ; \