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:
Родитель
874a4fb9cd
Коммит
d2e1c1c4a6
|
@ -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
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче