Fix Jdk11 Head bot
- Emulate Android SDK 30 and 32
Change-Id: I80ae3a4d4643bf665846127208a3859e4c4c3464
diff --git a/tools/archive_desugar_jdk_libs.py b/tools/archive_desugar_jdk_libs.py
index 63d02c6..862f7af 100755
--- a/tools/archive_desugar_jdk_libs.py
+++ b/tools/archive_desugar_jdk_libs.py
@@ -140,12 +140,29 @@
+ github_account + '/' + GITHUB_REPRO, checkout_dir)
git_utils.GitCheckout(desugar_jdk_libs_hash, checkout_dir)
-def GetJavaEnv():
+def GetJavaEnv(androidHomeTemp):
java_env = dict(os.environ, JAVA_HOME = jdk.GetJdk11Home())
java_env['PATH'] = java_env['PATH'] + os.pathsep + os.path.join(jdk.GetJdk11Home(), 'bin')
java_env['GRADLE_OPTS'] = '-Xmx1g'
+ java_env['ANDROID_HOME'] = androidHomeTemp
return java_env
+def setUpFakeAndroidHome(androidHomeTemp):
+ # Bazel will check if 30 is present then extract android.jar from 32.
+ # We copy android.jar from third_party to mimic repository structure.
+ subpath = os.path.join(androidHomeTemp, "platforms")
+ cmd = ["mkdir", subpath]
+ subprocess.check_call(cmd)
+ subpath30 = os.path.join(subpath, "android-30")
+ cmd = ["mkdir", subpath30]
+ subprocess.check_call(cmd)
+ subpath = os.path.join(subpath, "android-32")
+ cmd = ["mkdir", subpath]
+ subprocess.check_call(cmd)
+ dest = os.path.join(subpath, "android.jar")
+ src = os.path.join(utils.THIRD_PARTY, "android_jar", "lib-v32", "android.jar")
+ cmd = ["cp", src, dest]
+ subprocess.check_call(cmd)
def BuildDesugaredLibrary(checkout_dir, variant, version = None):
if not variant in MAVEN_RELEASE_TARGET_MAP:
@@ -153,19 +170,22 @@
if variant != 'jdk8' and variant != 'jdk11_legacy' and version is None:
raise Exception('Variant ' + variant + ' require version for undesugaring')
with utils.ChangedWorkingDirectory(checkout_dir):
- bazel = os.path.join(utils.BAZEL_TOOL, 'lib', 'bazel', 'bin', 'bazel')
- cmd = [
+ with utils.TempDir() as androidHomeTemp:
+ setUpFakeAndroidHome(androidHomeTemp)
+ javaEnv = GetJavaEnv(androidHomeTemp)
+ bazel = os.path.join(utils.BAZEL_TOOL, 'lib', 'bazel', 'bin', 'bazel')
+ cmd = [
bazel,
'--bazelrc=/dev/null',
'build',
'--spawn_strategy=local',
'--verbose_failures',
MAVEN_RELEASE_TARGET_MAP[variant]]
- utils.PrintCmd(cmd)
- subprocess.check_call(cmd, env=GetJavaEnv())
- cmd = [bazel, 'shutdown']
- utils.PrintCmd(cmd)
- subprocess.check_call(cmd, env=GetJavaEnv())
+ utils.PrintCmd(cmd)
+ subprocess.check_call(cmd, env=javaEnv)
+ cmd = [bazel, 'shutdown']
+ utils.PrintCmd(cmd)
+ subprocess.check_call(cmd, env=javaEnv)
# Locate the library jar and the maven zip with the jar from the
# bazel build.