Bläddra i källkod

support for thirdparty packages with their own Python bindings

rdb 14 år sedan
förälder
incheckning
4cc8cf04c8
2 ändrade filer med 17 tillägg och 7 borttagningar
  1. 12 7
      makepanda/makepanda.py
  2. 5 0
      makepanda/makepandacore.py

+ 12 - 7
makepanda/makepanda.py

@@ -2145,13 +2145,18 @@ ConditionalWriteFile(GetOutputDir()+"/etc/Confauto.prc", confautoprc)
 ##########################################################################################
 
 for pkg in PkgListGet():
-    if (PkgSkip(pkg)==0):
-        if (COMPILER == "MSVC"):
-            if (os.path.exists(GetThirdpartyDir()+pkg.lower()+"/bin")):
-                CopyAllFiles(GetOutputDir()+"/bin/",GetThirdpartyDir()+pkg.lower()+"/bin/")
-        if (COMPILER == "LINUX"):
-            if (os.path.exists(GetThirdpartyDir()+pkg.lower()+"/lib")):
-                CopyAllFiles(GetOutputDir()+"/lib/",GetThirdpartyDir()+pkg.lower()+"/lib/")
+    if (PkgSkip(pkg)!=0):
+        continue
+    if (COMPILER == "MSVC"):
+        if (os.path.exists(GetThirdpartyDir()+pkg.lower()+"/bin")):
+            CopyAllFiles(GetOutputDir()+"/bin/",GetThirdpartyDir()+pkg.lower()+"/bin/")
+            if (PkgSkip("PYTHON")==0 and os.path.exists(GetThirdpartyDir()+pkg.lower()+"/bin/"+SDK["PYTHONVERSION"])):
+                CopyAllFiles(GetOutputDir()+"/bin/",GetThirdpartyDir()+pkg.lower()+"/bin/"+SDK["PYTHONVERSION"]+"/")
+    if (COMPILER == "LINUX"):
+        if (os.path.exists(GetThirdpartyDir()+pkg.lower()+"/lib")):
+            CopyAllFiles(GetOutputDir()+"/lib/",GetThirdpartyDir()+pkg.lower()+"/lib/")
+            if (PkgSkip("PYTHON")==0 and os.path.exists(GetThirdpartyDir()+pkg.lower()+"/lib/"+SDK["PYTHONVERSION"])):
+                CopyAllFiles(GetOutputDir()+"/lib/",GetThirdpartyDir()+pkg.lower()+"/lib/"+SDK["PYTHONVERSION"]+"/")
 
 if (COMPILER=="MSVC"):
     CopyAllFiles(GetOutputDir()+"/bin/", GetThirdpartyDir()+"extras"+"/bin/")

+ 5 - 0
makepanda/makepandacore.py

@@ -1185,6 +1185,9 @@ def SmartPkgEnable(pkg, pkgconfig = None, libs = None, incs = None, defs = None,
     if (os.path.isdir(GetThirdpartyDir() + pkg.lower())):
         IncDirectory(target_pkg, GetThirdpartyDir() + pkg.lower() + "/include")
         LibDirectory(target_pkg, GetThirdpartyDir() + pkg.lower() + "/lib")
+        if (PkgSkip("PYTHON") == 0):
+            LibDirectory(target_pkg, GetThirdpartyDir() + pkg.lower() + "/lib/" + SDK["PYTHONVERSION"])
+
         # TODO: check for a .pc file in the lib/pkg-config/ dir
         if (tool != None and os.path.isfile(GetThirdpartyDir() + pkg.lower() + "/bin/" + tool)):
             tool = GetThirdpartyDir() + pkg.lower() + "/bin/" + tool
@@ -1193,6 +1196,7 @@ def SmartPkgEnable(pkg, pkgconfig = None, libs = None, incs = None, defs = None,
             for i, j in PkgConfigGetDefSymbols(None, tool).items():
                 DefSymbol(target_pkg, i, j)
             return
+
         for l in libs:
             libname = l
             if (l.startswith("lib")):
@@ -1202,6 +1206,7 @@ def SmartPkgEnable(pkg, pkgconfig = None, libs = None, incs = None, defs = None,
                 len(glob.glob(GetThirdpartyDir() + pkg.lower() + "/lib/lib%s.*" % libname)) == 0):
                 libname = "panda" + libname
             LibName(target_pkg, "-l" + libname)
+
         for d, v in defs.values():
             DefSymbol(target_pkg, d, v)
         return