wscript: fix git version generation for tarballs

This commit is contained in:
Nedko Arnaudov 2023-11-17 23:02:13 +02:00
parent ba3b50dcd2
commit 109b5372ea
1 changed files with 23 additions and 14 deletions

37
wscript
View File

@ -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)