mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-06 01:45:36 +00:00
cmd/gogio: use JAVA_HOME first
Tools such as the Android SDK `d8` looks for Java tools in JAVA_HOME before PATH. We should match so we use the same tools, in particular to make sure our Java version check report the version actually used. Fixes: https://todo.sr.ht/~eliasnaur/gio/349 Signed-off-by: Inkeliz <inkeliz@inkeliz.com>
This commit is contained in:
+15
-19
@@ -591,7 +591,11 @@ func exeAndroid(tmpDir string, tools *androidTools, bi *buildInfo, extraJars, pe
|
|||||||
}
|
}
|
||||||
|
|
||||||
func determineJDKVersion() (int, int, bool) {
|
func determineJDKVersion() (int, int, bool) {
|
||||||
java := exec.Command("java", "-version")
|
path, err := findJavaC()
|
||||||
|
if err != nil {
|
||||||
|
return 0, 0, false
|
||||||
|
}
|
||||||
|
java := exec.Command(filepath.Join(filepath.Dir(path), "java"), "-version")
|
||||||
out, err := java.CombinedOutput()
|
out, err := java.CombinedOutput()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, 0, false
|
return 0, 0, false
|
||||||
@@ -761,35 +765,27 @@ func findNDK(androidHome string) (string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func findKeytool() (string, error) {
|
func findKeytool() (string, error) {
|
||||||
keytool, err := exec.LookPath("keytool")
|
|
||||||
if err == nil {
|
|
||||||
return keytool, err
|
|
||||||
}
|
|
||||||
javaHome := os.Getenv("JAVA_HOME")
|
javaHome := os.Getenv("JAVA_HOME")
|
||||||
if javaHome == "" {
|
if javaHome == "" {
|
||||||
|
return exec.LookPath("keytool")
|
||||||
|
}
|
||||||
|
keytool := filepath.Join(javaHome, "jre", "bin", "keytool"+exeSuffix)
|
||||||
|
if _, err := os.Stat(keytool); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
keytool = filepath.Join(javaHome, "jre", "bin", "keytool"+exeSuffix)
|
return keytool, nil
|
||||||
if _, serr := os.Stat(keytool); serr == nil {
|
|
||||||
return keytool, nil
|
|
||||||
}
|
|
||||||
return "", err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func findJavaC() (string, error) {
|
func findJavaC() (string, error) {
|
||||||
javac, err := exec.LookPath("javac")
|
|
||||||
if err == nil {
|
|
||||||
return javac, err
|
|
||||||
}
|
|
||||||
javaHome := os.Getenv("JAVA_HOME")
|
javaHome := os.Getenv("JAVA_HOME")
|
||||||
if javaHome == "" {
|
if javaHome == "" {
|
||||||
|
return exec.LookPath("javac")
|
||||||
|
}
|
||||||
|
javac := filepath.Join(javaHome, "bin", "javac"+exeSuffix)
|
||||||
|
if _, err := os.Stat(javac); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
javac = filepath.Join(javaHome, "bin", "javac"+exeSuffix)
|
return javac, nil
|
||||||
if _, serr := os.Stat(javac); serr == nil {
|
|
||||||
return javac, nil
|
|
||||||
}
|
|
||||||
return "", err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func writeJar(jarFile, dir string) (err error) {
|
func writeJar(jarFile, dir string) (err error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user