summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJohan Dahlin <johan@gnome.org>2010-09-16 00:37:49 -0300
committerJohan Dahlin <johan@gnome.org>2010-09-24 16:06:53 -0300
commit7cc31be7753b124b7f17febbbe0607765b426fa0 (patch)
tree1ad650110b5862701c653882fe2701cc937663b8 /tools
parent2aadc9201bf320820a02a789aaf9b1681fd453d5 (diff)
downloadgobject-introspection-7cc31be7753b124b7f17febbbe0607765b426fa0.tar.gz
Add an annotation tool
Diffstat (limited to 'tools')
-rw-r--r--tools/Makefile.am10
-rwxr-xr-xtools/g-ir-annotation-tool.in45
2 files changed, 52 insertions, 3 deletions
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 31acd022..9d96b6aa 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -3,13 +3,17 @@ INCLUDES = \
-I$(top_srcdir)/girepository
bin_PROGRAMS = g-ir-compiler g-ir-generate
-bin_SCRIPTS = g-ir-scanner
-EXTRA_DIST = g-ir-scanner.in
+bin_SCRIPTS = g-ir-scanner g-ir-annotation-tool
+EXTRA_DIST = g-ir-scanner.in g-ir-annotation-tool.in
g-ir-scanner: g-ir-scanner.in Makefile
$(AM_V_GEN) sed -e s,@libdir\@,$(libdir), -e s,@PYTHON\@,$(PYTHON), $< > $@.tmp && mv $@.tmp $@
@chmod a+x $@
+g-ir-annotation-tool: g-ir-annotation-tool.in Makefile
+ $(AM_V_GEN) sed -e s,@libdir\@,$(libdir), -e s,@PYTHON\@,$(PYTHON), $< > $@.tmp && mv $@.tmp $@
+ @chmod a+x $@
+
g_ir_compiler_SOURCES = compiler.c
g_ir_compiler_CFLAGS = $(GIREPO_CFLAGS)
g_ir_compiler_LDADD = \
@@ -28,4 +32,4 @@ GCOVSOURCES = \
$(g_ir_compiler_SOURCES) \
$(g_ir_generate_SOURCES)
-CLEANFILES=g-ir-scanner
+CLEANFILES=g-ir-scanner g-ir-annotation-tool
diff --git a/tools/g-ir-annotation-tool.in b/tools/g-ir-annotation-tool.in
new file mode 100755
index 00000000..4fbc4499
--- /dev/null
+++ b/tools/g-ir-annotation-tool.in
@@ -0,0 +1,45 @@
+#!@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
+
+if 'GI_SCANNER_DEBUG' in os.environ:
+ def on_exception(exctype, value, tb):
+ print "Caught exception: %r %r" % (exctype, value)
+ import pdb
+ pdb.pm()
+ sys.excepthook = on_exception
+
+# This only works on unix systems
+currentdir = os.path.dirname(os.path.abspath(sys.argv[0]))
+current_name = os.path.basename(currentdir)
+if current_name == 'tools':
+ path = os.path.abspath(os.path.join(currentdir, '..'))
+else:
+ # This is a private directory, we don't want to pollute the global
+ # namespace.
+ path = os.path.join('@libdir@', 'gobject-introspection')
+sys.path.insert(0, path)
+
+from giscanner.annotationmain import annotation_main
+
+sys.exit(annotation_main(sys.argv))