Skip to content

Commit

Permalink
Merge pull request #284 from jix/remember-installed-version
Browse files Browse the repository at this point in the history
Add --version option based on git describe
  • Loading branch information
mmicko authored Jul 8, 2024
2 parents c9e3b82 + 8709c8a commit 61ca4de
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 3 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/.gittag export-subst
1 change: 1 addition & 0 deletions .gittag
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$Format:%(describe)$
10 changes: 9 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ ifeq ($(OS), Windows_NT)
PYTHON = $(shell cygpath -w -m $(PREFIX)/bin/python3)
endif

ifeq ($(file < .gittag),$$Format:%(describe)$$)
YOSYS_RELEASE_VERSION := SBY $(shell git describe --dirty)
else
YOSYS_RELEASE_VERSION := SBY $(file < .gittag)
endif

.PHONY: help install ci test html clean

help:
Expand Down Expand Up @@ -38,10 +44,12 @@ install:
sed -e 's|##yosys-program-prefix##|"'$(PROGRAM_PREFIX)'"|' < sbysrc/sby_core.py > $(DESTDIR)$(PREFIX)/share/yosys/python3/sby_core.py
ifeq ($(OS), Windows_NT)
sed -e 's|##yosys-sys-path##|sys.path += [os.path.dirname(__file__) + p for p in ["/share/python3", "/../share/yosys/python3"]]|;' \
-e "s|##yosys-release-version##|release_version = '$(YOSYS_RELEASE_VERSION)'|;" \
-e "s|#!/usr/bin/env python3|#!$(PYTHON)|" < sbysrc/sby.py > $(DESTDIR)$(PREFIX)/bin/sby-script.py
gcc -DGUI=0 -O -s -o $(DESTDIR)$(PREFIX)/bin/sby.exe extern/launcher.c
else
sed 's|##yosys-sys-path##|sys.path += [os.path.dirname(__file__) + p for p in ["/share/python3", "/../share/yosys/python3"]]|;' < sbysrc/sby.py > $(DESTDIR)$(PREFIX)/bin/sby
sed -e 's|##yosys-sys-path##|sys.path += [os.path.dirname(__file__) + p for p in ["/share/python3", "/../share/yosys/python3"]]|;' \
-e "s|##yosys-release-version##|release_version = '$(YOSYS_RELEASE_VERSION)'|;" < sbysrc/sby.py > $(DESTDIR)$(PREFIX)/bin/sby
chmod +x $(DESTDIR)$(PREFIX)/bin/sby
endif

Expand Down
5 changes: 4 additions & 1 deletion sbysrc/sby.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,12 @@
from sby_status import SbyStatusDb
import time, platform, click

release_version = 'unknown SBY version'
##yosys-release-version##

process_jobserver_environment() # needs to be called early

parser = parser_func()
parser = parser_func(release_version)

args = parser.parse_args()

Expand Down
4 changes: 3 additions & 1 deletion sbysrc/sby_cmdline.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ def __call__(self, parser, namespace, values, option_string=None):
name = option_string.lstrip(parser.prefix_chars).replace("-", "_")
getattr(namespace, self.dest)[name] = values

def parser_func():
def parser_func(release_version='unknown SBY version'):
parser = argparse.ArgumentParser(prog="sby",
usage="%(prog)s [options] [<jobname>.sby [tasknames] | <dirname>]")
parser.set_defaults(exe_paths=dict())
Expand Down Expand Up @@ -81,4 +81,6 @@ def parser_func():
parser.add_argument("arg_tasknames", metavar="tasknames", nargs="*",
help="tasks to run (only valid when <jobname>.sby is used)")

parser.add_argument('--version', action='version', version=release_version)

return parser

0 comments on commit 61ca4de

Please sign in to comment.