help_vars.Add(BoolVariable('UPLOAD', 'Upload binary ? (For Arduino)', require_upload))
help_vars.Add(EnumVariable('BUILD_SAMPLE', 'Build with sample', 'ON', allowed_values=('ON', 'OFF')))
help_vars.AddVariables(('DEVICE_NAME', 'Network display name for device (For Arduino)', device_name, None, None),)
+help_vars.Add(PathVariable('ANDROID_NDK', 'Android NDK path', None, PathVariable.PathAccept))
+help_vars.Add(PathVariable('ANDROID_HOME', 'Android SDK path', None, PathVariable.PathAccept))
+help_vars.Add(PathVariable('ANDROID_GRADLE', 'Gradle binary file', None, PathVariable.PathIsFile))
AddOption('--prefix',
dest='prefix',
import subprocess
Import('env')
-SConscript('../external_libs.scons')
-SConscript('../../extlibs/android/ndk/SConscript')
-SConscript('../../extlibs/android/gradle/SConscript')
-SConscript('../../extlibs/android/sdk/SConscript')
+SConscript('../external_libs.scons')
help_vars = Variables()
-help_vars.Add(PathVariable('ANDROID_GRADLE', 'Android Gradle directory', os.path.join(env.get('SRC_DIR'), 'extlibs', 'android', 'gradle', 'gradle-2.2.1/bin/gradle')))
-help_vars.Add(PathVariable('ANDROID_NDK', 'Android NDK root directory', os.path.join(env.get('SRC_DIR'), 'extlibs', 'android', 'ndk', 'android-ndk-r10d')))
+if not env.get('ANDROID_NDK'):
+ SConscript('../../extlibs/android/ndk/SConscript')
+ help_vars.Add(PathVariable('ANDROID_NDK', 'Android NDK root directory', os.path.join(env.get('SRC_DIR'), 'extlibs', 'android', 'ndk', 'android-ndk-r10d')))
+
+if not env.get('ANDROID_GRADLE'):
+ SConscript('../../extlibs/android/gradle/SConscript')
+ help_vars.Add(PathVariable('ANDROID_GRADLE', 'Android Gradle directory', os.path.join(env.get('SRC_DIR'), 'extlibs', 'android', 'gradle', 'gradle-2.2.1/bin/gradle')))
+
+if not env.get('ANDROID_HOME'):
+ SConscript('../../extlibs/android/sdk/SConscript')
+
if env.get('ANDROID_NDK'):
android_ndk = env.get('ANDROID_NDK')
Exit(1)
# ANDROID_HOME build option
-help_vars = Variables()
-help_vars.Add(PathVariable('ANDROID_HOME', 'ANDROID SDK root directory', os.environ.get('ANDROID_HOME')))
-help_vars.Update(env)
-Help(help_vars.GenerateHelpText(env))
-
-print '''
+if env.get('ANDROID_HOME'):
+ android_gradle = env.get('ANDROID_HOME')
+else:
+ help_vars = Variables()
+ help_vars.Add(PathVariable('ANDROID_HOME', 'ANDROID SDK root directory', os.environ.get('ANDROID_HOME')))
+ help_vars.Update(env)
+ Help(help_vars.GenerateHelpText(env))
+ print '''
*************************************** Info **********************************
* Environment variable ANDROID_HOME will use default value. To override *
* root directory of android sdk, please specify ANDROID_HOME as follows: *