summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDieter Verfaillie <dieterv@optionexplicit.be>2015-04-21 07:20:43 +0200
committerDieter Verfaillie <dieterv@optionexplicit.be>2015-06-29 16:54:29 +0200
commit7e0014607513fc335f96baf9408cdeb6d29c1375 (patch)
treed1daed29b458d90136658dbce8e55e6cab3e4220
parentaf97f472b16ceef6c33b8fd6b9f36eef0e60c7cb (diff)
downloadgobject-introspection-7e0014607513fc335f96baf9408cdeb6d29c1375.tar.gz
tools: use a template to generate the tools scripts
g-ir-annotation-tool, g-ir-doc-tool and g-ir-scanner where identical except for the module and function being invoked. Avoid code duplication and generate these from a common template.
-rw-r--r--Makefile-tools.am18
-rwxr-xr-xtools/g-ir-annotation-tool.in58
-rwxr-xr-xtools/g-ir-scanner.in58
-rw-r--r--tools/g-ir-tool-template.in (renamed from tools/g-ir-doc-tool.in)4
4 files changed, 10 insertions, 128 deletions
diff --git a/Makefile-tools.am b/Makefile-tools.am
index 34d2a255..dbd264c3 100644
--- a/Makefile-tools.am
+++ b/Makefile-tools.am
@@ -6,22 +6,20 @@ bin_SCRIPTS += g-ir-doc-tool
endif
EXTRA_DIST += \
- tools/g-ir-scanner.in \
- tools/g-ir-annotation-tool.in \
- tools/g-ir-doc-tool.in
+ tools/g-ir-tool-template.in
-TOOL_SUBSTITUTIONS = sed -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON\@,$(PYTHON),
+TOOL_SUBSTITUTIONS = -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON\@,$(PYTHON),
-g-ir-scanner: tools/g-ir-scanner.in _giscanner.la Makefile
- $(AM_V_GEN) $(TOOL_SUBSTITUTIONS) $< > $@.tmp && mv $@.tmp $@
+g-ir-scanner: tools/g-ir-tool-template.in _giscanner.la Makefile
+ $(AM_V_GEN) sed $(TOOL_SUBSTITUTIONS) -e s,@TOOL_MODULE\@,scannermain, -e s,@TOOL_FUNCTION\@,scanner_main, $< > $@.tmp && mv $@.tmp $@
@chmod a+x $@
-g-ir-annotation-tool: tools/g-ir-annotation-tool.in _giscanner.la Makefile
- $(AM_V_GEN) $(TOOL_SUBSTITUTIONS) $< > $@.tmp && mv $@.tmp $@
+g-ir-annotation-tool: tools/g-ir-tool-template.in _giscanner.la Makefile
+ $(AM_V_GEN) sed $(TOOL_SUBSTITUTIONS) -e s,@TOOL_MODULE\@,annotationmain, -e s,@TOOL_FUNCTION\@,annotation_main, $< > $@.tmp && mv $@.tmp $@
@chmod a+x $@
-g-ir-doc-tool: tools/g-ir-doc-tool.in _giscanner.la Makefile
- $(AM_V_GEN) $(TOOL_SUBSTITUTIONS) $< > $@.tmp && mv $@.tmp $@
+g-ir-doc-tool: tools/g-ir-tool-template.in _giscanner.la Makefile
+ $(AM_V_GEN) sed $(TOOL_SUBSTITUTIONS) -e s,@TOOL_MODULE\@,docmain, -e s,@TOOL_FUNCTION\@,doc_main, $< > $@.tmp && mv $@.tmp $@
@chmod a+x $@
g_ir_compiler_SOURCES = tools/compiler.c
diff --git a/tools/g-ir-annotation-tool.in b/tools/g-ir-annotation-tool.in
deleted file mode 100755
index cf17a235..00000000
--- a/tools/g-ir-annotation-tool.in
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env @PYTHON@
-# -*- Mode: Python -*-
-# GObject-Introspection - a framework for introspecting GObject libraries
-# Copyright (C) 2008 Johan Dahlin
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-
-import os
-import sys
-import __builtin__
-
-
-debug = os.getenv('GI_SCANNER_DEBUG', '').split(',')
-if debug:
- if 'pydevd' in debug:
- # http://pydev.org/manual_adv_remote_debugger.html
- pydevdpath = os.getenv('PYDEVDPATH', None)
- if pydevdpath is not None and os.path.isdir(pydevdpath):
- sys.path.insert(0, pydevdpath)
- import pydevd
- pydevd.settrace()
- else:
- def on_exception(exctype, value, tb):
- print "Caught exception: %r %r" % (exctype, value)
- import pdb
- pdb.pm()
- sys.excepthook = on_exception
-
-if os.name == 'nt':
- datadir = os.path.join(os.path.dirname(__file__), '..', 'share')
- pylibdir = os.path.join(os.path.dirname(__file__), '..', 'lib', 'gobject-introspection')
-else:
- datadir = "@datarootdir@"
- pylibdir = os.path.join('@libdir@', 'gobject-introspection')
-
-srcdir = os.getenv('UNINSTALLED_INTROSPECTION_SRCDIR', None)
-if srcdir is not None:
- pylibdir = srcdir
-
-__builtin__.__dict__['DATADIR'] = datadir
-sys.path.insert(0, pylibdir)
-
-from giscanner.annotationmain import annotation_main
-sys.exit(annotation_main(sys.argv))
diff --git a/tools/g-ir-scanner.in b/tools/g-ir-scanner.in
deleted file mode 100755
index 7b2c5687..00000000
--- a/tools/g-ir-scanner.in
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env @PYTHON@
-# -*- Mode: Python -*-
-# GObject-Introspection - a framework for introspecting GObject libraries
-# Copyright (C) 2008 Johan Dahlin
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-
-import os
-import sys
-import __builtin__
-
-
-debug = os.getenv('GI_SCANNER_DEBUG', '').split(',')
-if debug:
- if 'pydevd' in debug:
- # http://pydev.org/manual_adv_remote_debugger.html
- pydevdpath = os.getenv('PYDEVDPATH', None)
- if pydevdpath is not None and os.path.isdir(pydevdpath):
- sys.path.insert(0, pydevdpath)
- import pydevd
- pydevd.settrace()
- else:
- def on_exception(exctype, value, tb):
- print "Caught exception: %r %r" % (exctype, value)
- import pdb
- pdb.pm()
- sys.excepthook = on_exception
-
-if os.name == 'nt':
- datadir = os.path.join(os.path.dirname(__file__), '..', 'share')
- pylibdir = os.path.join(os.path.dirname(__file__), '..', 'lib', 'gobject-introspection')
-else:
- datadir = "@datarootdir@"
- pylibdir = os.path.join('@libdir@', 'gobject-introspection')
-
-srcdir = os.getenv('UNINSTALLED_INTROSPECTION_SRCDIR', None)
-if srcdir is not None:
- pylibdir = srcdir
-
-__builtin__.__dict__['DATADIR'] = datadir
-sys.path.insert(0, pylibdir)
-
-from giscanner.scannermain import scanner_main
-sys.exit(scanner_main(sys.argv))
diff --git a/tools/g-ir-doc-tool.in b/tools/g-ir-tool-template.in
index e3bf8a34..43eea46e 100644
--- a/tools/g-ir-doc-tool.in
+++ b/tools/g-ir-tool-template.in
@@ -54,5 +54,5 @@ if srcdir is not None:
__builtin__.__dict__['DATADIR'] = datadir
sys.path.insert(0, pylibdir)
-from giscanner.docmain import doc_main
-sys.exit(doc_main(sys.argv))
+from giscanner.@TOOL_MODULE@ import @TOOL_FUNCTION@
+sys.exit(@TOOL_FUNCTION@(sys.argv))