Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions buildozer/default.spec
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,9 @@ android.allow_backup = True
# (str) Filename to the hook for p4a
#p4a.hook =

# (str) p4a command: apk (default) or aar (can be used as library from e.g. an android native project)
#p4a.command = apk

# (str) Bootstrap to use for android builds
# p4a.bootstrap = sdl2

Expand Down
31 changes: 22 additions & 9 deletions buildozer/targets/android.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class TargetAndroid(Target):
p4a_directory_name = "python-for-android"
p4a_fork = 'kivy'
p4a_branch = 'master'
p4a_apk_cmd = "apk --debug --bootstrap="
p4a_build_cmd = "%s --debug --bootstrap="
p4a_recommended_ndk_version = None
extra_p4a_args = ''

Expand All @@ -74,7 +74,7 @@ def __init__(self, *args, **kwargs):
self._p4a_cmd = '{} -m pythonforandroid.toolchain '.format(executable)
self._p4a_bootstrap = self.buildozer.config.getdefault(
'app', 'p4a.bootstrap', 'sdl2')
self.p4a_apk_cmd += self._p4a_bootstrap
self.p4a_build_cmd += self._p4a_bootstrap
color = 'always' if USE_COLOR else 'never'
self.extra_p4a_args = ' --color={} --storage-dir="{}"'.format(
color, self._build_dir)
Expand Down Expand Up @@ -830,7 +830,8 @@ def execute_build_package(self, build_cmd):
# wrapper from previous old_toolchain to new toolchain
dist_name = self.buildozer.config.get('app', 'package.name')
local_recipes = self.get_local_recipes_dir()
cmd = [self.p4a_apk_cmd, "--dist_name", dist_name]
self.p4a_build_cmd = self.p4a_build_cmd % self.buildozer.config.getdefault('app', 'p4a.command', 'apk')
cmd = [self.p4a_build_cmd, "--dist_name", dist_name]
for args in build_cmd:
option, values = args[0], args[1:]
if option == "debug":
Expand Down Expand Up @@ -1057,12 +1058,13 @@ def build_package(self):
build_cmd += [("--feature", feature)]

# android.entrypoint
entrypoint = config.getdefault('app', 'android.entrypoint', 'org.kivy.android.PythonActivity')
build_cmd += [('--android-entrypoint', entrypoint)]
if config.getdefault('app', 'p4a.bootstrap', 'sdl2') != 'library':
entrypoint = config.getdefault('app', 'android.entrypoint', 'org.kivy.android.PythonActivity')
build_cmd += [('--android-entrypoint', entrypoint)]

# android.apptheme
apptheme = config.getdefault('app', 'android.apptheme', '@android:style/Theme.NoTitleBar')
build_cmd += [('--android-apptheme', apptheme)]
# android.apptheme
apptheme = config.getdefault('app', 'android.apptheme', '@android:style/Theme.NoTitleBar')
build_cmd += [('--android-apptheme', apptheme)]

# android.compile_options
compile_options = config.getlist('app', 'android.add_compile_options', [])
Expand Down Expand Up @@ -1232,7 +1234,18 @@ def build_package(self):
arch=self._arch)

# copy to our place
copyfile(join(apk_dir, apk), join(self.buildozer.bin_dir, apk_dest))
bootstrap = self._p4a_bootstrap
if bootstrap == 'service_library':
# XXX: this has to be moved to a seperate command 'aar'
aar_dir = join(dist_dir, "build", "outputs", "aar")
aar = u'{packagename}-{mode}.aar'.format(
packagename=packagename_src, mode=mode)
aar_dest = u'{packagename}-{version}-{arch}-{mode}.aar'.format(
packagename=packagename, mode=mode, version=version,
arch=self._arch)
copyfile(join(aar_dir, aar), join(self.buildozer.bin_dir, aar_dest))
else:
copyfile(join(apk_dir, apk), join(self.buildozer.bin_dir, apk_dest))

self.buildozer.info('Android packaging done!')
self.buildozer.info(
Expand Down
4 changes: 2 additions & 2 deletions tests/targets/test_android.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ def test_init(self):
)
assert target_android._p4a_bootstrap == "sdl2"
assert target_android._p4a_cmd.endswith(
"python -m pythonforandroid.toolchain "
"-m pythonforandroid.toolchain "
)
assert target_android.build_mode == "debug"
assert (
Expand All @@ -119,7 +119,7 @@ def test_init(self):
buildozer_dir=buildozer.buildozer_dir)
)
)
assert target_android.p4a_apk_cmd == "apk --debug --bootstrap=sdl2"
assert target_android.p4a_build_cmd == "%s --debug --bootstrap=sdl2"
assert target_android.platform_update is False

def test_init_positional_buildozer(self):
Expand Down