Skip to content

Commit 69c9c6b

Browse files
committed
Added buildozer sdk/ndk dir check
1 parent 098f701 commit 69c9c6b

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

pythonforandroid/toolchain.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010

1111
import sys
1212
from sys import stdout
13-
from os.path import join, dirname, realpath, exists, isdir, basename
13+
from os.path import (join, dirname, realpath, exists, isdir, basename,
14+
expanduser)
1415
from os import listdir, unlink, makedirs, environ, chdir, getcwd, walk, uname
1516
import os
1617
import zipfile
@@ -596,6 +597,18 @@ def prepare_build_environment(self, user_sdk_dir, user_ndk_dir,
596597
sdk_dir = environ.get('ANDROIDSDK', None)
597598
if sdk_dir is None: # This seems used more conventionally
598599
sdk_dir = environ.get('ANDROID_HOME', None)
600+
if sdk_dir is None: # Checks in the buildozer SDK dir, useful
601+
# for debug tests of p4a
602+
possible_dirs = glob.glob(expanduser(join(
603+
'~', '.buildozer', 'android', 'platform', 'android-sdk-*')))
604+
if possible_dirs:
605+
info('Found possible SDK dirs in buildozer dir: {}'.format(
606+
', '.join([d.split(os.sep)[-1] for d in possible_dirs])))
607+
info('Will attempt to use SDK at {}'.format(possible_dirs[0]))
608+
warning('This SDK lookup is intended for debug only, if you '
609+
'use python-for-android much you should probably '
610+
'maintain your own SDK download.')
611+
sdk_dir = possible_dirs[0]
599612
if sdk_dir is None:
600613
warning('Android SDK dir was not specified, exiting.')
601614
exit(1)
@@ -656,6 +669,18 @@ def prepare_build_environment(self, user_sdk_dir, user_ndk_dir,
656669
ndk_dir = environ.get('ANDROID_NDK_HOME', None)
657670
if ndk_dir is not None:
658671
info('Found NDK dir in $ANDROID_NDK_HOME')
672+
if ndk_dir is None: # Checks in the buildozer NDK dir, useful
673+
# for debug tests of p4a
674+
possible_dirs = glob.glob(expanduser(join(
675+
'~', '.buildozer', 'android', 'platform', 'android-ndk-r*')))
676+
if possible_dirs:
677+
info('Found possible NDK dirs in buildozer dir: {}'.format(
678+
', '.join([d.split(os.sep)[-1] for d in possible_dirs])))
679+
info('Will attempt to use NDK at {}'.format(possible_dirs[0]))
680+
warning('This NDK lookup is intended for debug only, if you '
681+
'use python-for-android much you should probably '
682+
'maintain your own NDK download.')
683+
ndk_dir = possible_dirs[0]
659684
if ndk_dir is None:
660685
warning('Android NDK dir was not specified, exiting.')
661686
exit(1)

0 commit comments

Comments
 (0)