kivy-ios/kivy_ios/recipes/kivy/__init__.py
Andre Miras 56431b6922 Moving to dedicated kivy_ios/ package directory
- updates all imports to prefix kivy_ios
- adds basic `setup.py` file
- adds a simple `toolchain.py` to the root folder for compat

Makes it possible to install kivy-ios from PyPI:
```
pip install kivy-ios
toolchain --help
```
Note the `rebuild_updated_recipes.py` is expected to fail as we
moved all the recipes.

This is a working, but unperfect iteration that come with limitations
we would address in subsequent pull requests, such as:
- the new usage is not yet documented
- CI is not testing the source distribution creation and install
- Continuous Delivery to PyPI is not in place
- `toolchain` binary is a bit too generic name
- we're still vendoring things under `tools/`
2020-05-03 23:29:41 +02:00

57 lines
1.9 KiB
Python

from kivy_ios.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()