From 109b5372ea0bb1c873faee3b0b89f7d2644feae3 Mon Sep 17 00:00:00 2001 From: Nedko Arnaudov Date: Fri, 17 Nov 2023 23:02:13 +0200 Subject: [PATCH] wscript: fix git version generation for tarballs --- wscript | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/wscript b/wscript index bd544925..361192bb 100644 --- a/wscript +++ b/wscript @@ -23,9 +23,11 @@ from __future__ import print_function import os import shutil import sys +import re from waflib import Logs, Options, TaskGen from waflib import Context +from waflib import Scripting from waflib.Build import BuildContext, CleanContext, InstallContext, UninstallContext from waftoolchainflags import WafToolchainFlags @@ -245,21 +247,25 @@ def configure(conf): print() def git_ver(self): - bld = self.generator.bld - header = self.outputs[0].abspath() - if os.access('./version.h', os.R_OK): - header = os.path.join(os.getcwd(), out, "version.h") - shutil.copy('./version.h', header) - data = open(header).read() - m = re.match(r'^#define GIT_VERSION "([^"]*)"$', data) - if m != None: - self.ver = m.group(1) - Logs.pprint('BLUE', "tarball from git revision " + self.ver) - else: - self.ver = "tarball" - return + if type(self) == Scripting.Dist: + header = "./gitversion.h" + bld = self + else: + bld = self.generator.bld + header = self.outputs[0].abspath() + if os.access('./gitversion.h', os.R_OK): + #header = os.path.join(os.getcwd(), out, "version.h") + shutil.copy('./gitversion.h', header) + data = open(header).read() + m = re.match(r'^#define GIT_VERSION "([^"]*)"$', data) + if m != None: + self.ver = m.group(1) + Logs.pprint('BLUE', "tarball from git revision " + self.ver) + else: + self.ver = "tarball" + return - if bld.srcnode.find_node('.git'): + if os.access('./.git', os.R_OK): self.ver = bld.cmd_and_log("LANG= git rev-parse HEAD", quiet=Context.BOTH).splitlines()[0] if bld.cmd_and_log("LANG= git diff-index --name-only HEAD", quiet=Context.BOTH).splitlines(): self.ver += "-dirty" @@ -340,3 +346,6 @@ def build(bld): Logs.pprint('CYAN', 'Removing doxygen generated documentation...') shutil.rmtree(html_build_dir) Logs.pprint('CYAN', 'Removing doxygen generated documentation done.') + +def dist(ctx): + git_ver(ctx)