Просмотр исходного кода

Smarter about choosing right python version

Josh Yelon 18 лет назад
Родитель
Сommit
c426642dae
2 измененных файлов с 44 добавлено и 38 удалено
  1. 41 5
      doc/makepanda/makepandacore.py
  2. 3 33
      doc/makepanda/newmakepanda.py

+ 41 - 5
doc/makepanda/makepandacore.py

@@ -480,6 +480,37 @@ def CreateFile(file):
     if (os.path.exists(file)==0):
         WriteFile(file,"")
 
+########################################################################
+#
+# Create the panda build tree.
+#
+########################################################################
+
+def MakeBuildTree():
+    MakeDirectory("built")
+    MakeDirectory("built/bin")
+    MakeDirectory("built/lib")
+    MakeDirectory("built/etc")
+    MakeDirectory("built/plugins")
+    MakeDirectory("built/modelcache")
+    MakeDirectory("built/include")
+    MakeDirectory("built/include/parser-inc")
+    MakeDirectory("built/include/parser-inc/openssl")
+    MakeDirectory("built/include/parser-inc/netinet")
+    MakeDirectory("built/include/parser-inc/Cg")
+    MakeDirectory("built/include/openssl")
+    MakeDirectory("built/tmp")
+    MakeDirectory("built/models")
+    MakeDirectory("built/models/audio")
+    MakeDirectory("built/models/audio/sfx")
+    MakeDirectory("built/models/icons")
+    MakeDirectory("built/models/maps")
+    MakeDirectory("built/models/misc")
+    MakeDirectory("built/models/gui")
+    MakeDirectory("built/direct")
+    MakeDirectory("built/pandac")
+    MakeDirectory("built/pandac/input")
+
 ########################################################################
 #
 # Make sure that you are in the root of the panda tree.
@@ -645,12 +676,17 @@ def SdkLocatePython():
     if (PkgSkip("PYTHON")==0):
         if (sys.platform == "win32"):
             SDK["PYTHON"]="thirdparty/win-python"
+	    SDK["PYTHONVERSION"]="python2.4"
         else:
-            if   (os.path.isdir("/usr/include/python2.5")): SDK["PYTHON"] = "/usr/include/python2.5"
-            elif (os.path.isdir("/usr/include/python2.4")): SDK["PYTHON"] = "/usr/include/python2.4"
-            elif (os.path.isdir("/usr/include/python2.3")): SDK["PYTHON"] = "/usr/include/python2.3"
-            elif (os.path.isdir("/usr/include/python2.2")): SDK["PYTHON"] = "/usr/include/python2.2"
-            else: exit("Cannot find the python SDK")
+            oscmd("python -V > built/tmp/pythonversion 2>&1")
+            pv=ReadFile("built/tmp/pythonversion")
+            if (pv.startswith("Python ")==0):
+                exit("python -V did not produce the expected output")
+            pv = pv[7:10]
+            if (os.path.isdir("/usr/include/python"+pv)==0):
+                exit("Python reports version "+pv+" but /usr/include/python"+pv+" is not installed.")
+            SDK["PYTHON"]="/usr/include/python"+pv
+            SDK["PYTHONVERSION"]="python"+pv
 
 def SdkLocateVisualStudio():
     if (sys.platform != "win32"): return

+ 3 - 33
doc/makepanda/newmakepanda.py

@@ -145,6 +145,8 @@ parseopts(sys.argv[1:])
 ##
 ########################################################################
 
+MakeBuildTree()
+
 SdkLocateDirectX()
 SdkLocateMaya()
 SdkLocateMax()
@@ -721,36 +723,6 @@ CxxIgnoreHeader["vector"] = 1
 CxxIgnoreHeader["set"] = 1
 CxxIgnoreHeader["algorithm"] = 1
 
-##########################################################################################
-#
-# Create the directory tree
-#
-##########################################################################################
-
-MakeDirectory("built")
-MakeDirectory("built/bin")
-MakeDirectory("built/lib")
-MakeDirectory("built/etc")
-MakeDirectory("built/plugins")
-MakeDirectory("built/modelcache")
-MakeDirectory("built/include")
-MakeDirectory("built/include/parser-inc")
-MakeDirectory("built/include/parser-inc/openssl")
-MakeDirectory("built/include/parser-inc/netinet")
-MakeDirectory("built/include/parser-inc/Cg")
-MakeDirectory("built/include/openssl")
-MakeDirectory("built/tmp")
-MakeDirectory("built/models")
-MakeDirectory("built/models/audio")
-MakeDirectory("built/models/audio/sfx")
-MakeDirectory("built/models/icons")
-MakeDirectory("built/models/maps")
-MakeDirectory("built/models/misc")
-MakeDirectory("built/models/gui")
-MakeDirectory("built/direct")
-MakeDirectory("built/pandac")
-MakeDirectory("built/pandac/input")
-
 ##########################################################################################
 #
 # Generate dtool_config.h, prc_parameters.h, and dtool_have_xxx.dat
@@ -1004,8 +976,6 @@ def CreatePandaVersionFiles():
     ConditionalWriteFile('built/include/pandaVersion.h',        pandaversion_h)
     ConditionalWriteFile('built/include/checkPandaVersion.cxx', checkpandaversion_cxx)
     ConditionalWriteFile('built/include/checkPandaVersion.h',   checkpandaversion_h)
-    if (PkgSkip("PYTHON")==0):
-        ConditionalWriteFile("built/tmp/pythonversion", os.path.basename(SDK["PYTHON"]))
     ConditionalWriteFile("built/tmp/null.cxx","")
 
 
@@ -3566,7 +3536,7 @@ The Panda3D engine.
 
 def MakeInstallerLinux():
     import compileall
-    PYTHONV=os.path.basename(SDK["PYTHON"])
+    PYTHONV=SDK["PYTHONVERSION"]
     if (os.path.isdir("linuxroot")): oscmd("chmod -R 755 linuxroot")
     if (os.path.exists("/usr/bin/dpkg-deb")):
         oscmd("dpkg --print-architecture > built/tmp/architecture.txt")