diff --git a/dependencies.py b/dependencies.py index 39bd20f..3020454 100644 --- a/dependencies.py +++ b/dependencies.py @@ -276,9 +276,11 @@ class Libzim(Dependency): class Source(GitClone): git_remote = "https://github.com/openzim/libzim.git" git_dir = "libzim" + release_git_ref = "3.0.0" Builder = MesonBuilder + class ZimTools(Dependency): name = "zim-tools" dependencies = ['libzim'] @@ -336,6 +338,7 @@ class Kiwixlib(Dependency): class Source(GitClone): git_remote = "https://github.com/kiwix/kiwix-lib.git" git_dir = "kiwix-lib" + release_git_ref = "1.0.1" class Builder(MesonBuilder): @property @@ -359,6 +362,7 @@ class KiwixTools(Dependency): class Source(GitClone): git_remote = "https://github.com/kiwix/kiwix-tools.git" git_dir = "kiwix-tools" + release_git_ref = "0.3.0" class Builder(MesonBuilder): @property diff --git a/dependency_utils.py b/dependency_utils.py index 0cd4ed3..be00774 100644 --- a/dependency_utils.py +++ b/dependency_utils.py @@ -123,22 +123,33 @@ class ReleaseDownload(Source): class GitClone(Source): - git_ref = "master" + base_git_ref = "master" + release_git_ref = "master" @property def source_dir(self): - return self.git_dir + if self.buildEnv.make_release: + return "{}_release".format(self.git_dir) + else: + return self.git_dir @property def git_path(self): - return pj(self.buildEnv.source_dir, self.git_dir) + return pj(self.buildEnv.source_dir, self.source_dir) + + @property + def git_ref(self): + if self.buildEnv.make_release: + return self.release_git_ref + else: + return self.base_git_ref def _git_clone(self, context): context.force_native_build = True if os.path.exists(self.git_path): raise SkipCommand() command = "git clone --depth=1 --branch {} {} {}".format( - self.git_ref, self.git_remote, self.git_dir) + self.git_ref, self.git_remote, self.source_dir) self.buildEnv.run_command(command, self.buildEnv.source_dir, context) def _git_update(self, context): diff --git a/kiwix-build.py b/kiwix-build.py index a392f59..8b28a88 100755 --- a/kiwix-build.py +++ b/kiwix-build.py @@ -979,7 +979,9 @@ def parse_args(): parser.add_argument('--skip-source-prepare', action='store_true', help="Skip the source download part") parser.add_argument('--build-deps-only', action='store_true', - help=("Build only the dependencies of the specified targets.")) + help="Build only the dependencies of the specified targets.") + parser.add_argument('--make-release', action='store_true', + help="Build a release version") subgroup = parser.add_argument_group('advanced') subgroup.add_argument('--no-cert-check', action='store_true', help="Skip SSL certificate verification during download")