Joe Shochet 25 лет назад
Родитель
Сommit
580acc37c7

+ 1 - 1
direct/src/configfiles/Sources.pp

@@ -1,2 +1,2 @@
 #define INSTALL_CONFIG \
-  direct.init Configrc
+  direct.init Configrc direct.pth

+ 1 - 9
direct/src/configfiles/direct.init

@@ -1,13 +1,5 @@
 ATTACH panda
 MODREL ETC_PATH etc
 SEP PYTHONPATH ;
-MODREL PYTHONPATH lib
-MODREL PYTHONPATH lib/py
-MODREL PYTHONPATH src/ffi
-MODREL PYTHONPATH src/actor
-MODREL PYTHONPATH src/distributed
+# This is needed to find the site configuration file
 MODREL PYTHONPATH src/showbase
-MODREL PYTHONPATH src/directutil
-MODREL PYTHONPATH src/tkwidgets
-MODREL PYTHONPATH src/tkpanels
-MODREL PYTHONPATH src/leveleditor

+ 12 - 0
direct/src/configfiles/direct.pth

@@ -0,0 +1,12 @@
+lib
+lib/py
+src/actor
+src/directutil
+src/distributed
+src/ffi
+src/gui
+src/leveleditor
+src/net
+src/showbase
+src/tkpanels
+src/tkwidgets

+ 53 - 0
direct/src/showbase/sitecustomize.py

@@ -0,0 +1,53 @@
+import os
+import sys
+
+print 'Site customize for Panda'
+
+def getPackages():
+    """
+    Find all the packages on your ctprojs variable and parse them
+    to extract the tree name from the long details like this:
+    TOONTOWN:default DIRECT:default PANDA:personal DTOOL:install
+    Returns a list of the packages as strings
+    Note: the ctprojs are reversed to put them in the order of attachment.
+    """
+    packages = []
+    ctprojs = os.getenv("CTPROJS").split()
+    for proj in ctprojs:
+        projName = proj.split(':')[0]
+        packages.append(projName)
+    packages.reverse()
+    return packages
+
+
+def addpackage(package):
+    """
+    Look in this package name for the file $PACKAGE/etc/package.pth
+    which contains paths that we want prepended to sys.path
+    There should be one relative pathname per line (relative to $PACKAGE)
+    comments and empty lines are ok
+    """
+    tree = os.getenv(package)
+    lowerPackage = package.lower()
+    fullname = os.path.join(tree, 'etc' + os.sep + (lowerPackage + '.pth'))
+    try:
+        f = open(fullname)
+        print 'Appending paths in ' + fullname
+    except IOError:
+        return
+
+    while 1:
+        dir = f.readline()
+        if not dir:
+            break
+        if dir[0] == '#':
+            continue
+        if dir[-1] == '\n':
+            dir = dir[:-1]
+        dir = os.path.join(tree, dir)
+        if dir not in sys.path and os.path.exists(dir):
+            sys.path = [dir] + sys.path
+
+for package in getPackages():
+    addpackage(package)
+

+ 1 - 1
panda/src/configfiles/Sources.pp

@@ -1,2 +1,2 @@
 #define INSTALL_CONFIG \
-  panda.emacs panda.emacs.Xdefaults panda.init Configrc
+  panda.emacs panda.emacs.Xdefaults panda.init Configrc panda.pth

+ 0 - 2
panda/src/configfiles/panda.init

@@ -18,7 +18,5 @@ DOSH   CONFIG_CONFIG=:configpath=CFG_PATH:configpath=ETC_PATH
 DOSH   CFG_PATH=.:$HOME:/usr/local/etc
 DOSH   export CONFIG_CONFIG CFG_PATH
 DOSH fi
-SEP PYTHONPATH ;
-MODREL PYTHONPATH lib
 DOSH if [ -e /usr/local/libmikmod ]; then USE_MIKMOD="t"; export USE_MIKMOD; fi
 DOSH if [ -e /for/program/libmikmod ]; then USE_MIKMOD="t"; export USE_MIKMOD; fi