From 0c046e88fb98f3f4a0ded66d06dd90ca2adee806 Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Mon, 30 Jan 2017 17:15:29 +0100 Subject: [PATCH] Separate Icu dependency in two dependency instead of having if switch. This is better to use two different classes instead of have some methodes trying to do some introspection to know if we are cross-compiling or not. --- kiwix-build.py | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/kiwix-build.py b/kiwix-build.py index c605705..b692f12 100755 --- a/kiwix-build.py +++ b/kiwix-build.py @@ -619,11 +619,6 @@ class Icu(Dependency): name = "icu4c" version = "56_1" - def __init__(self, buildEnv, cross_compile_process=False, cross_build=None): - Dependency.__init__(self, buildEnv) - self.builder.cross_compile_process = cross_compile_process - self.builder.cross_build = cross_build - class Source(ReleaseDownload): archive = Remotefile('icu4c-56_1-src.tgz', '3a64e9105c734dcf631c0b3ed60404531bce6c0f5a64bfe1a6402a4cc2314816' @@ -654,14 +649,29 @@ class Icu(Dependency): default_configure_option += " --enable-static --disable-shared" else: default_configure_option += " --enable-shared --enable-shared" - if self.cross_build: - return default_configure_option + " --with-cross-build=" + self.cross_build.build_path return default_configure_option + +class Icu_native(Icu): + force_native_build = True + + class Builder(Icu.Builder): + @property + def build_path(self): + return super().build_path+"_native" + def _install(self, context): - if self.target.cross_compile_process and not self.target.cross_build: - raise SkipCommand() - return super()._install.(context) + raise SkipCommand() + + +class Icu_cross_compile(Icu): + dependencies = ['Icu_native'] + + class Builder(Icu.Builder): + @property + def configure_option(self): + Icu_native = self.buildEnv.targetsDict['Icu_native'] + return super().configure_option + " --with-cross-build=" + Icu_native.builder.build_path class Zimlib(Dependency): @@ -705,7 +715,7 @@ class Builder: if buildEnv.build_target != 'native': subBuildEnv = BuildEnv(buildEnv.options) subBuildEnv.setup_build_target('native') - nativeICU = Icu(subBuildEnv, True) + nativeICU = Icu_native(subBuildEnv) self.dependencies = [ Xapian(buildEnv), CTPP2(buildEnv), @@ -713,7 +723,7 @@ class Builder: Zimlib(buildEnv), MicroHttpd(buildEnv), nativeICU, - Icu(buildEnv, True, nativeICU), + Icu_cross_compile(buildEnv, True, nativeICU), Kiwixlib(buildEnv), KiwixTools(buildEnv) ]