lbry-android/p4a/pythonforandroid/recipes/pyicu/__init__.py

60 lines
2 KiB
Python
Raw Normal View History

2017-08-13 03:24:00 +02:00
import os
import sh
from os.path import join
from pythonforandroid.recipe import CompiledComponentsPythonRecipe
from pythonforandroid.util import current_directory
from pythonforandroid.toolchain import shprint, info
class PyICURecipe(CompiledComponentsPythonRecipe):
version = '1.9.2'
url = 'https://pypi.python.org/packages/source/P/PyICU/PyICU-{version}.tar.gz'
depends = [('python2', 'python3crystax'), "icu"]
patches = ['locale.patch', 'icu.patch']
def get_recipe_env(self, arch):
env = super(PyICURecipe, self).get_recipe_env(arch)
icu_include = join(
self.ctx.get_python_install_dir(), "include", "icu")
env["CC"] += " -I"+icu_include
include = (
" -I{ndk}/sources/cxx-stl/gnu-libstdc++/{version}/include/"
" -I{ndk}/sources/cxx-stl/gnu-libstdc++/{version}/libs/"
"{arch}/include")
include = include.format(ndk=self.ctx.ndk_dir,
version=env["TOOLCHAIN_VERSION"],
arch=arch.arch)
env["CC"] += include
lib = "{ndk}/sources/cxx-stl/gnu-libstdc++/{version}/libs/{arch}"
lib = lib.format(ndk=self.ctx.ndk_dir,
version=env["TOOLCHAIN_VERSION"],
arch=arch.arch)
env["LDFLAGS"] += " -lgnustl_shared -L"+lib
build_dir = self.get_build_dir(arch.arch)
env["LDFLAGS"] += " -L"+build_dir
return env
def build_arch(self, arch):
build_dir = self.get_build_dir(arch.arch)
info("create links to icu libs")
lib_dir = join(self.ctx.get_python_install_dir(), "lib")
icu_libs = [f for f in os.listdir(lib_dir) if f.startswith("libicu")]
for l in icu_libs:
raw = l.rsplit(".", 1)[0]
try:
shprint(sh.ln, "-s", join(lib_dir, l), join(build_dir, raw))
except Exception:
pass
super(PyICURecipe, self).build_arch(arch)
recipe = PyICURecipe()