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

Commit 0e8ec505 authored by Neil Fuller's avatar Neil Fuller
Browse files

Make the language version selection smarter

Any artifacts that are targeting SDK versions < 24
and not explicitly setting the LOCAL_JAVA_LANGUAGE_VERSION
are now defaulted to 1.7.

Bug: 27495650
Bug: 26753820
Bug: 27377071
(cherry-picked from commit decb7972)

Change-Id: I0734b6e690bea32def3dc435c9ce0bd90b845e79
parent 926096ef
Loading
Loading
Loading
Loading
+20 −3
Original line number Diff line number Diff line
@@ -3,13 +3,30 @@
###########################################################
## Java version
###########################################################
# Use the LOCAL_JAVA_LANGUAGE_VERSION if it is set, otherwise
# use one based on the LOCAL_SDK_VERSION. If it is < 24
# pass "1.7" to the tools, if it is unset, >= 24 or "current"
# pass "1.8".
#
# The LOCAL_SDK_VERSION behavior is to ensure that, by default,
# code that is expected to run on older releases of Android
# does not use any 1.8 language features that are not supported
# on earlier runtimes (like default / static interface methods).
# Modules can override this logic by specifying
# LOCAL_JAVA_LANGUAGE_VERSION explicitly.
ifeq (,$(LOCAL_JAVA_LANGUAGE_VERSION))
  private_sdk_versions_without_any_java_18_support := 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
  ifneq (,$(filter $(LOCAL_SDK_VERSION), $(private_sdk_versions_without_any_java_18_support)))
    LOCAL_JAVA_LANGUAGE_VERSION := 1.7
  else
    # This retains 1.7 for ART build bots only. http://b/27583810
    ifeq (,$(LEGACY_USE_JAVA7))
      LOCAL_JAVA_LANGUAGE_VERSION := 1.8
    else
      LOCAL_JAVA_LANGUAGE_VERSION := 1.7
    endif
  endif
endif
LOCAL_JAVACFLAGS += -source $(LOCAL_JAVA_LANGUAGE_VERSION) -target $(LOCAL_JAVA_LANGUAGE_VERSION)

###########################################################