[gobject-introspection] Add --version option to Python based tools.
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gobject-introspection] Add --version option to Python based tools.
- Date: Thu, 26 Apr 2018 11:19:35 +0000 (UTC)
commit eb4e0fc8f9e278e81a3191f5e30610aaf4aaa762
Author: Tomasz Miąsko <tomasz miasko gmail com>
Date: Thu Apr 26 00:00:00 2018 +0000
Add --version option to Python based tools.
Version file is generated at build time and stored as _version.py.
To support running uninstalled tools, a fallback version is included as
well. Example output of `--version` option:
```
$ for t in g-ir-{annotation-tool,scanner,doc-tool}; do $t --version; done
g-ir-annotation-tool 1.57.1
g-ir-scanner 1.57.1
g-ir-doc-tool 1.57.1
```
Makefile-giscanner.am | 1 +
configure.ac | 1 +
giscanner/__init__.py | 4 ++++
giscanner/_version.py.in | 1 +
giscanner/annotationmain.py | 4 +++-
giscanner/docmain.py | 5 ++++-
giscanner/meson.build | 10 ++++++++--
giscanner/scannermain.py | 4 +++-
8 files changed, 25 insertions(+), 5 deletions(-)
---
diff --git a/Makefile-giscanner.am b/Makefile-giscanner.am
index 107e98d3..271b55dd 100644
--- a/Makefile-giscanner.am
+++ b/Makefile-giscanner.am
@@ -27,6 +27,7 @@ pkgpyexecdir = $(pkglibdir)/giscanner
pkgpyexec_LTLIBRARIES = _giscanner.la
pkgpyexec_PYTHON = \
giscanner/__init__.py \
+ giscanner/_version.py \
giscanner/annotationmain.py \
giscanner/annotationparser.py \
giscanner/ast.py \
diff --git a/configure.ac b/configure.ac
index 58a86b1c..4a5ee842 100644
--- a/configure.ac
+++ b/configure.ac
@@ -378,6 +378,7 @@ tests/warn/Makefile
docs/Makefile
docs/reference/Makefile
docs/reference/version.xml
+giscanner/_version.py
gobject-introspection-1.0.pc
gobject-introspection-no-export-1.0.pc
config.h.win32
diff --git a/giscanner/__init__.py b/giscanner/__init__.py
index 139b5187..391d36bd 100644
--- a/giscanner/__init__.py
+++ b/giscanner/__init__.py
@@ -22,3 +22,7 @@ import os
builddir = os.environ.get('UNINSTALLED_INTROSPECTION_BUILDDIR')
if builddir is not None:
__path__.append(os.path.join(builddir, 'giscanner'))
+try:
+ from ._version import __version__
+except ImportError:
+ __version__ = '0.0.0'
diff --git a/giscanner/_version.py.in b/giscanner/_version.py.in
new file mode 100644
index 00000000..4b56f5ba
--- /dev/null
+++ b/giscanner/_version.py.in
@@ -0,0 +1 @@
+__version__ = '@VERSION@'
diff --git a/giscanner/annotationmain.py b/giscanner/annotationmain.py
index b82ff818..c7be4f7c 100644
--- a/giscanner/annotationmain.py
+++ b/giscanner/annotationmain.py
@@ -28,6 +28,7 @@ import optparse
import codecs
from contextlib import contextmanager
+import giscanner
from giscanner import message
from giscanner.annotationparser import GtkDocCommentBlockParser, GtkDocCommentBlockWriter
from giscanner.scannermain import (get_preprocessor_option_group,
@@ -54,7 +55,8 @@ def encode_stdout(encoding):
def annotation_main(args):
- parser = optparse.OptionParser('%prog [options] sources')
+ parser = optparse.OptionParser('%prog [options] sources',
+ version='%prog ' + giscanner.__version__)
group = optparse.OptionGroup(parser, "Tool modes, one is required")
group.add_option("-e", "--extract",
diff --git a/giscanner/docmain.py b/giscanner/docmain.py
index 3bea5421..53f5206c 100644
--- a/giscanner/docmain.py
+++ b/giscanner/docmain.py
@@ -24,8 +24,10 @@ from __future__ import print_function
from __future__ import unicode_literals
import os
+import sys
import argparse
+import giscanner
from .docwriter import DocWriter
from .sectionparser import generate_sections_file, write_sections_file
from .transformer import Transformer
@@ -33,7 +35,8 @@ from .transformer import Transformer
def doc_main(args):
parser = argparse.ArgumentParser()
-
+ parser.add_argument('--version', action='version',
+ version='%(prog)s ' + giscanner.__version__)
parser.add_argument("girfile")
parser.add_argument("-o", "--output",
action="store", dest="output",
diff --git a/giscanner/meson.build b/giscanner/meson.build
index 006722d2..5a1e44c9 100644
--- a/giscanner/meson.build
+++ b/giscanner/meson.build
@@ -31,12 +31,18 @@ pkglibdir = join_paths(get_option('libdir'), meson.project_name())
giscannerdir = join_paths(pkglibdir, 'giscanner')
giscanner_built_files = []
-blank_conf = configuration_data()
+giscanner_conf_data = configuration_data()
+giscanner_conf_data.set('VERSION', meson.project_version())
+giscanner_built_files += configure_file(input: '_version.py.in',
+ output: '_version.py',
+ install : true,
+ install_dir : giscannerdir,
+ configuration: giscanner_conf_data)
foreach f : giscanner_files
giscanner_built_files += configure_file(input : f, output : f,
install : true,
install_dir : giscannerdir,
- configuration : blank_conf)
+ configuration : giscanner_conf_data)
endforeach
install_subdir('doctemplates', install_dir: giscannerdir)
diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
index ffcb95cd..c608d04f 100755
--- a/giscanner/scannermain.py
+++ b/giscanner/scannermain.py
@@ -35,6 +35,7 @@ import sys
import tempfile
import platform
+import giscanner
from giscanner import message
from giscanner.annotationparser import GtkDocCommentBlockParser
from giscanner.ast import Include, Namespace
@@ -101,7 +102,8 @@ def get_windows_option_group(parser):
def _get_option_parser():
- parser = optparse.OptionParser('%prog [options] sources')
+ parser = optparse.OptionParser('%prog [options] sources',
+ version='%prog ' + giscanner.__version__)
parser.add_option('', "--quiet",
action="store_true", dest="quiet",
default=False,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]