Use DEFAULT_APP_TARGET_SDK for dx and desugar
DEFAULT_APP_TARGET_SDK is PLATFORM_VERSION_CODENAME (for example 'P')
for non-release builds, and PLATFORM_SDK_VERSION (for example 25) for
release builds. Use it for dx and desugar, and translate
PLATFORM_VERSION_CODENAME to 10000 to enable features in the current
development version.
Bug: 36087246
Bug: 36118520
Test: m -j ANDROID_COMPILE_WITH_JACK=false
Change-Id: I3d6bbc36a8869e4ced6bb850bc32f37b4cba3f85
diff --git a/core/definitions.mk b/core/definitions.mk
index 1a7cc50..3da48b5 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -2513,6 +2513,13 @@
$(filter-out -classpath -bootclasspath "",$(subst :,$(space),$(1)))
endef
+# Takes an sdk version that might be PLATFORM_VERSION_CODENAME (for example P),
+# returns a number greater than the highest existing sdk version if it is, or
+# the input if it is not.
+define codename-or-sdk-to-sdk
+$(if $(filter $(1),$(PLATFORM_VERSION_CODENAME)),10000,$(1))
+endef
+
define desugar-classes-jar
@echo Desugar: $@
@mkdir -p $(dir $@)
@@ -2520,7 +2527,7 @@
$(hide) java -jar $(DESUGAR) \
$(addprefix --bootclasspath_entry ,$(call desugar-bootclasspath,$(PRIVATE_BOOTCLASSPATH))) \
$(addprefix --classpath_entry ,$(PRIVATE_ALL_JAVA_LIBRARIES)) \
- --min_sdk_version $(PRIVATE_SDK_VERSION) \
+ --min_sdk_version $(call codename-or-sdk-to-sdk,$(PRIVATE_DEFAULT_APP_TARGET_SDK)) \
--allow_empty_bootclasspath \
$(if $(filter --core-library,$(PRIVATE_DX_FLAGS)),--core_library) \
-i $< -o $@.tmp
@@ -2537,7 +2544,7 @@
$(hide) $(DX) \
-JXms16M -JXmx2048M \
--dex --output=$(dir $@) \
- --min-sdk-version=$(PRIVATE_SDK_VERSION) \
+ --min-sdk-version=$(call codename-or-sdk-to-sdk,$(PRIVATE_DEFAULT_APP_TARGET_SDK)) \
$(if $(NO_OPTIMIZE_DX), \
--no-optimize) \
$(if $(GENERATE_DEX_DEBUG), \