from .base import Dependency, GitClone, ReleaseDownload, MakeBuilder, MesonBuilder from kiwixbuild.utils import Remotefile from kiwixbuild._global import neutralEnv import platform class Xapian(Dependency): name = "xapian-core" if platform.system() == "Windows": class Source(GitClone): git_remote = "https://github.com/openzim/xapian-meson.git" git_dir = "xapian-core" class Builder(MesonBuilder): configure_options = [ "-Denable-sse=false", "-Denable-backend-chert=false", "-Denable-backend-remote=false", ] subsource_dir = "xapian-core" @classmethod def get_dependencies(cls, configInfo, allDeps): return ["zlib"] else: class Source(ReleaseDownload): archive = Remotefile( "xapian-core-1.4.23.tar.xz", "30d3518172084f310dab86d262b512718a7f9a13635aaa1a188e61dc26b2288c", ) class Builder(MakeBuilder): configure_options = [ "--disable-sse", "--disable-backend-chert", "--disable-backend-remote", "--disable-documentation", ] configure_env = { "_format_LDFLAGS": "{env.LDFLAGS} -L{buildEnv.install_dir}/{buildEnv.libprefix}", "_format_CXXFLAGS": "{env.CXXFLAGS} -I{buildEnv.install_dir}/include", } @classmethod def get_dependencies(cls, configInfo, allDeps): deps = ["zlib", "lzma"] if ( configInfo.build in ("win32", "win64", "wasm") or neutralEnv("distname") == "Darwin" ): return deps return deps + ["uuid"]