Windows port: Make g-ir-annotiotion-tool, g-ir-doc-tool and g-ir-scanner 'relocatable...
authorDieter Verfaillie <dieterv@optionexplicit.be>
Mon, 5 Sep 2011 19:49:05 +0000 (21:49 +0200)
committerDieter Verfaillie <dieterv@optionexplicit.be>
Wed, 7 Sep 2011 20:23:54 +0000 (22:23 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=620566

tools/g-ir-annotation-tool.in
tools/g-ir-doc-tool.in
tools/g-ir-scanner.in

index 5668cbe..9ce008d 100755 (executable)
@@ -23,7 +23,12 @@ import os
 import sys
 import __builtin__
 
-__builtin__.__dict__['DATADIR'] = "@datarootdir@"
+if os.name == 'nt':
+    datadir = os.path.join(os.path.dirname(__file__), '..', 'share')
+else:
+    datadir = "@datarootdir@"
+
+__builtin__.__dict__['DATADIR'] = datadir
 
 if 'GI_SCANNER_DEBUG' in os.environ:
     def on_exception(exctype, value, tb):
@@ -32,13 +37,17 @@ if 'GI_SCANNER_DEBUG' in os.environ:
         pdb.pm()
     sys.excepthook = on_exception
 
-srcdir=os.getenv('UNINSTALLED_INTROSPECTION_SRCDIR', None)
+srcdir = os.getenv('UNINSTALLED_INTROSPECTION_SRCDIR', None)
 if srcdir is not None:
     path = srcdir
 else:
     # This is a private directory, we don't want to pollute the global
     # namespace.
-    path = os.path.join('@libdir@', 'gobject-introspection')
+    if os.name == 'nt':
+        # Makes g-ir-annotation-tool 'relocatable' at runtime on Windows.
+        path = os.path.join(os.path.dirname(__file__), '..', 'lib', 'gobject-introspection')
+    else:
+        path = os.path.join('@libdir@', 'gobject-introspection')
 sys.path.insert(0, path)
 
 from giscanner.annotationmain import annotation_main
index 4a84afa..02db10c 100644 (file)
@@ -23,7 +23,12 @@ import os
 import sys
 import __builtin__
 
-__builtin__.__dict__['DATADIR'] = "@datarootdir@"
+if os.name == 'nt':
+    datadir = os.path.join(os.path.dirname(__file__), '..', 'share')
+else:
+    datadir = "@datarootdir@"
+
+__builtin__.__dict__['DATADIR'] = datadir
 
 if 'GI_SCANNER_DEBUG' in os.environ:
     def on_exception(exctype, value, tb):
@@ -38,7 +43,11 @@ if srcdir is not None:
 else:
     # This is a private directory, we don't want to pollute the global
     # namespace.
-    path = os.path.join('@libdir@', 'gobject-introspection')
+    if os.name == 'nt':
+        # Makes g-ir-doc-tool 'relocatable' at runtime on Windows.
+        path = os.path.join(os.path.dirname(__file__), '..', 'lib', 'gobject-introspection')
+    else:
+        path = os.path.join('@libdir@', 'gobject-introspection')
 sys.path.insert(0, path)
 
 from giscanner.docmain import doc_main
index f709683..9a1b2bf 100755 (executable)
@@ -23,7 +23,12 @@ import os
 import sys
 import __builtin__
 
-__builtin__.__dict__['DATADIR'] = "@datarootdir@"
+if os.name == 'nt':
+    datadir = os.path.join(os.path.dirname(__file__), '..', 'share')
+else:
+    datadir = "@datarootdir@"
+
+__builtin__.__dict__['DATADIR'] = datadir
 
 if 'GI_SCANNER_DEBUG' in os.environ:
     def on_exception(exctype, value, tb):
@@ -38,7 +43,11 @@ if srcdir is not None:
 else:
     # This is a private directory, we don't want to pollute the global
     # namespace.
-    path = os.path.join('@libdir@', 'gobject-introspection')
+    if os.name == 'nt':
+        # Makes g-ir-scanner 'relocatable' at runtime on Windows.
+        path = os.path.join(os.path.dirname(__file__), '..', 'lib', 'gobject-introspection')
+    else:
+        path = os.path.join('@libdir@', 'gobject-introspection')
 sys.path.insert(0, path)
 
 from giscanner.scannermain import scanner_main