|  | #!/usr/bin/env python3 | 
|  | # Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file | 
|  | # for details. All rights reserved. Use of this source code is governed by a | 
|  | # BSD-style license that can be found in the LICENSE file. | 
|  |  | 
|  | import os | 
|  | import sys | 
|  |  | 
|  | import defines | 
|  |  | 
|  | JDK_DIR = os.path.join(defines.THIRD_PARTY, 'openjdk') | 
|  |  | 
|  | def GetJdkHome(): | 
|  | return GetJdk11Home() | 
|  |  | 
|  | def GetJdk11Home(): | 
|  | root = os.path.join(JDK_DIR, 'jdk-11') | 
|  | if defines.IsLinux(): | 
|  | return os.path.join(root, 'linux') | 
|  | elif defines.IsOsX(): | 
|  | return os.path.join(root, 'osx') | 
|  | elif defines.IsWindows(): | 
|  | return os.path.join(root, 'windows') | 
|  | else: | 
|  | return os.environ['JAVA_HOME'] | 
|  |  | 
|  | def GetJdk9Home(): | 
|  | root = os.path.join(JDK_DIR, 'openjdk-9.0.4') | 
|  | if defines.IsLinux(): | 
|  | return os.path.join(root, 'linux') | 
|  | elif defines.IsOsX(): | 
|  | return os.path.join(root, 'osx') | 
|  | elif defines.IsWindows(): | 
|  | return os.path.join(root, 'windows') | 
|  | else: | 
|  | return os.environ['JAVA_HOME'] | 
|  |  | 
|  | def GetJdk8Home(): | 
|  | root = os.path.join(JDK_DIR, 'jdk8') | 
|  | if defines.IsLinux(): | 
|  | return os.path.join(root, 'linux-x86') | 
|  | elif defines.IsOsX(): | 
|  | return os.path.join(root, 'darwin-x86') | 
|  | else: | 
|  | return os.environ['JAVA_HOME'] | 
|  |  | 
|  | def GetJavaExecutable(jdkHome=None): | 
|  | jdkHome = jdkHome if jdkHome else GetJdkHome() | 
|  | executable = 'java.exe' if defines.IsWindows() else 'java' | 
|  | return os.path.join(jdkHome, 'bin', executable) if jdkHome else executable | 
|  |  | 
|  | def GetJavacExecutable(jdkHome=None): | 
|  | jdkHome = jdkHome if jdkHome else GetJdkHome() | 
|  | executable = 'javac.exe' if defines.IsWindows() else 'javac' | 
|  | return os.path.join(jdkHome, 'bin', executable) if jdkHome else executable | 
|  |  | 
|  | def Main(): | 
|  | print(GetJdkHome()) | 
|  |  | 
|  | if __name__ == '__main__': | 
|  | sys.exit(Main()) |