diff --git a/kivy_ios/recipes/netifaces/__init__.py b/kivy_ios/recipes/netifaces/__init__.py new file mode 100644 index 000000000..d022e68ae --- /dev/null +++ b/kivy_ios/recipes/netifaces/__init__.py @@ -0,0 +1,48 @@ +import sh + +from os.path import join + +from kivy_ios.toolchain import CythonRecipe, cd, shprint + + +class NetifacesRecipe(CythonRecipe): + """ + Also requires `setuptools to be installed on target (for pkg_resources): + ```sh + python toolchain.py pip install setuptools + ``` + """ + + version = "0.10.9" + url = "https://pypi.io/packages/source/n/netifaces/netifaces-{version}.tar.gz" + depends = ["python3", "host_setuptools3"] + library = "libnetifaces.a" + cythonize = False + + def dest_dir(self): + return join(self.ctx.dist_dir, "root", "python3") + + def get_netifaces_env(self, arch): + build_env = arch.get_env() + build_env["PYTHONPATH"] = join( + self.dest_dir(), "lib", "python3.8", "site-packages" + ) + return build_env + + def install(self): + arch = list(self.filtered_archs)[0] + build_dir = self.get_build_dir(arch.arch) + build_env = self.get_netifaces_env(arch) + hostpython = sh.Command(self.ctx.hostpython) + with cd(build_dir): + shprint( + hostpython, + "setup.py", + "install", + "--prefix", + self.dest_dir(), + _env=build_env, + ) + + +recipe = NetifacesRecipe()