From 024cb169ec19c407dbe8614bf0c2b26f1ea5d27f Mon Sep 17 00:00:00 2001 From: Pol Canelles Date: Sat, 30 Dec 2017 00:28:19 +0100 Subject: [PATCH] Adds new recipe: libexpat --- pythonforandroid/recipes/libexpat/__init__.py | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 pythonforandroid/recipes/libexpat/__init__.py diff --git a/pythonforandroid/recipes/libexpat/__init__.py b/pythonforandroid/recipes/libexpat/__init__.py new file mode 100644 index 0000000000..f0e03acb71 --- /dev/null +++ b/pythonforandroid/recipes/libexpat/__init__.py @@ -0,0 +1,38 @@ + +import sh +from pythonforandroid.toolchain import Recipe, shprint, shutil, current_directory +from os.path import exists, join +from multiprocessing import cpu_count + + +class LibexpatRecipe(Recipe): + version = 'master' + url = 'https://github.com/libexpat/libexpat/archive/{version}.zip' + depends = [] + + def should_build(self, arch): + super(LibexpatRecipe, self).should_build(arch) + return not exists( + join(self.ctx.get_libs_dir(arch.arch), 'libexpat.so')) + + def build_arch(self, arch): + super(LibexpatRecipe, self).build_arch(arch) + env = self.get_recipe_env(arch) + with current_directory(join(self.get_build_dir(arch.arch), 'expat')): + dst_dir = join(self.get_build_dir(arch.arch), 'dist') + shprint(sh.Command('./buildconf.sh'), _env=env) + shprint( + sh.Command('./configure'), + '--host=arm-linux-androideabi', + '--enable-shared', + '--without-xmlwf', + '--prefix={}'.format(dst_dir), + _env=env) + shprint(sh.make, '-j', str(cpu_count()), _env=env) + shprint(sh.make, 'install', _env=env) + shutil.copyfile( + '{}/lib/libexpat.so'.format(dst_dir), + join(self.ctx.get_libs_dir(arch.arch), 'libexpat.so')) + + +recipe = LibexpatRecipe()