Prefetch all jdks in gradle.py
Change-Id: I608018def8eddba6cbf68d121442160858994868
diff --git a/tools/jdk.py b/tools/jdk.py
index 5cf1465..f37d272 100755
--- a/tools/jdk.py
+++ b/tools/jdk.py
@@ -10,6 +10,10 @@
JDK_DIR = os.path.join(defines.THIRD_PARTY, 'openjdk')
+ALL_JDKS = ['openjdk-9.0.4', 'jdk-11', 'jdk-15', 'jdk-16', 'jdk-17',
+ 'jdk-18', 'jdk-20']
+
+
def GetJdkHome():
return GetJdk11Home()
@@ -18,6 +22,10 @@
def GetJdk11Root():
root = os.path.join(JDK_DIR, 'jdk-11')
+ os_root = GetOSPath(root)
+ return os_root if os_root else os.environ['JAVA_HOME']
+
+def GetOSPath(root):
if defines.IsLinux():
return os.path.join(root, 'linux')
elif defines.IsOsX():
@@ -25,7 +33,16 @@
elif defines.IsWindows():
return os.path.join(root, 'windows')
else:
- return os.environ['JAVA_HOME']
+ return None
+
+def GetAllJdkDirs():
+ dirs = []
+ for jdk in ALL_JDKS:
+ root = GetOSPath(os.path.join(JDK_DIR, jdk))
+ # Some jdks are not available on windows, don't try to get these.
+ if os.path.exists(root + '.tar.gz.sha1'):
+ dirs.append(root)
+ return dirs
def GetJdk11Home():
root = GetJdk11Root()