1 | #
|
---|
2 | # Copyright (C) 2008 Sun Microsystems, Inc.
|
---|
3 | #
|
---|
4 | # This file is part of VirtualBox Open Source Edition (OSE), as
|
---|
5 | # available from http://www.virtualbox.org. This file is free software;
|
---|
6 | # you can redistribute it and/or modify it under the terms of the GNU
|
---|
7 | # General Public License (GPL) as published by the Free Software
|
---|
8 | # Foundation, in version 2 as it comes in the "COPYING" file of the
|
---|
9 | # VirtualBox OSE distribution. VirtualBox OSE is distributed in the
|
---|
10 | # hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
|
---|
11 | #
|
---|
12 | # Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
|
---|
13 | # Clara, CA 95054 USA or visit http://www.sun.com if you need
|
---|
14 | # additional information or have any questions.
|
---|
15 | #
|
---|
16 |
|
---|
17 | import xpcom
|
---|
18 | import sys
|
---|
19 | import platform
|
---|
20 |
|
---|
21 | # this code overcomes somewhat unlucky feature of Python, where it searches
|
---|
22 | # for binaries in the same place as platfom independent modules, while
|
---|
23 | # rest of Python bindings expect _xpcom to be inside xpcom module
|
---|
24 | # XXX: maybe implement per Python version module search
|
---|
25 | #cglue = __import__('VBoxPython')
|
---|
26 | if platform.system() == 'Darwin':
|
---|
27 | # On Darwin (aka Mac OS X) we know exactly where things are in a normal
|
---|
28 | # VirtualBox installation. Also, there are two versions of python there
|
---|
29 | # (2.3.x and 2.5.x) depending on whether the os is striped or spotty, so
|
---|
30 | # we have to choose the right module to load.
|
---|
31 | #
|
---|
32 | # XXX: This needs to be adjusted for OSE builds. A more general solution would
|
---|
33 | # be to to sed the file during install and inject the VBOX_PATH_APP_PRIVATE_ARCH
|
---|
34 | # and VBOX_PATH_SHARED_LIBS when these are set.
|
---|
35 | saved_sys_path = sys.path;
|
---|
36 | sys.path = [ '/Applications/VirtualBox.app/Contents/MacOS', ] + saved_sys_path
|
---|
37 | mod = 'VBoxPython' + str(sys.version_info[0]) + '_' + str(sys.version_info[1])
|
---|
38 | cglue = __import__(mod)
|
---|
39 | sys.path = saved_sys_path
|
---|
40 | else:
|
---|
41 | cglue = __import__('VBoxPython')
|
---|
42 | sys.modules['xpcom._xpcom'] = cglue
|
---|
43 | xpcom._xpcom = cglue
|
---|
44 |
|
---|