cmd/gomobile: improve NDK version detection

Look for the compiler directly, not just the existence of the
directory containing.

Fixes golang/go#30637

Change-Id: Iae4429406da8622e7085bf3701c0f84d5c95d2fd
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/165937
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
This commit is contained in:
Elias Naur 2019-03-07 09:55:49 +01:00
Родитель 874a4fb9cd
Коммит d2e1c1c4a6
1 изменённых файлов: 8 добавлений и 6 удалений

Просмотреть файл

@ -85,10 +85,17 @@ func envInit() (err error) {
if ndkRoot, err := ndkRoot(); err == nil {
androidEnv = make(map[string][]string)
for arch, toolchain := range ndk {
clang := toolchain.Path(ndkRoot, "clang")
if !buildN {
_, err = os.Stat(clang)
if err != nil {
return fmt.Errorf("No compiler for %s was found in the NDK (tried %q). Make sure your NDK version is >= r19b. Use `sdkmanager --update` to update it.", arch, clang)
}
}
androidEnv[arch] = []string{
"GOOS=android",
"GOARCH=" + arch,
"CC=" + toolchain.Path(ndkRoot, "clang"),
"CC=" + clang,
"CXX=" + toolchain.Path(ndkRoot, "clang++"),
"CGO_ENABLED=1",
}
@ -153,11 +160,6 @@ func ndkRoot() (string, error) {
if err != nil {
return "", fmt.Errorf("The NDK was not found in $ANDROID_HOME/ndk-bundle (%q). Install the NDK with `sdkmanager 'ndk-bundle'`", ndkRoot)
}
prebuiltPath := filepath.Join(androidHome, "ndk-bundle", "toolchains", "llvm", "prebuilt")
_, err = os.Stat(prebuiltPath)
if err != nil {
return "", fmt.Errorf("No prebuilt toolchains found in $ANDROID_HOME/ndk-bundle/toolchains/llvm/prebuilt (%q). Make sure your NDK version is >= r19b. Use `sdkmanager --update` to update it.", prebuiltPath)
}
return ndkRoot, nil
}