Skip to content

Commit 23d7c20

Browse files
authored
Merge pull request #3208 from T-Dynamos/android-fix
`android`: shift to PPR
2 parents 54cf321 + d045912 commit 23d7c20

File tree

2 files changed

+29
-14
lines changed

2 files changed

+29
-14
lines changed

pythonforandroid/recipes/android/__init__.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
1-
from pythonforandroid.recipe import CythonRecipe, IncludedFilesBehaviour
1+
from pythonforandroid.recipe import PyProjectRecipe, IncludedFilesBehaviour
22
from pythonforandroid.util import current_directory
33
from pythonforandroid import logger
44

55
from os.path import join
66

77

8-
class AndroidRecipe(IncludedFilesBehaviour, CythonRecipe):
8+
class AndroidRecipe(IncludedFilesBehaviour, PyProjectRecipe):
99
# name = 'android'
1010
version = None
1111
url = None
1212

1313
src_filename = 'src'
1414

1515
depends = [('sdl3', 'sdl2', 'genericndkbuild'), 'pyjnius']
16+
hostpython_prerequisites = ["Cython>=0.29,<3.1"]
1617

1718
config_env = {}
1819

19-
def get_recipe_env(self, arch):
20-
env = super().get_recipe_env(arch)
20+
def get_recipe_env(self, arch, **kwargs):
21+
env = super().get_recipe_env(arch, **kwargs)
2122
env.update(self.config_env)
2223
return env
2324

@@ -49,6 +50,10 @@ def prebuild_arch(self, arch):
4950
'IS_SDL2': int(bootstrap_name == "sdl2"),
5051
'IS_SDL3': int(bootstrap_name == "sdl3"),
5152
'PY2': 0,
53+
'ANDROID_LIBS_DIR': "{}:{}".format(
54+
self.ctx.get_libs_dir(arch.arch),
55+
join(self.ctx.bootstrap.build_dir, 'obj', 'local', arch.arch)
56+
),
5257
'JAVA_NAMESPACE': java_ns,
5358
'JNI_NAMESPACE': jni_ns,
5459
'ACTIVITY_CLASS_NAME': self.ctx.activity_class_name,
Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,35 @@
11
from distutils.core import setup, Extension
2+
from Cython.Build import cythonize
23
import os
34

4-
library_dirs = ['libs/' + os.environ['ARCH']]
5+
library_dirs = os.environ['ANDROID_LIBS_DIR'].split(":")
56
lib_dict = {
67
'sdl2': ['SDL2', 'SDL2_image', 'SDL2_mixer', 'SDL2_ttf'],
78
'sdl3': ['SDL3', 'SDL3_image', 'SDL3_mixer', 'SDL3_ttf'],
89
}
910
sdl_libs = lib_dict.get(os.environ['BOOTSTRAP'], ['main'])
1011

11-
modules = [Extension('android._android',
12-
['android/_android.c', 'android/_android_jni.c'],
13-
libraries=sdl_libs + ['log'],
14-
library_dirs=library_dirs),
15-
Extension('android._android_billing',
16-
['android/_android_billing.c', 'android/_android_billing_jni.c'],
17-
libraries=['log'],
18-
library_dirs=library_dirs)]
12+
modules = [
13+
Extension('android._android',
14+
['android/_android.pyx', 'android/_android_jni.c'],
15+
libraries=sdl_libs + ['log'],
16+
library_dirs=library_dirs),
17+
Extension('android._android_billing',
18+
['android/_android_billing.pyx', 'android/_android_billing_jni.c'],
19+
libraries=['log'],
20+
library_dirs=library_dirs),
21+
Extension('android._android_sound',
22+
['android/_android_sound.pyx', 'android/_android_sound_jni.c'],
23+
libraries=['log'],
24+
library_dirs=library_dirs,
25+
extra_compile_args=['-include', 'stdlib.h'])
26+
]
27+
28+
cythonized_modules = cythonize(modules, compiler_directives={'language_level': "3"})
1929

2030
setup(name='android',
2131
version='1.0',
2232
packages=['android'],
2333
package_dir={'android': 'android'},
24-
ext_modules=modules
34+
ext_modules=cythonized_modules
2535
)

0 commit comments

Comments
 (0)