from .base import ( Dependency, ReleaseDownload, MakeBuilder ) from kiwixbuild.utils import SkipCommand, Remotefile from kiwixbuild._global import get_target_step class Icu(Dependency): name = "icu4c" class Source(ReleaseDownload): archive = Remotefile('icu4c_svn_58-2.tar.gz', 'fd8fcc1f1b8b2b71b879e88844480ebec107189c21076c81573f71dca5686a0d') patches = ["icu4c_fix_static_lib_name_mingw.patch", "icu4c_android_elf64_st_info.patch", "icu4c_custom_data.patch", "icu4c_noxlocale.patch", "icu4c_rpath.patch", "icu4c_build_config.patch"] class Builder(MakeBuilder): subsource_dir = "source" @classmethod def get_dependencies(cls, platformInfo, allDeps): plt = 'native_static' if platformInfo.static else 'native_dyn' return [(plt, 'icu4c')] @property def configure_option(self): options = ("--disable-samples --disable-tests --disable-extras " "--disable-dyload --enable-rpath " "--disable-icuio --disable-layoutex") platformInfo = self.buildEnv.platformInfo if platformInfo.build != 'native': icu_native_builder = get_target_step( 'icu4c', 'native_static' if platformInfo.static else 'native_dyn') options += " --with-cross-build={} --disable-tools".format( icu_native_builder.build_path) if platformInfo.build == 'android': options += " --with-data-packaging=archive" return options