diff --git a/pythonforandroid/recipes/libwebp/__init__.py b/pythonforandroid/recipes/libwebp/__init__.py new file mode 100644 index 0000000000..aacd485880 --- /dev/null +++ b/pythonforandroid/recipes/libwebp/__init__.py @@ -0,0 +1,50 @@ +from multiprocessing import cpu_count +from os.path import join + +import sh + +from pythonforandroid.util import current_directory, ensure_dir +from pythonforandroid.toolchain import shprint +from pythonforandroid.recipe import Recipe + + +class LibwebpRecipe(Recipe): + version = '1.1.0' + url = 'https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-{version}.tar.gz' # noqa + depends = [] + built_libraries = { + 'libwebp.so': 'installation/lib', + 'libwebpdecoder.so': 'installation/lib', + 'libwebpdemux.so': 'installation/lib', + 'libwebpmux.so': 'installation/lib', + } + + def build_arch(self, arch): + source_dir = self.get_build_dir(arch.arch) + build_dir = join(source_dir, 'build') + install_dir = join(source_dir, 'installation') + toolchain_file = join( + self.ctx.ndk_dir, 'build', 'cmake', 'android.toolchain.cmake', + ) + + ensure_dir(build_dir) + with current_directory(build_dir): + env = self.get_recipe_env(arch) + shprint(sh.cmake, source_dir, + f'-DANDROID_ABI={arch.arch}', + f'-DANDROID_NATIVE_API_LEVEL={self.ctx.ndk_api}', + + f'-DCMAKE_TOOLCHAIN_FILE={toolchain_file}', + f'-DCMAKE_INSTALL_PREFIX={install_dir}', + '-DCMAKE_BUILD_TYPE=Release', + + '-DBUILD_SHARED_LIBS=1', + + _env=env) + shprint(sh.make, '-j' + str(cpu_count()), _env=env) + # We make the install because this way we will have + # all the includes and libraries in one place + shprint(sh.make, 'install', _env=env) + + +recipe = LibwebpRecipe()