From cdfbe4a8522b9a13ffe6ac1f826a1d6760f87d60 Mon Sep 17 00:00:00 2001 From: Neil Fuller Date: Fri, 15 Jan 2016 19:41:26 -0800 Subject: [PATCH] Allow java targets to support 1.8 source / target This change enables build rules to specify: LOCAL_JAVA_LANGUAGE_VERSION := 1.8 to enable -source 1.8 -target 1.8 for javac and equivalent flags for Jack. Bug: 26753820 Change-Id: I7991fafe4978485354663f091f4d78a0cc73ba26 --- core/clear_vars.mk | 1 + core/combo/javac.mk | 2 +- core/java_common.mk | 10 ++++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/core/clear_vars.mk b/core/clear_vars.mk index 656f32736..069fbf97b 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -342,6 +342,7 @@ LOCAL_CLANG_32:= LOCAL_CLANG_64:= LOCAL_INIT_RC_32:= LOCAL_INIT_RC_64:= +LOCAL_JAVA_LANGUAGE_VERSION:= # Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to # iterate over thousands of entries every time. diff --git a/core/combo/javac.mk b/core/combo/javac.mk index 70dae1302..7f66ea83a 100644 --- a/core/combo/javac.mk +++ b/core/combo/javac.mk @@ -14,7 +14,7 @@ ifndef ANDROID_COMPILE_WITH_JACK ANDROID_COMPILE_WITH_JACK := true endif -common_jdk_flags := -source 1.7 -target 1.7 -Xmaxerrs 9999999 +common_jdk_flags := -Xmaxerrs 9999999 # Use the indexer wrapper to index the codebase instead of the javac compiler ifeq ($(ALTERNATE_JAVAC),) diff --git a/core/java_common.mk b/core/java_common.mk index 5e0dfa005..08e5ee799 100644 --- a/core/java_common.mk +++ b/core/java_common.mk @@ -1,6 +1,14 @@ # Common to host and target Java modules. ########################################################### +## Java version +########################################################### +ifeq (,$(LOCAL_JAVA_LANGUAGE_VERSION)) + LOCAL_JAVA_LANGUAGE_VERSION := 1.7 +endif +LOCAL_JAVACFLAGS += -source $(LOCAL_JAVA_LANGUAGE_VERSION) -target $(LOCAL_JAVA_LANGUAGE_VERSION) + +########################################################### ## .proto files: Compile proto files to .java ########################################################### proto_sources := $(filter %.proto,$(LOCAL_SRC_FILES)) @@ -267,6 +275,8 @@ ALL_MODULES.$(my_register_name).INTERMEDIATE_SOURCE_DIR := \ ifdef LOCAL_JACK_ENABLED ifdef need_compile_java +LOCAL_JACK_FLAGS += -D jack.java.source.version=$(LOCAL_JAVA_LANGUAGE_VERSION) + full_static_jack_libs := \ $(foreach lib,$(LOCAL_STATIC_JAVA_LIBRARIES), \ $(call intermediates-dir-for, \ -- 2.11.0