Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 79e2f73b authored by Colin Cross's avatar Colin Cross
Browse files

Re-enable dx support

This is a partial revert of commits:
85865736 Remove support of disabling Jack.
3ae78612 Remove javac support in host dex rules.
22313f2b Remove rules for building dex with dx

Test: builds
Change-Id: Ie12d743cbe978bdeb030910848b67f5945a4fec8
parent 5f50896a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ LOCAL_DROIDDOC_SOURCE_PATH:=
LOCAL_DROIDDOC_STUB_OUT_DIR:=
LOCAL_DROIDDOC_TEMPLATE_DIR:=
LOCAL_DROIDDOC_USE_STANDARD_DOCLET:=
LOCAL_DX_FLAGS:=
LOCAL_EMMA_COVERAGE_FILTER:=
LOCAL_EMMA_INSTRUMENT:=
LOCAL_EXPORT_C_INCLUDE_DEPS:=
@@ -94,8 +95,7 @@ LOCAL_IS_RUNTIME_RESOURCE_OVERLAY:=
LOCAL_JACK_CLASSPATH:=
LOCAL_JACK_COVERAGE_EXCLUDE_FILTER:=
LOCAL_JACK_COVERAGE_INCLUDE_FILTER:=
# full or incremental
LOCAL_JACK_ENABLED:=full
LOCAL_JACK_ENABLED:=$(DEFAULT_JACK_ENABLED) # '' (ie disabled), disabled, full, incremental
LOCAL_JACK_FLAGS:=
LOCAL_JACK_PLUGIN:=
LOCAL_JACK_PLUGIN_PATH:=
+5 −0
Original line number Diff line number Diff line
@@ -9,6 +9,11 @@
#   COMMON_JAVAC -- Java compiler command with common arguments
#

ifndef ANDROID_COMPILE_WITH_JACK
# Defines if compilation with jack is enabled by default.
ANDROID_COMPILE_WITH_JACK := true
endif

common_jdk_flags := -Xmaxerrs 9999999

# Use the indexer wrapper to index the codebase instead of the javac compiler
+5 −0
Original line number Diff line number Diff line
@@ -605,6 +605,11 @@ DATA_BINDING_COMPILER := $(HOST_OUT_JAVA_LIBRARIES)/databinding-compiler.jar
FAT16COPY := build/tools/fat16copy.py
CHECK_LINK_TYPE := build/tools/check_link_type.py

ifeq ($(ANDROID_COMPILE_WITH_JACK),true)
DEFAULT_JACK_ENABLED:=full
else
DEFAULT_JACK_ENABLED:=
endif
ifneq ($(ANDROID_JACK_EXTRA_ARGS),)
JACK_DEFAULT_ARGS :=
DEFAULT_JACK_EXTRA_ARGS := $(ANDROID_JACK_EXTRA_ARGS)
+8 −1
Original line number Diff line number Diff line
@@ -21,9 +21,16 @@ endif
LOCAL_JACK_ENABLED := $(strip $(LOCAL_JACK_ENABLED))
LOCAL_MODULE := $(strip $(LOCAL_MODULE))

ifeq ($(filter full incremental,$(LOCAL_JACK_ENABLED)),)
ifneq ($(LOCAL_JACK_ENABLED),full)
ifneq ($(LOCAL_JACK_ENABLED),incremental)
ifdef LOCAL_JACK_ENABLED
ifneq ($(LOCAL_JACK_ENABLED),disabled)
$(error $(LOCAL_PATH): invalid LOCAL_JACK_ENABLED "$(LOCAL_JACK_ENABLED)" for $(LOCAL_MODULE))
endif
endif
LOCAL_JACK_ENABLED :=
endif
endif

ifdef $(LOCAL_MODULE).JACK_VERSION
LOCAL_JACK_VERSION := $($(LOCAL_MODULE).JACK_VERSION)
+32 −1
Original line number Diff line number Diff line
@@ -2353,8 +2353,9 @@ $(if $(PRIVATE_HAS_RS_SOURCES), \
$(hide) tr ' ' '\n' < $@.java-source-list \
    | sort -u > $@.java-source-list-uniq
$(hide) if [ -s $@.java-source-list-uniq ] ; then \
	$(call call-jack) \
	$(call call-jack,$(PRIVATE_JACK_EXTRA_ARGS)) \
	    $(strip $(PRIVATE_JACK_FLAGS)) \
	    $(strip $(PRIVATE_JACK_DEBUG_FLAGS)) \
	    $(addprefix --classpath ,$(strip \
	        $(call normalize-path-list,$(call reverse-list,$(PRIVATE_STATIC_JACK_LIBRARIES)) $(PRIVATE_JACK_SHARED_LIBRARIES)))) \
	    -D jack.import.resource.policy=keep-first \
@@ -2514,6 +2515,25 @@ $(hide) java -classpath $(EMMA_JAR) emma instr -outmode fullcopy -outfile \
    $(addprefix -ix , $(PRIVATE_EMMA_COVERAGE_FILTER))
endef

#TODO: use a smaller -Xmx value for most libraries;
#      only core.jar and framework.jar need a heap this big.
define transform-classes.jar-to-dex
@echo "target Dex: $(PRIVATE_MODULE)"
@mkdir -p $(dir $@)
$(hide) rm -f $(dir $@)classes*.dex
$(hide) $(DX) \
    -JXms16M -JXmx2048M \
    --dex --output=$(dir $@) \
    $(if $(NO_OPTIMIZE_DX), \
        --no-optimize) \
    $(if $(GENERATE_DEX_DEBUG), \
	    --debug --verbose \
	    --dump-to=$(@:.dex=.lst) \
	    --dump-width=1000) \
    $(PRIVATE_DX_FLAGS) \
    $<
endef

# Create a mostly-empty .jar file that we'll add to later.
# The MacOS jar tool doesn't like creating empty jar files,
# so we need to give it something.
@@ -2533,6 +2553,17 @@ define create-empty-package
$(call create-empty-package-at,$@)
endef

# Copy an arhchive file and delete any class files and empty folders inside.
# $(1): the source archive file.
# $(2): the destination archive file.
define initialize-package-file
@mkdir -p $(dir $(2))
$(hide) cp -f $(1) $(2)
$(hide) zip -qd $(2) "*.class" \
    $(if $(strip $(PRIVATE_DONT_DELETE_JAR_DIRS)),,"*/") \
    || true # Ignore the error when nothing to delete.
endef

#TODO: we kinda want to build different asset packages for
#      different configurations, then combine them later (or something).
#      Per-locale, etc.
Loading