Consistent min API level for desugar and dexing
PiperOrigin-RevId: 447922944
diff --git a/src/tools/android/java/com/google/devtools/build/android/r8/CompatDexBuilder.java b/src/tools/android/java/com/google/devtools/build/android/r8/CompatDexBuilder.java
index ef9ea90..68515f1 100644
--- a/src/tools/android/java/com/google/devtools/build/android/r8/CompatDexBuilder.java
+++ b/src/tools/android/java/com/google/devtools/build/android/r8/CompatDexBuilder.java
@@ -243,7 +243,7 @@
builder
.setProgramConsumer(consumer)
.setMode(mode)
- .setMinApiLevel(13) // H_MR2.
+ .setMinApiLevel(Constants.MIN_API_LEVEL)
.setDisableDesugaring(true)
.setIntermediate(true);
try (InputStream stream = zipFile.getInputStream(classEntry)) {
diff --git a/src/tools/android/java/com/google/devtools/build/android/r8/CompatDx.java b/src/tools/android/java/com/google/devtools/build/android/r8/CompatDx.java
index 3c1162c..cc694e1 100644
--- a/src/tools/android/java/com/google/devtools/build/android/r8/CompatDx.java
+++ b/src/tools/android/java/com/google/devtools/build/android/r8/CompatDx.java
@@ -322,7 +322,7 @@
@Option(
name = "min-sdk-version",
- defaultValue = "1",
+ defaultValue = "13", // Same as Constants.MIN_API_LEVEL.
documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
effectTags = {OptionEffectTag.UNKNOWN},
allowMultiple = false,
diff --git a/src/tools/android/java/com/google/devtools/build/android/r8/Constants.java b/src/tools/android/java/com/google/devtools/build/android/r8/Constants.java
new file mode 100644
index 0000000..b9d9fc4
--- /dev/null
+++ b/src/tools/android/java/com/google/devtools/build/android/r8/Constants.java
@@ -0,0 +1,24 @@
+// Copyright 2020 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.android.r8;
+
+/** Constants shared by desugaring and dexing. */
+public class Constants {
+ // When changing this also change the defaultValue for min-sdk-version in CompatDx.java,
+ // CoreLibraryDesugaring and Desugar.java. The defaultValue for annotation parameters must be
+ // compile time constants, and a "public final String" value is rejected.
+ public static final int MIN_API_LEVEL = 13;
+
+ private Constants() {}
+}
diff --git a/src/tools/android/java/com/google/devtools/build/android/r8/CoreLibraryDesugar.java b/src/tools/android/java/com/google/devtools/build/android/r8/CoreLibraryDesugar.java
index 9794212..29cf548 100644
--- a/src/tools/android/java/com/google/devtools/build/android/r8/CoreLibraryDesugar.java
+++ b/src/tools/android/java/com/google/devtools/build/android/r8/CoreLibraryDesugar.java
@@ -100,7 +100,7 @@
@Option(
name = "min_sdk_version",
- defaultValue = "1",
+ defaultValue = "13", // Same as Constants.MIN_API_LEVEL.
category = "misc",
documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
effectTags = {OptionEffectTag.UNKNOWN},
diff --git a/src/tools/android/java/com/google/devtools/build/android/r8/Desugar.java b/src/tools/android/java/com/google/devtools/build/android/r8/Desugar.java
index 46ba3fd..a589398 100644
--- a/src/tools/android/java/com/google/devtools/build/android/r8/Desugar.java
+++ b/src/tools/android/java/com/google/devtools/build/android/r8/Desugar.java
@@ -149,7 +149,7 @@
@Option(
name = "min_sdk_version",
- defaultValue = "1",
+ defaultValue = "13", // Same as Constants.MIN_API_LEVEL.
category = "misc",
documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
effectTags = {OptionEffectTag.UNKNOWN},