From 1d525a6f75f82c027f234d192dfaba6fcd9ae7d4 Mon Sep 17 00:00:00 2001 From: Alexander Taylor Date: Sat, 26 Nov 2016 00:26:05 +0000 Subject: [PATCH 1/2] Changes to compile .pyo with sdl2 --- pythonforandroid/bootstraps/sdl2/build/build.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pythonforandroid/bootstraps/sdl2/build/build.py b/pythonforandroid/bootstraps/sdl2/build/build.py index 4dc35c9287..bbc847393f 100755 --- a/pythonforandroid/bootstraps/sdl2/build/build.py +++ b/pythonforandroid/bootstraps/sdl2/build/build.py @@ -28,6 +28,10 @@ # Try to find a host version of Python that matches our ARM version. PYTHON = join(curdir, 'python-install', 'bin', 'python.host') +if not exists(PYTHON): + print('Could not find hostpython, will not compile to .pyo (this is normal with python3)') + PYTHON = None +PYTHON = None BLACKLIST_PATTERNS = [ # code versionning @@ -38,13 +42,14 @@ # pyc/py '*.pyc', - # '*.py', # AND: Need to fix this to add it back # temp files '~', '*.bak', '*.swp', ] +if PYTHON is not None: + BLACKLIST_PATTERNS.append('*.py') WHITELIST_PATTERNS = [] @@ -202,9 +207,9 @@ def compile_dir(dfn): ''' Compile *.py in directory `dfn` to *.pyo ''' - - return # AND: Currently leaving out the compile to pyo step because it's somehow broken # -OO = strip docstrings + if PYTHON is None: + return subprocess.call([PYTHON, '-OO', '-m', 'compileall', '-f', dfn]) From 6d0cd30a030b095f925ecb4bc7bab0211c245520 Mon Sep 17 00:00:00 2001 From: Alexander Taylor Date: Thu, 1 Dec 2016 22:55:14 +0000 Subject: [PATCH 2/2] Made sdl2 bootstrap compile to .pyo --- pythonforandroid/bootstraps/sdl2/build/build.py | 9 +++++++-- .../sdl2/build/src/org/kivy/android/PythonActivity.java | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pythonforandroid/bootstraps/sdl2/build/build.py b/pythonforandroid/bootstraps/sdl2/build/build.py index bbc847393f..cf10370e85 100755 --- a/pythonforandroid/bootstraps/sdl2/build/build.py +++ b/pythonforandroid/bootstraps/sdl2/build/build.py @@ -31,7 +31,6 @@ if not exists(PYTHON): print('Could not find hostpython, will not compile to .pyo (this is normal with python3)') PYTHON = None -PYTHON = None BLACKLIST_PATTERNS = [ # code versionning @@ -375,7 +374,7 @@ def make_package(args): def parse_args(args=None): - global BLACKLIST_PATTERNS, WHITELIST_PATTERNS + global BLACKLIST_PATTERNS, WHITELIST_PATTERNS, PYTHON default_android_api = 12 import argparse ap = argparse.ArgumentParser(description='''\ @@ -460,6 +459,8 @@ def parse_args(args=None): 'NAME:PATH_TO_PY[:foreground]') ap.add_argument('--add-source', dest='extra_source_dirs', action='append', help='Include additional source dirs in Java build') + ap.add_argument('--no-compile-pyo', dest='no_compile_pyo', action='store_true', + help='Do not optimise .py files to .pyo.') if args is None: args = sys.argv[1:] @@ -485,6 +486,10 @@ def parse_args(args=None): if args.services is None: args.services = [] + if args.no_compile_pyo: + PYTHON = None + BLACKLIST_PATTERNS.remove('*.py') + if args.blacklist: with open(args.blacklist) as fd: patterns = [x.strip() for x in fd.read().splitlines() diff --git a/pythonforandroid/bootstraps/sdl2/build/src/org/kivy/android/PythonActivity.java b/pythonforandroid/bootstraps/sdl2/build/src/org/kivy/android/PythonActivity.java index 4a8a93ba60..a3cb96c0be 100644 --- a/pythonforandroid/bootstraps/sdl2/build/src/org/kivy/android/PythonActivity.java +++ b/pythonforandroid/bootstraps/sdl2/build/src/org/kivy/android/PythonActivity.java @@ -82,6 +82,7 @@ protected void onCreate(Bundle savedInstanceState) { SDLActivity.nativeSetEnv("ANDROID_ENTRYPOINT", "main.pyo"); SDLActivity.nativeSetEnv("PYTHONHOME", app_root_dir); SDLActivity.nativeSetEnv("PYTHONPATH", app_root_dir + ":" + app_root_dir + "/lib"); + SDLActivity.nativeSetEnv("PYTHONOPTIMIZE", "2"); try { Log.v(TAG, "Access to our meta-data...");