Rework the generation of host java libraries.
We currently have two types of host libraries, those meant for the host VM (Sun, OpenJDK etc.) and those meant for a host dalvik build. The former need to be compiled against the host standard libraries and the latter need to be compiled against libcore. This change introduces two new build rules to complement the existing the existing host rules. BUILD_HOST_DALVIK_JAVA_LIBRARY : Build a java library for a host build of dalvik. Bootclasspath will be set to a host build of libcore. BUILD_HOST_DALVIK_STATIC_JAVA_LIBRARY : Build a static java library for a host build of dalvik. Bootclasspath will be set to a host build of libcore. This change also removes support for the LOCAL_BUILD_HOST_DEX flag, which is now unnecessary. bug: 8992787 Change-Id: I3569fff8eaa4d26d55fcc317bd98471f55d74c14
This commit is contained in:
@@ -18,55 +18,8 @@
|
||||
# Standard rules for building a host java library.
|
||||
#
|
||||
|
||||
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
|
||||
LOCAL_MODULE_SUFFIX := $(COMMON_JAVA_PACKAGE_SUFFIX)
|
||||
LOCAL_IS_HOST_MODULE := true
|
||||
LOCAL_BUILT_MODULE_STEM := javalib.jar
|
||||
|
||||
# base_rules.mk looks at this
|
||||
all_res_assets :=
|
||||
|
||||
proto_sources := $(filter %.proto,$(LOCAL_SRC_FILES))
|
||||
ifneq ($(proto_sources),)
|
||||
ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),micro)
|
||||
LOCAL_JAVA_LIBRARIES += host-libprotobuf-java-2.3.0-micro
|
||||
else
|
||||
ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),nano)
|
||||
LOCAL_JAVA_LIBRARIES += host-libprotobuf-java-2.3.0-nano
|
||||
else
|
||||
LOCAL_JAVA_LIBRARIES += host-libprotobuf-java-2.3.0-lite
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
intermediates := $(call local-intermediates-dir)
|
||||
intermediates.COMMON := $(call local-intermediates-dir,COMMON)
|
||||
|
||||
LOCAL_INTERMEDIATE_SOURCE_DIR := $(intermediates.COMMON)/src
|
||||
|
||||
ifeq ($(LOCAL_BUILD_HOST_DEX),true)
|
||||
ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
|
||||
LOCAL_JAVA_LIBRARIES += core-hostdex
|
||||
endif
|
||||
|
||||
full_classes_compiled_jar := $(intermediates.COMMON)/classes-full-debug.jar
|
||||
full_classes_jarjar_jar := $(intermediates.COMMON)/classes-jarjar.jar
|
||||
full_classes_jar := $(intermediates.COMMON)/classes.jar
|
||||
built_dex := $(intermediates.COMMON)/classes.dex
|
||||
|
||||
LOCAL_INTERMEDIATE_TARGETS += \
|
||||
$(full_classes_compiled_jar) \
|
||||
$(full_classes_jarjar_jar) \
|
||||
$(full_classes_jar) \
|
||||
$(built_dex)
|
||||
|
||||
# See comment in java.mk
|
||||
java_alternative_checked_module := $(full_classes_compiled_jar)
|
||||
endif # LOCAL_BUILD_HOST_DEX
|
||||
|
||||
LOCAL_JAVA_LIBRARIES := $(sort $(LOCAL_JAVA_LIBRARIES))
|
||||
|
||||
#######################################
|
||||
include $(BUILD_SYSTEM)/host_java_library_common.mk
|
||||
include $(BUILD_SYSTEM)/base_rules.mk
|
||||
#######################################
|
||||
|
||||
@@ -78,55 +31,6 @@ java_alternative_checked_module :=
|
||||
# Run build/tools/java-layers.py for more details.
|
||||
layers_file := $(addprefix $(LOCAL_PATH)/, $(LOCAL_JAVA_LAYERS_FILE))
|
||||
|
||||
ifeq ($(LOCAL_BUILD_HOST_DEX),true)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): \
|
||||
PRIVATE_CLASS_INTERMEDIATES_DIR := $(intermediates.COMMON)/classes
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): \
|
||||
PRIVATE_SOURCE_INTERMEDIATES_DIR := $(LOCAL_INTERMEDIATE_SOURCE_DIR)
|
||||
|
||||
$(cleantarget): PRIVATE_CLEAN_FILES += $(intermediates.COMMON)
|
||||
|
||||
$(full_classes_compiled_jar): PRIVATE_JAVA_LAYERS_FILE := $(layers_file)
|
||||
$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
|
||||
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES :=
|
||||
$(full_classes_compiled_jar): PRIVATE_JAR_PACKAGES :=
|
||||
$(full_classes_compiled_jar): PRIVATE_RMTYPEDEFS :=
|
||||
$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) \
|
||||
$(jar_manifest_file) $(proto_java_sources_file_stamp) $(LOCAL_ADDITIONAL_DEPENDENCIES)
|
||||
$(transform-host-java-to-package)
|
||||
|
||||
# Run jarjar if necessary, otherwise just copy the file.
|
||||
ifneq ($(strip $(LOCAL_JARJAR_RULES)),)
|
||||
$(full_classes_jarjar_jar): PRIVATE_JARJAR_RULES := $(LOCAL_JARJAR_RULES)
|
||||
$(full_classes_jarjar_jar): $(full_classes_compiled_jar) $(LOCAL_JARJAR_RULES) | $(JARJAR)
|
||||
@echo JarJar: $@
|
||||
$(hide) java -jar $(JARJAR) process $(PRIVATE_JARJAR_RULES) $< $@
|
||||
else
|
||||
$(full_classes_jarjar_jar): $(full_classes_compiled_jar) | $(ACP)
|
||||
@echo Copying: $@
|
||||
$(hide) $(ACP) -fp $< $@
|
||||
endif
|
||||
|
||||
$(full_classes_jar): $(full_classes_jarjar_jar) | $(ACP)
|
||||
@echo Copying: $@
|
||||
$(hide) $(ACP) -fp $< $@
|
||||
|
||||
$(built_dex): PRIVATE_INTERMEDIATES_DIR := $(intermediates.COMMON)
|
||||
$(built_dex): PRIVATE_DX_FLAGS := $(LOCAL_DX_FLAGS)
|
||||
$(built_dex): $(full_classes_jar) $(DX)
|
||||
$(transform-classes.jar-to-dex)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE := $(built_dex)
|
||||
$(LOCAL_BUILT_MODULE): $(built_dex) $(java_resource_sources)
|
||||
@echo "Host Jar: $(PRIVATE_MODULE) ($@)"
|
||||
$(create-empty-package)
|
||||
$(add-dex-to-package)
|
||||
$(add-carried-java-resources)
|
||||
ifneq ($(extra_jar_args),)
|
||||
$(add-java-resources-to-package)
|
||||
endif
|
||||
|
||||
else
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_JAVA_LAYERS_FILE := $(layers_file)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_JAR_EXCLUDE_FILES :=
|
||||
@@ -135,4 +39,3 @@ $(LOCAL_BUILT_MODULE): PRIVATE_RMTYPEDEFS :=
|
||||
$(LOCAL_BUILT_MODULE): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) \
|
||||
$(jar_manifest_file) $(proto_java_sources_file_stamp) $(LOCAL_ADDITIONAL_DEPENDENCIES)
|
||||
$(transform-host-java-to-package)
|
||||
endif # LOCAL_BUILD_HOST_DEX
|
||||
|
Reference in New Issue
Block a user