From 01a70426c9e68bbae55a727ae6cc804148081a0d Mon Sep 17 00:00:00 2001 From: cbdj Date: Tue, 13 Jun 2023 23:18:14 +0200 Subject: [PATCH 1/3] Adding recipe for pygame-ce Tested with buildozer and pygame-ce + https://github.com/pygame-community/pygame-ce/pull/2249 --- .../recipes/pygame-ce/__init__.py | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 pythonforandroid/recipes/pygame-ce/__init__.py diff --git a/pythonforandroid/recipes/pygame-ce/__init__.py b/pythonforandroid/recipes/pygame-ce/__init__.py new file mode 100644 index 0000000000..c9bb00060b --- /dev/null +++ b/pythonforandroid/recipes/pygame-ce/__init__.py @@ -0,0 +1,70 @@ +from os.path import join + +from pythonforandroid.recipe import CompiledComponentsPythonRecipe +from pythonforandroid.toolchain import current_directory + + +class PygameCeRecipe(CompiledComponentsPythonRecipe): + """ + Recipe to build apps based on SDL2-based pygame. + + .. warning:: Some pygame functionality is still untested, and some + dependencies like freetype, postmidi and libjpeg are currently + not part of the build. It's usable, but not complete. + """ + + version = '2.2.1' + url = 'https://github.com/pygame-community/pygame-ce/archive/{version}.tar.gz' + + site_packages_name = 'pygame-ce' + name = 'pygame-ce' + + depends = ['sdl2', 'sdl2_image', 'sdl2_mixer', 'sdl2_ttf', 'setuptools', 'jpeg', 'png'] + call_hostpython_via_targetpython = False # Due to setuptools + install_in_hostpython = False + + for i in range(100): + print("HELLO FROM MY CUSTOM PYGAMECE RECIPE !!!!") + + def prebuild_arch(self, arch): + super().prebuild_arch(arch) + with current_directory(self.get_build_dir(arch.arch)): + setup_template = open(join("buildconfig", "Setup.Android.SDL2.in")).read() + env = self.get_recipe_env(arch) + env['ANDROID_ROOT'] = join(self.ctx.ndk.sysroot, 'usr') + + png = self.get_recipe('png', self.ctx) + png_lib_dir = join(png.get_build_dir(arch.arch), '.libs') + png_inc_dir = png.get_build_dir(arch) + + jpeg = self.get_recipe('jpeg', self.ctx) + jpeg_inc_dir = jpeg_lib_dir = jpeg.get_build_dir(arch.arch) + + sdl_mixer_includes = "" + sdl2_mixer_recipe = self.get_recipe('sdl2_mixer', self.ctx) + for include_dir in sdl2_mixer_recipe.get_include_dirs(arch): + sdl_mixer_includes += f"-I{include_dir} " + + setup_file = setup_template.format( + sdl_includes=( + " -I" + join(self.ctx.bootstrap.build_dir, 'jni', 'SDL', 'include') + + " -L" + join(self.ctx.bootstrap.build_dir, "libs", str(arch)) + + " -L" + png_lib_dir + " -L" + jpeg_lib_dir + " -L" + arch.ndk_lib_dir_versioned), + sdl_ttf_includes="-I"+join(self.ctx.bootstrap.build_dir, 'jni', 'SDL2_ttf'), + sdl_image_includes="-I"+join(self.ctx.bootstrap.build_dir, 'jni', 'SDL2_image'), + sdl_mixer_includes=sdl_mixer_includes, + jpeg_includes="-I"+jpeg_inc_dir, + png_includes="-I"+png_inc_dir, + freetype_includes="" + ) + open("Setup", "w").write(setup_file) + + def get_recipe_env(self, arch): + env = super().get_recipe_env(arch) + env['USE_SDL2'] = '1' + env["PYGAME_CROSS_COMPILE"] = "TRUE" + env["PYGAME_ANDROID"] = "TRUE" + return env + + +recipe = PygameCeRecipe() From bec0804e65ca32c7f71374b87894c97cd687d5a4 Mon Sep 17 00:00:00 2001 From: cbdj Date: Tue, 13 Jun 2023 23:32:04 +0200 Subject: [PATCH 2/3] Deleting useless print --- pythonforandroid/recipes/pygame-ce/__init__.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/pythonforandroid/recipes/pygame-ce/__init__.py b/pythonforandroid/recipes/pygame-ce/__init__.py index c9bb00060b..7a285a8ef1 100644 --- a/pythonforandroid/recipes/pygame-ce/__init__.py +++ b/pythonforandroid/recipes/pygame-ce/__init__.py @@ -22,9 +22,6 @@ class PygameCeRecipe(CompiledComponentsPythonRecipe): depends = ['sdl2', 'sdl2_image', 'sdl2_mixer', 'sdl2_ttf', 'setuptools', 'jpeg', 'png'] call_hostpython_via_targetpython = False # Due to setuptools install_in_hostpython = False - - for i in range(100): - print("HELLO FROM MY CUSTOM PYGAMECE RECIPE !!!!") def prebuild_arch(self, arch): super().prebuild_arch(arch) From 8f3cbcd916d929a958d649d351002043f5b00610 Mon Sep 17 00:00:00 2001 From: cbdj Date: Thu, 15 Jun 2023 08:38:31 +0200 Subject: [PATCH 3/3] Update pygame-ce recipe to match last pygame-ce release --- pythonforandroid/recipes/pygame-ce/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pythonforandroid/recipes/pygame-ce/__init__.py b/pythonforandroid/recipes/pygame-ce/__init__.py index 7a285a8ef1..f497f80366 100644 --- a/pythonforandroid/recipes/pygame-ce/__init__.py +++ b/pythonforandroid/recipes/pygame-ce/__init__.py @@ -13,7 +13,7 @@ class PygameCeRecipe(CompiledComponentsPythonRecipe): not part of the build. It's usable, but not complete. """ - version = '2.2.1' + version = '2.3.0' url = 'https://github.com/pygame-community/pygame-ce/archive/{version}.tar.gz' site_packages_name = 'pygame-ce'