diff --git a/.github/scripts/build_definition.py b/.github/scripts/build_definition.py index f2d5135..89692fa 100644 --- a/.github/scripts/build_definition.py +++ b/.github/scripts/build_definition.py @@ -22,7 +22,7 @@ BUILD_DEF = """ | manylinux | aarch64_mixed | BP | | | | | linux-aarch64-manylinux | | ---------------------------------------------------------------------------------------------------------------------------------------------- # On Windows, we build only libzim for now. And only native_mixed as xapian doesn't compile as dll - | windows | native_static | Bd | d | | d | | win-x86_64 | win-x86_64-static | + | windows | native_static | Bd | d | d | d | | win-x86_64 | win-x86_64-static | | windows | native_dyn | Bd | | | | | win-x86_64 | win-x86_64-dyn | | windows | native_mixed | BPd | d | | | Bd | win-x86_64 | win-x86_64-mixed | ---------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 86f0c14..fe4c020 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: - native_mixed - native_dyn - native_static - runs-on: windows-latest + runs-on: windows-2022 env: OS_NAME: windows COMPILE_CONFIG: ${{matrix.config}} diff --git a/.github/workflows/releaseNigthly.yml b/.github/workflows/releaseNigthly.yml index 48cedd6..4181dc5 100644 --- a/.github/workflows/releaseNigthly.yml +++ b/.github/workflows/releaseNigthly.yml @@ -16,7 +16,7 @@ jobs: - native_mixed - native_dyn - native_static - runs-on: windows-latest + runs-on: windows-2022 env: OS_NAME: windows COMPILE_CONFIG: ${{matrix.config}} diff --git a/kiwixbuild/dependencies/docoptcpp.py b/kiwixbuild/dependencies/docoptcpp.py index b5bf4e1..7a0dbc6 100644 --- a/kiwixbuild/dependencies/docoptcpp.py +++ b/kiwixbuild/dependencies/docoptcpp.py @@ -1,4 +1,4 @@ -from .base import Dependency, GitClone, CMakeBuilder +from .base import Dependency, ReleaseDownload, MesonBuilder from kiwixbuild.utils import Remotefile @@ -6,11 +6,21 @@ from kiwixbuild.utils import Remotefile class docoptcpp(Dependency): name = "docoptcpp" - class Source(GitClone): - git_remote = "https://github.com/docopt/docopt.cpp.git" - git_dir = "docopt.cpp" - force_full_clone = True - git_ref = "3dd23e3280f213bacefdf5fcb04857bf52e90917" + class Source(ReleaseDownload): + name = "docoptcpp" + src_archive = Remotefile( + "v0.6.3.tar.gz", + "28af5a0c482c6d508d22b14d588a3b0bd9ff97135f99c2814a5aa3cbff1d6632", + "https://github.com/docopt/docopt.cpp/archive/v0.6.3.tar.gz", + ) - class Builder(CMakeBuilder): - make_install_targets = ["install"] + meson_archive = Remotefile( + "docopt_0.6.3-3_patch.zip", + "1f641187f9d3f35b0a5ebd2011876ef8e9b04b69b7b163095dd7dfa16219ad01", + "https://wrapdb.mesonbuild.com/v2/docopt_0.6.3-3/get_patch", + ) + + archives = [src_archive, meson_archive] + patches = ["docopt_meson_install_pkgconfig.patch"] + + Builder = MesonBuilder diff --git a/kiwixbuild/dependencies/kiwix_tools.py b/kiwixbuild/dependencies/kiwix_tools.py index 615b749..c2fee18 100644 --- a/kiwixbuild/dependencies/kiwix_tools.py +++ b/kiwixbuild/dependencies/kiwix_tools.py @@ -10,7 +10,7 @@ class KiwixTools(Dependency): git_dir = "kiwix-tools" class Builder(MesonBuilder): - dependencies = ["libkiwix"] + dependencies = ["libkiwix", "docoptcpp"] @property def configure_options(self): diff --git a/kiwixbuild/dependencies/tc_armhf.py b/kiwixbuild/dependencies/tc_armhf.py index a40b640..9138cdf 100644 --- a/kiwixbuild/dependencies/tc_armhf.py +++ b/kiwixbuild/dependencies/tc_armhf.py @@ -9,9 +9,6 @@ base_url = ( ) -aarch_base_url = "https://master.dl.sourceforge.net/project/raspberry-pi-cross-compilers/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/Stretch/GCC%206.3.0/" - - class armv6_toolchain(Dependency): dont_skip = True neutral = True @@ -53,7 +50,6 @@ class aarch64_toolchain(Dependency): archive = Remotefile( "cross-gcc-6.3.0-pi_64.tar.gz", "1b048bb8886ad63d21797cd9129fc37b9ea0dfaac7e3c36f888aa16fbec1d320", - aarch_base_url + "cross-gcc-6.3.0-pi_64.tar.gz", ) Builder = TcCopyBuilder diff --git a/kiwixbuild/dependencies/zim_tools.py b/kiwixbuild/dependencies/zim_tools.py index 9e677c8..1a0733c 100644 --- a/kiwixbuild/dependencies/zim_tools.py +++ b/kiwixbuild/dependencies/zim_tools.py @@ -1,4 +1,5 @@ from .base import Dependency, GitClone, MesonBuilder +from kiwixbuild._global import neutralEnv class ZimTools(Dependency): @@ -13,14 +14,17 @@ class ZimTools(Dependency): @classmethod def get_dependencies(cls, configInfo, allDeps): base_deps = ["libzim", "docoptcpp", "mustache"] - if configInfo.build != "win32": + if configInfo.build != "win32" and neutralEnv("distname") != "Windows": base_deps += ["libmagic", "gumbo"] return base_deps @property def configure_options(self): # We don't build zimwriterfs on win32, and so we don't have magic - if self.buildEnv.configInfo.build != "win32": + if ( + self.buildEnv.configInfo.build != "win32" + and neutralEnv("distname") != "Windows" + ): yield f"-Dmagic-install-prefix={self.buildEnv.install_dir}" if self.buildEnv.configInfo.static: yield "-Dstatic-linkage=true" diff --git a/kiwixbuild/patches/docopt_meson_install_pkgconfig.patch b/kiwixbuild/patches/docopt_meson_install_pkgconfig.patch new file mode 100644 index 0000000..c07f7dc --- /dev/null +++ b/kiwixbuild/patches/docopt_meson_install_pkgconfig.patch @@ -0,0 +1,31 @@ +diff '--color=auto' -ur docoptcpp-0.6.2/meson.build docoptcpp-0.6.2_patched/meson.build +--- docoptcpp-0.6.2/meson.build 2024-08-26 14:28:47.553448529 +0200 ++++ docoptcpp-0.6.2_patched/meson.build 2024-08-26 14:10:47.232603427 +0200 +@@ -10,11 +10,25 @@ + + # bug with missing dllexport. fixed in next version. + if cpp.get_argument_syntax() == 'msvc' +- doclib = static_library('docopt', 'docopt.cpp') ++ doclib = static_library('docopt', 'docopt.cpp', install: true) + else +- doclib = library('docopt', 'docopt.cpp') ++ doclib = library('docopt', 'docopt.cpp', install: true) + endif + + executable('docopt_example', 'examples/naval_fate.cpp', link_with: doclib) + docopt_dep = declare_dependency(include_directories: include_directories('.'), + link_with: doclib) ++ ++install_headers( ++ 'docopt.h', ++ 'docopt_value.h', ++ subdir: 'docopt' ++) ++ ++pkg_mod = import('pkgconfig') ++pkg_mod.generate( ++ doclib, ++ version: meson.project_version(), ++ name: 'docopt', ++ filebase: 'docopt' ++) diff --git a/kiwixbuild/versions.py b/kiwixbuild/versions.py index e1ad695..c5f9846 100644 --- a/kiwixbuild/versions.py +++ b/kiwixbuild/versions.py @@ -39,7 +39,7 @@ release_versions = { # This is the "version" of the whole base_deps_versions dict. # Change this when you change base_deps_versions. -base_deps_meta_version = "05" +base_deps_meta_version = "06" base_deps_versions = { "zlib": "1.2.12",