@@ -148,7 +148,7 @@ def process_env_options(opts):
148148 'TARGET_ARCH' , 'PERL' , 'ANDROID_NDK_VERSION' , 'ANDROID_LIB_PATH' ,
149149 'ANDROID_NDK_PLATFORM_VERSION' , 'ANDROID_PLATFORM' ,
150150 'ANDROID_SDK' , 'ANDROID_NDK' , 'ANDROID_BUILD_TOOLS' , 'LTO' ,
151- 'ANDROID_TOOLCHAIN' , 'ANDROID_API_VERSION' ,
151+ 'ANDROID_TOOLCHAIN_DIR' , ' ANDROID_TOOLCHAIN' , 'ANDROID_API_VERSION' ,
152152 'AR' , 'CC' , 'CXX' , 'LINK' , 'OBJCOPY' , 'OBJDUMP' ,
153153 'STRIP' , 'JAVA_SDK' , 'NODE_JS' , 'BUILD_EDITION' , 'CC_PREFIX' , 'CROSS' ,
154154 'SYSROOT' , 'AUX_SYSROOT' , 'TRIPLE' , 'MS_SPEECH_SDK5' , 'QUICKTIME_SDK' ,
@@ -514,8 +514,11 @@ def validate_xcode_sdks(opts):
514514
515515# We suggest some symlinks for Android toolchain components in the
516516# INSTALL-android.md file. This checks if a directory is present
517- def guess_android_tooldir (name ):
518- dir = os .path .join (os .path .expanduser ('~' ), 'android' , 'toolchain' , name )
517+ def guess_android_tooldir (toolchain , name ):
518+ if toolchain is None :
519+ dir = os .path .join (os .path .expanduser ('~' ), 'android' , 'toolchain' , name )
520+ else :
521+ dir = os .path .join (toolchain , name )
519522 if os .path .isdir (dir ):
520523 return dir
521524 return None
@@ -600,8 +603,11 @@ def validate_android_tools(opts):
600603 opts ['ANDROID_NDK_VERSION' ] = 'r15'
601604
602605 ndk_ver = opts ['ANDROID_NDK_VERSION' ]
606+
607+ toolchain_dir = opts ['ANDROID_TOOLCHAIN_DIR' ]
608+
603609 if opts ['ANDROID_NDK' ] is None :
604- ndk = guess_android_tooldir ('android-ndk' )
610+ ndk = guess_android_tooldir (toolchain_dir , 'android-ndk' )
605611 if ndk is None :
606612 error ('Android NDK not found; set $ANDROID_NDK' )
607613 opts ['ANDROID_NDK' ] = ndk
@@ -618,7 +624,7 @@ def validate_android_tools(opts):
618624 opts ['ANDROID_PLATFORM' ] = 'android-' + api_ver
619625
620626 if opts ['ANDROID_SDK' ] is None :
621- sdk = guess_android_tooldir ('android-sdk' )
627+ sdk = guess_android_tooldir (toolchain_dir , 'android-sdk' )
622628 if sdk is None :
623629 error ('Android SDK not found; set $ANDROID_SDK' )
624630 opts ['ANDROID_SDK' ] = sdk
@@ -630,7 +636,7 @@ def validate_android_tools(opts):
630636 opts ['ANDROID_BUILD_TOOLS' ] = tools
631637
632638 if opts ['ANDROID_TOOLCHAIN' ] is None :
633- dir = guess_android_tooldir (guess_standalone_toolchain_dir_name (opts ['TARGET_ARCH' ]))
639+ dir = guess_android_tooldir (toolchain_dir , guess_standalone_toolchain_dir_name (opts ['TARGET_ARCH' ]))
634640 if dir is None :
635641 error ('Android toolchain not found for architecture {}; set $ANDROID_TOOLCHAIN' .format (opts ['TARGET_ARCH' ]))
636642 prefix = guess_compiler_prefix (opts ['TARGET_ARCH' ])
0 commit comments