d180ee0807
Borrowed from p4a: https://github.com/kivy/python-for-android/pull/2159 Also refs upstream issue: https://bugs.python.org/issue40261 Note that the fix used upstream cannot really be used directly here because the actual system Python is impacted. Adds venv build to CI to check for regressions.
57 lines
1.9 KiB
Python
57 lines
1.9 KiB
Python
from toolchain import CythonRecipe
|
|
from os.path import join
|
|
import logging
|
|
import shutil
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class KivyRecipe(CythonRecipe):
|
|
"""
|
|
post kivy 2.0.0rc1
|
|
Includes these iOS specific fixes:
|
|
- Statusbar / Fullscreen fix (PR #4589)
|
|
- Extend usage of certifi on iOS (PR #4648)
|
|
"""
|
|
version = "067064c23a275187e67f1c9d7de7cc06f384af4d"
|
|
url = "https://github.com/kivy/kivy/archive/{version}.zip"
|
|
library = "libkivy.a"
|
|
depends = ["sdl2", "sdl2_image", "sdl2_mixer", "sdl2_ttf", "ios",
|
|
"pyobjus", "python", "host_setuptools3"]
|
|
pbx_frameworks = ["OpenGLES", "Accelerate", "CoreMedia", "CoreVideo"]
|
|
pre_build_ext = True
|
|
|
|
def get_recipe_env(self, arch):
|
|
env = super(KivyRecipe, self).get_recipe_env(arch)
|
|
env["KIVY_SDL2_PATH"] = ":".join([
|
|
join(self.ctx.dist_dir, "include", "common", "sdl2"),
|
|
join(self.ctx.dist_dir, "include", "common", "sdl2_image"),
|
|
join(self.ctx.dist_dir, "include", "common", "sdl2_ttf"),
|
|
join(self.ctx.dist_dir, "include", "common", "sdl2_mixer")])
|
|
return env
|
|
|
|
def build_arch(self, arch):
|
|
self._patch_setup()
|
|
super(KivyRecipe, self).build_arch(arch)
|
|
|
|
def _patch_setup(self):
|
|
# patch setup to remove some functionnalities
|
|
pyconfig = join(self.build_dir, "setup.py")
|
|
|
|
def _remove_line(lines, pattern):
|
|
for line in lines[:]:
|
|
if pattern in line:
|
|
lines.remove(line)
|
|
with open(pyconfig) as fd:
|
|
lines = fd.readlines()
|
|
_remove_line(lines, "flags['libraries'] = ['GLESv2']")
|
|
with open(pyconfig, "w") as fd:
|
|
fd.writelines(lines)
|
|
|
|
def reduce_python_package(self):
|
|
dest_dir = join(self.ctx.site_packages_dir, "kivy")
|
|
shutil.rmtree(join(dest_dir, "tools"))
|
|
shutil.rmtree(join(dest_dir, "tests"))
|
|
|
|
|
|
recipe = KivyRecipe()
|