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 os
import shutil import shutil
import sys import sys
import re
from waflib import Logs, Options, TaskGen from waflib import Logs, Options, TaskGen
from waflib import Context from waflib import Context
from waflib import Scripting
from waflib.Build import BuildContext, CleanContext, InstallContext, UninstallContext from waflib.Build import BuildContext, CleanContext, InstallContext, UninstallContext
from waftoolchainflags import WafToolchainFlags from waftoolchainflags import WafToolchainFlags
@ -245,21 +247,25 @@ def configure(conf):
print() print()
def git_ver(self): def git_ver(self):
bld = self.generator.bld if type(self) == Scripting.Dist:
header = self.outputs[0].abspath() header = "./gitversion.h"
if os.access('./version.h', os.R_OK): bld = self
header = os.path.join(os.getcwd(), out, "version.h") else:
shutil.copy('./version.h', header) bld = self.generator.bld
data = open(header).read() header = self.outputs[0].abspath()
m = re.match(r'^#define GIT_VERSION "([^"]*)"$', data) if os.access('./gitversion.h', os.R_OK):
if m != None: #header = os.path.join(os.getcwd(), out, "version.h")
self.ver = m.group(1) shutil.copy('./gitversion.h', header)
Logs.pprint('BLUE', "tarball from git revision " + self.ver) data = open(header).read()
else: m = re.match(r'^#define GIT_VERSION "([^"]*)"$', data)
self.ver = "tarball" if m != None:
return 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] 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(): if bld.cmd_and_log("LANG= git diff-index --name-only HEAD", quiet=Context.BOTH).splitlines():
self.ver += "-dirty" self.ver += "-dirty"
@ -340,3 +346,6 @@ def build(bld):
Logs.pprint('CYAN', 'Removing doxygen generated documentation...') Logs.pprint('CYAN', 'Removing doxygen generated documentation...')
shutil.rmtree(html_build_dir) shutil.rmtree(html_build_dir)
Logs.pprint('CYAN', 'Removing doxygen generated documentation done.') Logs.pprint('CYAN', 'Removing doxygen generated documentation done.')
def dist(ctx):
git_ver(ctx)