1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
import os
import sys
def importModules(buildDir, srcDir):
# Be very careful when you change this code, it's
# fragile and the order is really significant
# ltihooks
sys.path.insert(0, srcDir)
# atk, pango
sys.path.insert(0, buildDir)
# _gtk, keysyms, glade
sys.path.insert(0, os.path.join(buildDir, 'gtk'))
sys.argv.append('--g-fatal-warnings')
import ltihooks
gobject = importModule('gobject', buildDir, 'gobject/gobject.la')
version = getattr(gobject, 'pygobject_version', None)
if not version:
raise AssertionError("gobject %r is too old" % gobject)
if version < (2, 10, 0):
raise AssertionError("gobject %r is too old, %s found" % (gobject,
version))
atk = importModule('atk', buildDir)
pango = importModule('pango', buildDir)
gtk = importModule('gtk', buildDir, 'gtk')
gdk = importModule('gtk.gdk', buildDir, '_gdk.la')
# gtk/__init__.py removes the ltihooks, readd them
import gtk
ltihooks.install()
glade = importModule('gtk.glade', buildDir)
ltihooks.uninstall()
del ltihooks
globals().update(locals())
os.environ['PYGTK_USE_GIL_STATE_API'] = ''
gobject.threads_init()
def importModule(module, directory, name=None):
global isDistCheck
origName = module
if '.' in module:
fromlist = '.'.join(module.split('.')[:-1])
else:
fromlist = None
if not name:
name = module + '.la'
try:
obj = __import__(module, {}, {}, fromlist)
except ImportError:
raise
if hasattr(obj, '__file__'):
location = obj.__file__
else:
package = __import__(fromlist)
location = os.path.join(package.__file__, name)
current = os.getcwd()
expected = os.path.abspath(os.path.join(current, location))
current = os.path.abspath(location)
if current != expected:
raise AssertionError('module %s imported from wrong location. Expected %s, got %s' % (
module, expected, current))
return obj
|