mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
Fixed Threading Build Issue, --thread=X will now compile correctly (at least on windows)
Added support for Win7.1 Platform, DirectX June SDK 2010 Add switch --dxSdk and --MSPlatSdk to select which SDk to use (defaults to prior set behavior) Add switch --PandaPhysics, --Vision, --Skeleton, --PandaParticleSystem to toggle compilation of native panda components
This commit is contained in:
parent
b773dfb41c
commit
66aef17a6f
@ -21,6 +21,15 @@ except:
|
|||||||
|
|
||||||
from makepandacore import *
|
from makepandacore import *
|
||||||
from installpanda import *
|
from installpanda import *
|
||||||
|
import time
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
## jGenPyCode tries to get the directory for Direct from the sys.path. This only works if you
|
||||||
|
## have installed the sdk using a installer. This would not work if the installer was
|
||||||
|
## never used and everything was grabbed into a virign environment using cvs.
|
||||||
|
sys.path.append( os.getcwd() )
|
||||||
|
import __builtin__
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
##
|
##
|
||||||
@ -53,6 +62,9 @@ COREAPI_VERSION=None
|
|||||||
PLUGIN_VERSION=None
|
PLUGIN_VERSION=None
|
||||||
OSXTARGET=None
|
OSXTARGET=None
|
||||||
HOST_URL="https://runtime.panda3d.org/"
|
HOST_URL="https://runtime.panda3d.org/"
|
||||||
|
global STRDXSDKVERSION, STRMSPLATFORMVERSION
|
||||||
|
STRDXSDKVERSION = 'default'
|
||||||
|
STRMSPLATFORMVERSION = 'default'
|
||||||
|
|
||||||
if "MACOSX_DEPLOYMENT_TARGET" in os.environ:
|
if "MACOSX_DEPLOYMENT_TARGET" in os.environ:
|
||||||
OSXTARGET=os.environ["MACOSX_DEPLOYMENT_TARGET"]
|
OSXTARGET=os.environ["MACOSX_DEPLOYMENT_TARGET"]
|
||||||
@ -61,17 +73,20 @@ PkgListSet(["PYTHON", "DIRECT", # Python support
|
|||||||
"GL", "GLES", "GLES2"] + DXVERSIONS + ["TINYDISPLAY", "NVIDIACG", # 3D graphics
|
"GL", "GLES", "GLES2"] + DXVERSIONS + ["TINYDISPLAY", "NVIDIACG", # 3D graphics
|
||||||
"EGL", # OpenGL (ES) integration
|
"EGL", # OpenGL (ES) integration
|
||||||
"OPENAL", "FMODEX", "FFMPEG", # Multimedia
|
"OPENAL", "FMODEX", "FFMPEG", # Multimedia
|
||||||
"ODE", "PHYSX", "BULLET", # Physics
|
"ODE", "PHYSX", "BULLET", "PANDAPHYSICS", # Physics
|
||||||
"SPEEDTREE", # SpeedTree
|
"SPEEDTREE", # SpeedTree
|
||||||
"ZLIB", "PNG", "JPEG", "TIFF", "SQUISH", "FREETYPE", # 2D Formats support
|
"ZLIB", "PNG", "JPEG", "TIFF", "SQUISH", "FREETYPE", # 2D Formats support
|
||||||
] + MAYAVERSIONS + MAXVERSIONS + [ "FCOLLADA", # 3D Formats support
|
] + MAYAVERSIONS + MAXVERSIONS + [ "FCOLLADA", # 3D Formats support
|
||||||
"VRPN", "OPENSSL", # Transport
|
"VRPN", "OPENSSL", # Transport
|
||||||
"FFTW", "SWSCALE", # Algorithm helpers
|
"FFTW", "SWSCALE", # Algorithm helpers
|
||||||
"ARTOOLKIT", "OPENCV", "DIRECTCAM", # Augmented Reality
|
"ARTOOLKIT", "OPENCV", "DIRECTCAM", "VISION", # Augmented Reality
|
||||||
"NPAPI", "AWESOMIUM", # Browser embedding
|
"NPAPI", "AWESOMIUM", # Browser embedding
|
||||||
"GTK2", "WX", "FLTK", # Toolkit support
|
"GTK2", "WX", "FLTK", # Toolkit support
|
||||||
"OSMESA", "X11", "XF86DGA", "XRANDR", "XCURSOR", # Unix platform support
|
"OSMESA", "X11", "XF86DGA", "XRANDR", "XCURSOR", # Unix platform support
|
||||||
"PANDATOOL", "PVIEW", "DEPLOYTOOLS", # Toolchain
|
"PANDATOOL", "PVIEW", "DEPLOYTOOLS", # Toolchain
|
||||||
|
"SKELETON", # Example skeleton project
|
||||||
|
"PANDADISTORTFX", # Some distortion special lenses
|
||||||
|
"PANDAPARTICLESYSTEM", # Built in particle system
|
||||||
"CONTRIB" # Experimental
|
"CONTRIB" # Experimental
|
||||||
])
|
])
|
||||||
|
|
||||||
@ -119,6 +134,8 @@ def usage(problem):
|
|||||||
print ""
|
print ""
|
||||||
print " --nothing (disable every third-party lib)"
|
print " --nothing (disable every third-party lib)"
|
||||||
print " --everything (enable every third-party lib)"
|
print " --everything (enable every third-party lib)"
|
||||||
|
print " --dxSdk=X (specify version of Dx9 SDK to use: jun2010, aug2009, mar2009, aug2006)"
|
||||||
|
print " --MSPlatSdk=X (specify MSPlatSdk to use: win71, win61, win60A, winserver2003r2"
|
||||||
print ""
|
print ""
|
||||||
print "The simplest way to compile panda is to just type:"
|
print "The simplest way to compile panda is to just type:"
|
||||||
print ""
|
print ""
|
||||||
@ -130,11 +147,13 @@ def parseopts(args):
|
|||||||
global INSTALLER,RTDIST,RUNTIME,GENMAN,DISTRIBUTOR,VERSION
|
global INSTALLER,RTDIST,RUNTIME,GENMAN,DISTRIBUTOR,VERSION
|
||||||
global COMPRESSOR,THREADCOUNT,OSXTARGET,HOST_URL
|
global COMPRESSOR,THREADCOUNT,OSXTARGET,HOST_URL
|
||||||
global DEBVERSION,RPMRELEASE,P3DSUFFIX
|
global DEBVERSION,RPMRELEASE,P3DSUFFIX
|
||||||
|
global STRDXSDKVERSION, STRMSPLATFORMVERSION
|
||||||
longopts = [
|
longopts = [
|
||||||
"help","distributor=","verbose","runtime","osxtarget=",
|
"help","distributor=","verbose","runtime","osxtarget=",
|
||||||
"optimize=","everything","nothing","installer","rtdist","nocolor",
|
"optimize=","everything","nothing","installer","rtdist","nocolor",
|
||||||
"version=","lzma","no-python","threads=","outputdir=","override=",
|
"version=","lzma","no-python","threads=","outputdir=","override=",
|
||||||
"static","host=","debversion=","rpmrelease=","p3dsuffix="]
|
"static","host=","debversion=","rpmrelease=","p3dsuffix=",
|
||||||
|
"dxSdk=", "MSPlatSdk="]
|
||||||
anything = 0
|
anything = 0
|
||||||
optimize = ""
|
optimize = ""
|
||||||
for pkg in PkgListGet(): longopts.append("no-"+pkg.lower())
|
for pkg in PkgListGet(): longopts.append("no-"+pkg.lower())
|
||||||
@ -169,6 +188,16 @@ def parseopts(args):
|
|||||||
# Backward compatibility, OPENGL was renamed to GL
|
# Backward compatibility, OPENGL was renamed to GL
|
||||||
elif (option=="--use-opengl"): PkgEnable("GL")
|
elif (option=="--use-opengl"): PkgEnable("GL")
|
||||||
elif (option=="--no-opengl"): PkgDisable("GL")
|
elif (option=="--no-opengl"): PkgDisable("GL")
|
||||||
|
elif (option=="--dxSdk"):
|
||||||
|
STRDXSDKVERSION = value.strip().lower()
|
||||||
|
if STRDXSDKVERSION == '':
|
||||||
|
print "No DirectX SDK version specified. Using 'default' DirectX SDK search"
|
||||||
|
STRDXSDKVERSION = 'default'
|
||||||
|
elif (option=="--MSPlatSdk"):
|
||||||
|
STRMSPLATFORMVERSION = value.strip().lower()
|
||||||
|
if STRMSPLATFORMVERSION == '':
|
||||||
|
print "No MS Platform SDK version specified. Using 'default' MS Platform SDK search"
|
||||||
|
STRMSPLATFORMVERSION = 'default'
|
||||||
else:
|
else:
|
||||||
for pkg in PkgListGet():
|
for pkg in PkgListGet():
|
||||||
if (option=="--use-"+pkg.lower()):
|
if (option=="--use-"+pkg.lower()):
|
||||||
@ -318,13 +347,13 @@ LoadDependencyCache()
|
|||||||
|
|
||||||
MakeBuildTree()
|
MakeBuildTree()
|
||||||
|
|
||||||
SdkLocateDirectX()
|
SdkLocateDirectX( STRDXSDKVERSION )
|
||||||
SdkLocateMaya()
|
SdkLocateMaya()
|
||||||
SdkLocateMax()
|
SdkLocateMax()
|
||||||
SdkLocateMacOSX(OSXTARGET)
|
SdkLocateMacOSX(OSXTARGET)
|
||||||
SdkLocatePython(RTDIST)
|
SdkLocatePython(RTDIST)
|
||||||
SdkLocateVisualStudio()
|
SdkLocateVisualStudio()
|
||||||
SdkLocateMSPlatform()
|
SdkLocateMSPlatform( STRMSPLATFORMVERSION )
|
||||||
SdkLocatePhysX()
|
SdkLocatePhysX()
|
||||||
SdkLocateSpeedTree()
|
SdkLocateSpeedTree()
|
||||||
|
|
||||||
@ -770,10 +799,11 @@ def CompileCxx(obj,src,opts):
|
|||||||
|
|
||||||
# Enables Windows 7 mode if SDK is detected.
|
# Enables Windows 7 mode if SDK is detected.
|
||||||
# But only if it is Windows 7 (0x601) and not e. g. Vista (0x600)
|
# But only if it is Windows 7 (0x601) and not e. g. Vista (0x600)
|
||||||
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v7.0", "InstallationFolder")
|
if (STRMSPLATFORMVERSION not in ['winserver2003r2', 'win60A']):
|
||||||
winver = sys.getwindowsversion()
|
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v7.1", "InstallationFolder")
|
||||||
if platsdk and os.path.isdir(platsdk) and winver[0] >= 6 and winver[1] >= 1:
|
winver = sys.getwindowsversion()
|
||||||
cmd += "/DPANDA_WIN7 /DWINVER=0x601 "
|
if platsdk and os.path.isdir(platsdk) and winver[0] >= 6 and winver[1] >= 1:
|
||||||
|
cmd += "/DPANDA_WIN7 /DWINVER=0x601 "
|
||||||
|
|
||||||
cmd += "/Fo" + obj + " /nologo /c"
|
cmd += "/Fo" + obj + " /nologo /c"
|
||||||
for x in ipath: cmd += " /I" + x
|
for x in ipath: cmd += " /I" + x
|
||||||
@ -785,9 +815,13 @@ def CompileCxx(obj,src,opts):
|
|||||||
if (opts.count('MSFORSCOPE')): cmd += ' /Zc:forScope-'
|
if (opts.count('MSFORSCOPE')): cmd += ' /Zc:forScope-'
|
||||||
optlevel = GetOptimizeOption(opts)
|
optlevel = GetOptimizeOption(opts)
|
||||||
if (optlevel==1): cmd += " /MDd /Zi /RTCs /GS"
|
if (optlevel==1): cmd += " /MDd /Zi /RTCs /GS"
|
||||||
if (optlevel==2): cmd += " /MDd /Zi"
|
if (optlevel==2): cmd += " /MDd /Zi /arch:SSE2"
|
||||||
if (optlevel==3): cmd += " /MD /Zi /O2 /Ob2 /DFORCE_INLINING"
|
if (optlevel==3): cmd += " /MD /Zi /O2 /Ob2 /Oi /Ot /arch:SSE2 /fp:fast /DFORCE_INLINING"
|
||||||
if (optlevel==4): cmd += " /MD /Zi /Ox /Ob2 /DFORCE_INLINING /DNDEBUG /GL"
|
if (optlevel==4):
|
||||||
|
cmd += " /MD /Zi /Ox /Ob2 /Oi /Ot /arch:SSE2 /fp:fast /DFORCE_INLINING /DNDEBUG /GL"
|
||||||
|
cmd += " /Oy" # jcr add
|
||||||
|
cmd += " /Zp16" # jcr add # Is this necessary with /Ox?
|
||||||
|
|
||||||
cmd += " /Fd" + os.path.splitext(obj)[0] + ".pdb"
|
cmd += " /Fd" + os.path.splitext(obj)[0] + ".pdb"
|
||||||
building = GetValueOption(opts, "BUILDING:")
|
building = GetValueOption(opts, "BUILDING:")
|
||||||
if (building): cmd += " /DBUILDING_" + building
|
if (building): cmd += " /DBUILDING_" + building
|
||||||
@ -970,6 +1004,22 @@ def CompileLib(lib, obj, opts):
|
|||||||
|
|
||||||
oscmd("ranlib " + BracketNameWithQuotes(lib))
|
oscmd("ranlib " + BracketNameWithQuotes(lib))
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
##
|
||||||
|
## CompileLink implicitly checks whether or not a file like libpanda.lib exists
|
||||||
|
## This is not explicitly checked stated in the dependency, but is necessary on windows to link in a dll
|
||||||
|
##
|
||||||
|
########################################################################
|
||||||
|
|
||||||
|
def CompileLink_DoesImplicitLibExist(dll, obj, opts):
|
||||||
|
for x in obj:
|
||||||
|
if (x.endswith(".dll")):
|
||||||
|
baseStr = GetOutputDir() + '/lib/' + os.path.splitext(os.path.basename(x))[0] + ".lib"
|
||||||
|
strFullPath = os.path.join( os.getcwd(), baseStr )
|
||||||
|
if not os.path.exists( strFullPath ):
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
##
|
##
|
||||||
## CompileLink
|
## CompileLink
|
||||||
@ -983,7 +1033,7 @@ def CompileLink(dll, obj, opts):
|
|||||||
cmd += " /MACHINE:X64"
|
cmd += " /MACHINE:X64"
|
||||||
if ("MFC" not in opts):
|
if ("MFC" not in opts):
|
||||||
cmd += " /NOD:MFC90.LIB /NOD:MFC80.LIB /NOD:LIBCMT"
|
cmd += " /NOD:MFC90.LIB /NOD:MFC80.LIB /NOD:LIBCMT"
|
||||||
cmd += " /NOD:LIBCI.LIB /DEBUG /MANIFEST"
|
cmd += " /NOD:LIBCI.LIB /DEBUG"
|
||||||
cmd += " /nod:libc /nod:libcmtd /nod:atlthunk /nod:atls"
|
cmd += " /nod:libc /nod:libcmtd /nod:atlthunk /nod:atls"
|
||||||
if (GetOrigExt(dll) != ".exe"): cmd += " /DLL"
|
if (GetOrigExt(dll) != ".exe"): cmd += " /DLL"
|
||||||
optlevel = GetOptimizeOption(opts)
|
optlevel = GetOptimizeOption(opts)
|
||||||
@ -1157,6 +1207,10 @@ def RunGenPyCode(target, inputs, opts):
|
|||||||
for i in inputs:
|
for i in inputs:
|
||||||
if (GetOrigExt(i)==".dll"):
|
if (GetOrigExt(i)==".dll"):
|
||||||
cmdstr += " " + os.path.basename(os.path.splitext(i)[0].replace("_d","").replace(GetOutputDir()+"/lib/",""))
|
cmdstr += " " + os.path.basename(os.path.splitext(i)[0].replace("_d","").replace(GetOutputDir()+"/lib/",""))
|
||||||
|
|
||||||
|
## On a win7 64 bit system, dir/dir/python.exe doesn't work. Needs dir\\dir\\python.exe
|
||||||
|
if sys.platform.startswith("win"):
|
||||||
|
cmdstr = cmdstr.replace('/','\\')
|
||||||
|
|
||||||
oscmd(cmdstr)
|
oscmd(cmdstr)
|
||||||
|
|
||||||
@ -2043,7 +2097,8 @@ CopyAllHeaders('panda/src/device')
|
|||||||
CopyAllHeaders('panda/src/pnmtext')
|
CopyAllHeaders('panda/src/pnmtext')
|
||||||
CopyAllHeaders('panda/src/text')
|
CopyAllHeaders('panda/src/text')
|
||||||
CopyAllHeaders('panda/src/grutil')
|
CopyAllHeaders('panda/src/grutil')
|
||||||
CopyAllHeaders('panda/src/vision')
|
if (PkgSkip("VISION")==0):
|
||||||
|
CopyAllHeaders('panda/src/vision')
|
||||||
CopyAllHeaders('panda/src/awesomium')
|
CopyAllHeaders('panda/src/awesomium')
|
||||||
CopyAllHeaders('panda/src/tform')
|
CopyAllHeaders('panda/src/tform')
|
||||||
CopyAllHeaders('panda/src/collide')
|
CopyAllHeaders('panda/src/collide')
|
||||||
@ -2051,12 +2106,15 @@ CopyAllHeaders('panda/src/parametrics')
|
|||||||
CopyAllHeaders('panda/src/pgui')
|
CopyAllHeaders('panda/src/pgui')
|
||||||
CopyAllHeaders('panda/src/pnmimagetypes')
|
CopyAllHeaders('panda/src/pnmimagetypes')
|
||||||
CopyAllHeaders('panda/src/recorder')
|
CopyAllHeaders('panda/src/recorder')
|
||||||
CopyAllHeaders('panda/src/vrpn')
|
if (PkgSkip("VRPN")==0):
|
||||||
|
CopyAllHeaders('panda/src/vrpn')
|
||||||
CopyAllHeaders('panda/src/wgldisplay')
|
CopyAllHeaders('panda/src/wgldisplay')
|
||||||
CopyAllHeaders('panda/src/ode')
|
CopyAllHeaders('panda/src/ode')
|
||||||
CopyAllHeaders('panda/metalibs/pandaode')
|
CopyAllHeaders('panda/metalibs/pandaode')
|
||||||
CopyAllHeaders('panda/src/physics')
|
if (PkgSkip("PANDAPHYSICS")==0):
|
||||||
CopyAllHeaders('panda/src/particlesystem')
|
CopyAllHeaders('panda/src/physics')
|
||||||
|
if (PkgSkip("PANDAPARTICLESYSTEM")==0):
|
||||||
|
CopyAllHeaders('panda/src/particlesystem')
|
||||||
CopyAllHeaders('panda/src/dxml')
|
CopyAllHeaders('panda/src/dxml')
|
||||||
CopyAllHeaders('panda/metalibs/panda')
|
CopyAllHeaders('panda/metalibs/panda')
|
||||||
CopyAllHeaders('panda/src/audiotraits')
|
CopyAllHeaders('panda/src/audiotraits')
|
||||||
@ -2089,8 +2147,6 @@ CopyAllHeaders('panda/metalibs/pandagl')
|
|||||||
CopyAllHeaders('panda/metalibs/pandagles')
|
CopyAllHeaders('panda/metalibs/pandagles')
|
||||||
CopyAllHeaders('panda/metalibs/pandagles2')
|
CopyAllHeaders('panda/metalibs/pandagles2')
|
||||||
|
|
||||||
CopyAllHeaders('panda/src/physics')
|
|
||||||
CopyAllHeaders('panda/src/particlesystem')
|
|
||||||
CopyAllHeaders('panda/metalibs/pandaphysics')
|
CopyAllHeaders('panda/metalibs/pandaphysics')
|
||||||
CopyAllHeaders('panda/src/testbed')
|
CopyAllHeaders('panda/src/testbed')
|
||||||
|
|
||||||
@ -3036,7 +3092,7 @@ if (not RUNTIME):
|
|||||||
# DIRECTORY: panda/src/vision/
|
# DIRECTORY: panda/src/vision/
|
||||||
#
|
#
|
||||||
|
|
||||||
if (not RUNTIME):
|
if (PkgSkip("VISION") ==0) & (not RUNTIME):
|
||||||
OPTS=['DIR:panda/src/vision', 'BUILDING:VISION', 'ARTOOLKIT', 'OPENCV', 'DX9', 'DIRECTCAM', 'JPEG']
|
OPTS=['DIR:panda/src/vision', 'BUILDING:VISION', 'ARTOOLKIT', 'OPENCV', 'DX9', 'DIRECTCAM', 'JPEG']
|
||||||
TargetAdd('p3vision_composite1.obj', opts=OPTS, input='p3vision_composite1.cxx')
|
TargetAdd('p3vision_composite1.obj', opts=OPTS, input='p3vision_composite1.cxx')
|
||||||
IGATEFILES=GetDirectoryContents('panda/src/vision', ["*.h", "*_composite.cxx"])
|
IGATEFILES=GetDirectoryContents('panda/src/vision', ["*.h", "*_composite.cxx"])
|
||||||
@ -3080,7 +3136,7 @@ if PkgSkip("AWESOMIUM") == 0 and not RUNTIME:
|
|||||||
# DIRECTORY: panda/src/p3skel
|
# DIRECTORY: panda/src/p3skel
|
||||||
#
|
#
|
||||||
|
|
||||||
if (not RUNTIME):
|
if (PkgSkip('SKELETON')==0) & (not RUNTIME):
|
||||||
OPTS=['DIR:panda/src/skel', 'BUILDING:PANDASKEL', 'ADVAPI']
|
OPTS=['DIR:panda/src/skel', 'BUILDING:PANDASKEL', 'ADVAPI']
|
||||||
TargetAdd('p3skel_composite1.obj', opts=OPTS, input='p3skel_composite1.cxx')
|
TargetAdd('p3skel_composite1.obj', opts=OPTS, input='p3skel_composite1.cxx')
|
||||||
IGATEFILES=GetDirectoryContents("panda/src/skel", ["*.h", "*_composite.cxx"])
|
IGATEFILES=GetDirectoryContents("panda/src/skel", ["*.h", "*_composite.cxx"])
|
||||||
@ -3092,7 +3148,7 @@ if (not RUNTIME):
|
|||||||
# DIRECTORY: panda/src/p3skel
|
# DIRECTORY: panda/src/p3skel
|
||||||
#
|
#
|
||||||
|
|
||||||
if (not RUNTIME):
|
if (PkgSkip('SKELETON')==0) & (not RUNTIME):
|
||||||
OPTS=['BUILDING:PANDASKEL', 'ADVAPI']
|
OPTS=['BUILDING:PANDASKEL', 'ADVAPI']
|
||||||
|
|
||||||
TargetAdd('libpandaskel_module.obj', input='libp3skel.in')
|
TargetAdd('libpandaskel_module.obj', input='libp3skel.in')
|
||||||
@ -3109,7 +3165,7 @@ if (not RUNTIME):
|
|||||||
# DIRECTORY: panda/src/distort/
|
# DIRECTORY: panda/src/distort/
|
||||||
#
|
#
|
||||||
|
|
||||||
if (not RUNTIME):
|
if (PkgSkip('PANDADISTORTFX')==0) & (not RUNTIME):
|
||||||
OPTS=['DIR:panda/src/distort', 'BUILDING:PANDAFX']
|
OPTS=['DIR:panda/src/distort', 'BUILDING:PANDAFX']
|
||||||
TargetAdd('p3distort_composite1.obj', opts=OPTS, input='p3distort_composite1.cxx')
|
TargetAdd('p3distort_composite1.obj', opts=OPTS, input='p3distort_composite1.cxx')
|
||||||
IGATEFILES=GetDirectoryContents('panda/src/distort', ["*.h", "*_composite.cxx"])
|
IGATEFILES=GetDirectoryContents('panda/src/distort', ["*.h", "*_composite.cxx"])
|
||||||
@ -3121,7 +3177,7 @@ if (not RUNTIME):
|
|||||||
# DIRECTORY: panda/metalibs/pandafx/
|
# DIRECTORY: panda/metalibs/pandafx/
|
||||||
#
|
#
|
||||||
|
|
||||||
if (not RUNTIME):
|
if (PkgSkip('PANDADISTORTFX')==0) & (not RUNTIME):
|
||||||
OPTS=['DIR:panda/metalibs/pandafx', 'DIR:panda/src/distort', 'BUILDING:PANDAFX', 'NVIDIACG']
|
OPTS=['DIR:panda/metalibs/pandafx', 'DIR:panda/src/distort', 'BUILDING:PANDAFX', 'NVIDIACG']
|
||||||
TargetAdd('pandafx_pandafx.obj', opts=OPTS, input='pandafx.cxx')
|
TargetAdd('pandafx_pandafx.obj', opts=OPTS, input='pandafx.cxx')
|
||||||
|
|
||||||
@ -3387,7 +3443,8 @@ if (not sys.platform.startswith("win") and PkgSkip("GL")==0 and PkgSkip("OSMESA"
|
|||||||
OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAMESA', 'NVIDIACG', 'GL']
|
OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAMESA', 'NVIDIACG', 'GL']
|
||||||
TargetAdd('libpandamesa.dll', input='p3mesadisplay_composite1.obj')
|
TargetAdd('libpandamesa.dll', input='p3mesadisplay_composite1.obj')
|
||||||
TargetAdd('libpandamesa.dll', input='libp3glstuff.dll')
|
TargetAdd('libpandamesa.dll', input='libp3glstuff.dll')
|
||||||
TargetAdd('libpandamesa.dll', input='libpandafx.dll')
|
if (PkgSkip('PANDADISTORTFX')==0):
|
||||||
|
TargetAdd('libpandamesa.dll', input='libpandafx.dll')
|
||||||
TargetAdd('libpandamesa.dll', input=COMMON_PANDA_LIBS)
|
TargetAdd('libpandamesa.dll', input=COMMON_PANDA_LIBS)
|
||||||
TargetAdd('libpandamesa.dll', opts=['MODULE', 'GL', 'OSMESA'])
|
TargetAdd('libpandamesa.dll', opts=['MODULE', 'GL', 'OSMESA'])
|
||||||
|
|
||||||
@ -3433,7 +3490,8 @@ if (sys.platform == 'darwin' and PkgSkip("GL")==0 and not RUNTIME):
|
|||||||
TargetAdd('libpandagl.dll', input='p3osxdisplay_composite1.obj')
|
TargetAdd('libpandagl.dll', input='p3osxdisplay_composite1.obj')
|
||||||
TargetAdd('libpandagl.dll', input='p3osxdisplay_osxGraphicsWindow.obj')
|
TargetAdd('libpandagl.dll', input='p3osxdisplay_osxGraphicsWindow.obj')
|
||||||
TargetAdd('libpandagl.dll', input='libp3glstuff.dll')
|
TargetAdd('libpandagl.dll', input='libp3glstuff.dll')
|
||||||
TargetAdd('libpandagl.dll', input='libpandafx.dll')
|
if (PkgSkip('PANDADISTORTFX')==0):
|
||||||
|
TargetAdd('libpandagl.dll', input='libpandafx.dll')
|
||||||
TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS)
|
TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS)
|
||||||
TargetAdd('libpandagl.dll', opts=['MODULE', 'GL', 'NVIDIACG', 'CGGL', 'CARBON', 'AGL', 'COCOA'])
|
TargetAdd('libpandagl.dll', opts=['MODULE', 'GL', 'NVIDIACG', 'CGGL', 'CARBON', 'AGL', 'COCOA'])
|
||||||
|
|
||||||
@ -3452,7 +3510,8 @@ if (sys.platform == "win32" and PkgSkip("GL")==0 and not RUNTIME):
|
|||||||
TargetAdd('libpandagl.dll', input='p3wgldisplay_composite1.obj')
|
TargetAdd('libpandagl.dll', input='p3wgldisplay_composite1.obj')
|
||||||
TargetAdd('libpandagl.dll', input='libp3windisplay.dll')
|
TargetAdd('libpandagl.dll', input='libp3windisplay.dll')
|
||||||
TargetAdd('libpandagl.dll', input='libp3glstuff.dll')
|
TargetAdd('libpandagl.dll', input='libp3glstuff.dll')
|
||||||
TargetAdd('libpandagl.dll', input='libpandafx.dll')
|
if (PkgSkip('PANDADISTORTFX')==0):
|
||||||
|
TargetAdd('libpandagl.dll', input='libpandafx.dll')
|
||||||
TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS)
|
TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS)
|
||||||
TargetAdd('libpandagl.dll', opts=['MODULE', 'WINGDI', 'GL', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM', 'NVIDIACG', 'CGGL'])
|
TargetAdd('libpandagl.dll', opts=['MODULE', 'WINGDI', 'GL', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM', 'NVIDIACG', 'CGGL'])
|
||||||
|
|
||||||
@ -3596,7 +3655,7 @@ if (PkgSkip("PHYSX")==0):
|
|||||||
# DIRECTORY: panda/src/physics/
|
# DIRECTORY: panda/src/physics/
|
||||||
#
|
#
|
||||||
|
|
||||||
if (not RUNTIME):
|
if (PkgSkip("PANDAPHYSICS")==0) & (not RUNTIME):
|
||||||
OPTS=['DIR:panda/src/physics', 'BUILDING:PANDAPHYSICS']
|
OPTS=['DIR:panda/src/physics', 'BUILDING:PANDAPHYSICS']
|
||||||
TargetAdd('p3physics_composite1.obj', opts=OPTS, input='p3physics_composite1.cxx')
|
TargetAdd('p3physics_composite1.obj', opts=OPTS, input='p3physics_composite1.cxx')
|
||||||
TargetAdd('p3physics_composite2.obj', opts=OPTS, input='p3physics_composite2.cxx')
|
TargetAdd('p3physics_composite2.obj', opts=OPTS, input='p3physics_composite2.cxx')
|
||||||
@ -3627,12 +3686,13 @@ if (not RUNTIME):
|
|||||||
# DIRECTORY: panda/metalibs/pandaphysics/
|
# DIRECTORY: panda/metalibs/pandaphysics/
|
||||||
#
|
#
|
||||||
|
|
||||||
if (not RUNTIME):
|
if (PkgSkip("PANDAPHYSICS")==0) & (not RUNTIME):
|
||||||
OPTS=['DIR:panda/metalibs/pandaphysics', 'BUILDING:PANDAPHYSICS']
|
OPTS=['DIR:panda/metalibs/pandaphysics', 'BUILDING:PANDAPHYSICS']
|
||||||
TargetAdd('pandaphysics_pandaphysics.obj', opts=OPTS, input='pandaphysics.cxx')
|
TargetAdd('pandaphysics_pandaphysics.obj', opts=OPTS, input='pandaphysics.cxx')
|
||||||
|
|
||||||
TargetAdd('libpandaphysics_module.obj', input='libp3physics.in')
|
TargetAdd('libpandaphysics_module.obj', input='libp3physics.in')
|
||||||
TargetAdd('libpandaphysics_module.obj', input='libp3particlesystem.in')
|
if (PkgSkip("PANDAPARTICLESYSTEM")==0):
|
||||||
|
TargetAdd('libpandaphysics_module.obj', input='libp3particlesystem.in')
|
||||||
TargetAdd('libpandaphysics_module.obj', opts=OPTS)
|
TargetAdd('libpandaphysics_module.obj', opts=OPTS)
|
||||||
TargetAdd('libpandaphysics_module.obj', opts=['IMOD:pandaphysics', 'ILIB:libpandaphysics'])
|
TargetAdd('libpandaphysics_module.obj', opts=['IMOD:pandaphysics', 'ILIB:libpandaphysics'])
|
||||||
|
|
||||||
@ -5012,12 +5072,16 @@ if (PkgSkip("PYTHON")==0 and not RUNTIME):
|
|||||||
# add new libraries here. See direct/src/ffi/panda3d.py
|
# add new libraries here. See direct/src/ffi/panda3d.py
|
||||||
TargetAdd('PandaModules.py', input='libpandaexpress.dll')
|
TargetAdd('PandaModules.py', input='libpandaexpress.dll')
|
||||||
TargetAdd('PandaModules.py', input='libpanda.dll')
|
TargetAdd('PandaModules.py', input='libpanda.dll')
|
||||||
TargetAdd('PandaModules.py', input='libpandaphysics.dll')
|
if (PkgSkip("PANDAPHYSICS")==0):
|
||||||
TargetAdd('PandaModules.py', input='libpandafx.dll')
|
TargetAdd('PandaModules.py', input='libpandaphysics.dll')
|
||||||
|
if (PkgSkip('PANDADISTORTFX')==0):
|
||||||
|
TargetAdd('PandaModules.py', input='libpandafx.dll')
|
||||||
if (PkgSkip("DIRECT")==0):
|
if (PkgSkip("DIRECT")==0):
|
||||||
TargetAdd('PandaModules.py', input='libp3direct.dll')
|
TargetAdd('PandaModules.py', input='libp3direct.dll')
|
||||||
TargetAdd('PandaModules.py', input='libp3vision.dll')
|
if (PkgSkip("VISION")==0):
|
||||||
TargetAdd('PandaModules.py', input='libpandaskel.dll')
|
TargetAdd('PandaModules.py', input='libp3vision.dll')
|
||||||
|
if (PkgSkip("SKELETON")==0):
|
||||||
|
TargetAdd('PandaModules.py', input='libpandaskel.dll')
|
||||||
TargetAdd('PandaModules.py', input='libpandaegg.dll')
|
TargetAdd('PandaModules.py', input='libpandaegg.dll')
|
||||||
if (PkgSkip("AWESOMIUM")==0):
|
if (PkgSkip("AWESOMIUM")==0):
|
||||||
TargetAdd('PandaModules.py', input='libp3awesomium.dll')
|
TargetAdd('PandaModules.py', input='libp3awesomium.dll')
|
||||||
@ -5127,6 +5191,10 @@ def BuildWorker(taskqueue, donequeue):
|
|||||||
|
|
||||||
def AllSourcesReady(task, pending):
|
def AllSourcesReady(task, pending):
|
||||||
sources = task[3]
|
sources = task[3]
|
||||||
|
for x in sources:
|
||||||
|
if (x in pending):
|
||||||
|
return 0
|
||||||
|
sources = task[1][1]
|
||||||
for x in sources:
|
for x in sources:
|
||||||
if (x in pending):
|
if (x in pending):
|
||||||
return 0
|
return 0
|
||||||
@ -5141,6 +5209,23 @@ def ParallelMake(tasklist):
|
|||||||
donequeue=Queue.Queue()
|
donequeue=Queue.Queue()
|
||||||
taskqueue=Queue.Queue()
|
taskqueue=Queue.Queue()
|
||||||
# Build up a table listing all the pending targets
|
# Build up a table listing all the pending targets
|
||||||
|
#task = [CompileAnything, [name, inputs, opts], [name], deps, []]
|
||||||
|
# task[2] = [name]
|
||||||
|
# task[3] = deps
|
||||||
|
# import pdb
|
||||||
|
# for task in tasklist:
|
||||||
|
# for targets in task[2]:
|
||||||
|
# # if 'libpanda.dll' in targets:
|
||||||
|
# # print "\n\n\n"
|
||||||
|
# # print task
|
||||||
|
# # print "\n\n\n"
|
||||||
|
# # pdb.set_trace()
|
||||||
|
# if 'libpandaskel.dll' in targets:
|
||||||
|
# print "\n\n\n"
|
||||||
|
# print task
|
||||||
|
# print "\n\n\n"
|
||||||
|
# pdb.set_trace()
|
||||||
|
iNumStartingTasks = len(tasklist)
|
||||||
pending = {}
|
pending = {}
|
||||||
for task in tasklist:
|
for task in tasklist:
|
||||||
for target in task[2]:
|
for target in task[2]:
|
||||||
@ -5153,10 +5238,10 @@ def ParallelMake(tasklist):
|
|||||||
# Feed tasks to the workers.
|
# Feed tasks to the workers.
|
||||||
tasksqueued = 0
|
tasksqueued = 0
|
||||||
while (1):
|
while (1):
|
||||||
if (tasksqueued < THREADCOUNT*2):
|
if (tasksqueued < THREADCOUNT):
|
||||||
extras = []
|
extras = []
|
||||||
for task in tasklist:
|
for task in tasklist:
|
||||||
if (tasksqueued < THREADCOUNT*3) & (AllSourcesReady(task, pending)):
|
if (tasksqueued < THREADCOUNT) & (AllSourcesReady(task, pending)):
|
||||||
if (NeedsBuild(task[2], task[3])):
|
if (NeedsBuild(task[2], task[3])):
|
||||||
tasksqueued += 1
|
tasksqueued += 1
|
||||||
taskqueue.put(task)
|
taskqueue.put(task)
|
||||||
@ -5166,6 +5251,7 @@ def ParallelMake(tasklist):
|
|||||||
else:
|
else:
|
||||||
extras.append(task)
|
extras.append(task)
|
||||||
tasklist = extras
|
tasklist = extras
|
||||||
|
print '**Number of tasks left', len(tasklist), 'out of ', iNumStartingTasks, ' starting tasks'
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
if (tasksqueued == 0): break
|
if (tasksqueued == 0): break
|
||||||
donetask = donequeue.get()
|
donetask = donequeue.get()
|
||||||
@ -5186,6 +5272,7 @@ def ParallelMake(tasklist):
|
|||||||
|
|
||||||
def SequentialMake(tasklist):
|
def SequentialMake(tasklist):
|
||||||
i = 0
|
i = 0
|
||||||
|
print '--->Number of tasks', len(tasklist)
|
||||||
for task in tasklist:
|
for task in tasklist:
|
||||||
if (NeedsBuild(task[2], task[3])):
|
if (NeedsBuild(task[2], task[3])):
|
||||||
apply(task[0], task[1] + [(i * 100.0) / len(tasklist)])
|
apply(task[0], task[1] + [(i * 100.0) / len(tasklist)])
|
||||||
|
@ -204,7 +204,9 @@ def exit(msg = ""):
|
|||||||
print GetColor("red") + "Build terminated." + GetColor()
|
print GetColor("red") + "Build terminated." + GetColor()
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
sys.stderr.flush()
|
sys.stderr.flush()
|
||||||
os._exit(1)
|
##Don't quit the interperter if I'm running this file directly (debugging)
|
||||||
|
if __name__ != '__main__':
|
||||||
|
os._exit(1)
|
||||||
else:
|
else:
|
||||||
print msg
|
print msg
|
||||||
raise "initiate-exit"
|
raise "initiate-exit"
|
||||||
@ -1330,49 +1332,151 @@ def GetSdkDir(sdkname, sdkkey = None):
|
|||||||
|
|
||||||
return sdir
|
return sdir
|
||||||
|
|
||||||
def SdkLocateDirectX():
|
def SdkLocateDirectX( strMode = 'default' ):
|
||||||
if (sys.platform != "win32"): return
|
if (sys.platform != "win32"): return
|
||||||
GetSdkDir("directx8", "DX8")
|
print '\nDirectX SDK:'
|
||||||
GetSdkDir("directx9", "DX9")
|
if strMode == 'default':
|
||||||
## We first try to locate the August SDK in 64 bits, then 32.
|
GetSdkDir("directx8", "DX8")
|
||||||
if ("DX9" not in SDK):
|
GetSdkDir("directx9", "DX9")
|
||||||
dir = GetRegistryKey("SOFTWARE\\Wow6432Node\\Microsoft\\DirectX\\Microsoft DirectX SDK (August 2009)", "InstallPath")
|
if ("DX9" not in SDK):
|
||||||
if (dir != 0):
|
strMode = 'latest'
|
||||||
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
if strMode == 'latest':
|
||||||
SDK["GENERIC_DXERR_LIBRARY"] = 1;
|
print '\tLooking for the latest DirectX SDK'
|
||||||
if ("DX9" not in SDK):
|
## We first try to locate the August SDK in 64 bits, then 32.
|
||||||
dir = GetRegistryKey("SOFTWARE\\Microsoft\\DirectX\\Microsoft DirectX SDK (August 2009)", "InstallPath")
|
if ("DX9" not in SDK):
|
||||||
if (dir != 0):
|
dir = GetRegistryKey("SOFTWARE\\Wow6432Node\\Microsoft\\DirectX\\Microsoft DirectX SDK (June 2010)", "InstallPath")
|
||||||
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
if (dir != 0):
|
||||||
SDK["GENERIC_DXERR_LIBRARY"] = 1;
|
print "\t\tUsing DirectX SDK June 2010"
|
||||||
if ("DX9" not in SDK):
|
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
||||||
## Try to locate the key within the "new" March 2009 location in the registry (yecch):
|
SDK["GENERIC_DXERR_LIBRARY"] = 1;
|
||||||
dir = GetRegistryKey("SOFTWARE\\Microsoft\\DirectX\\Microsoft DirectX SDK (March 2009)", "InstallPath")
|
if ("DX9" not in SDK):
|
||||||
if (dir != 0):
|
dir = GetRegistryKey("SOFTWARE\\Microsoft\\DirectX\\Microsoft DirectX SDK (June 2010)", "InstallPath")
|
||||||
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
if (dir != 0):
|
||||||
archStr = "x86"
|
print "\t\tUsing DirectX SDK June 2010"
|
||||||
if (is_64): archStr = "x64"
|
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
||||||
if ("DX9" not in SDK) or ("DX8" not in SDK):
|
SDK["GENERIC_DXERR_LIBRARY"] = 1;
|
||||||
uninstaller = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
|
if ("DX9" not in SDK):
|
||||||
for subdir in ListRegistryKeys(uninstaller):
|
dir = GetRegistryKey("SOFTWARE\\Wow6432Node\\Microsoft\\DirectX\\Microsoft DirectX SDK (August 2009)", "InstallPath")
|
||||||
if (subdir[0]=="{"):
|
if (dir != 0):
|
||||||
dir = GetRegistryKey(uninstaller+"\\"+subdir, "InstallLocation")
|
print "\t\tUsing DirectX SDK Aug 2009"
|
||||||
if (dir != 0):
|
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
||||||
if (("DX8" not in SDK) and
|
SDK["GENERIC_DXERR_LIBRARY"] = 1;
|
||||||
(os.path.isfile(dir+"\\Include\\d3d8.h")) and
|
if ("DX9" not in SDK):
|
||||||
(os.path.isfile(dir+"\\Include\\d3dx8.h")) and
|
dir = GetRegistryKey("SOFTWARE\\Microsoft\\DirectX\\Microsoft DirectX SDK (August 2009)", "InstallPath")
|
||||||
(os.path.isfile(dir+"\\Lib\\d3d8.lib")) and
|
if (dir != 0):
|
||||||
(os.path.isfile(dir+"\\Lib\\d3dx8.lib"))):
|
print "\t\tUsing DirectX SDK Aug 2009"
|
||||||
SDK["DX8"] = dir.replace("\\", "/").rstrip("/")
|
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
||||||
if (("DX9" not in SDK) and
|
SDK["GENERIC_DXERR_LIBRARY"] = 1;
|
||||||
(os.path.isfile(dir+"\\Include\\d3d9.h")) and
|
if ("DX9" not in SDK):
|
||||||
(os.path.isfile(dir+"\\Include\\d3dx9.h")) and
|
## Try to locate the key within the "new" March 2009 location in the registry (yecch):
|
||||||
(os.path.isfile(dir+"\\Include\\dxsdkver.h")) and
|
dir = GetRegistryKey("SOFTWARE\\Microsoft\\DirectX\\Microsoft DirectX SDK (March 2009)", "InstallPath")
|
||||||
(os.path.isfile(dir+"\\Lib\\" + archStr + "\\d3d9.lib")) and
|
if (dir != 0):
|
||||||
(os.path.isfile(dir+"\\Lib\\" + archStr + "\\d3dx9.lib"))):
|
print "\t\tUsing DirectX SDK March 2009"
|
||||||
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
||||||
|
archStr = "x86"
|
||||||
|
if (is_64): archStr = "x64"
|
||||||
|
if ("DX9" not in SDK) or ("DX8" not in SDK):
|
||||||
|
if 'DX9' in SDK:
|
||||||
|
print "\t\tLooking for the Dx8 SDK in the registry uninstaller keys"
|
||||||
|
if 'DX8' in SDK:
|
||||||
|
print "\t\tLooking for the Dx9 SDK in the registry uninstaller keys"
|
||||||
|
if ("DX9" not in SDK) & ("DX8" not in SDK):
|
||||||
|
print "\t\tLooking for the Dx8,9 SDKs in the register uninstaller keys"
|
||||||
|
uninstaller = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
|
||||||
|
for subdir in ListRegistryKeys(uninstaller):
|
||||||
|
if (subdir[0]=="{"):
|
||||||
|
dir = GetRegistryKey(uninstaller+"\\"+subdir, "InstallLocation")
|
||||||
|
if (dir != 0):
|
||||||
|
if (("DX8" not in SDK) and
|
||||||
|
(os.path.isfile(dir+"\\Include\\d3d8.h")) and
|
||||||
|
(os.path.isfile(dir+"\\Include\\d3dx8.h")) and
|
||||||
|
(os.path.isfile(dir+"\\Lib\\d3d8.lib")) and
|
||||||
|
(os.path.isfile(dir+"\\Lib\\d3dx8.lib"))):
|
||||||
|
SDK["DX8"] = dir.replace("\\", "/").rstrip("/")
|
||||||
|
print '\t\t\tFound Default Dx8 Sdk from the uninstaller keys in the registry!'
|
||||||
|
if (("DX9" not in SDK) and
|
||||||
|
(os.path.isfile(dir+"\\Include\\d3d9.h")) and
|
||||||
|
(os.path.isfile(dir+"\\Include\\d3dx9.h")) and
|
||||||
|
(os.path.isfile(dir+"\\Include\\dxsdkver.h")) and
|
||||||
|
(os.path.isfile(dir+"\\Lib\\" + archStr + "\\d3d9.lib")) and
|
||||||
|
(os.path.isfile(dir+"\\Lib\\" + archStr + "\\d3dx9.lib"))):
|
||||||
|
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
||||||
|
print '\t\t\tFound default Dx9 Sdk from the uninstaller keys in the registery'
|
||||||
|
if ("DX9" not in SDK):
|
||||||
|
exit("\t\tCouldn't find a DirectX SDK")
|
||||||
|
elif strMode == 'jun2010':
|
||||||
|
if ("DX9" not in SDK):
|
||||||
|
dir = GetRegistryKey("SOFTWARE\\Wow6432Node\\Microsoft\\DirectX\\Microsoft DirectX SDK (June 2010)", "InstallPath")
|
||||||
|
if (dir != 0):
|
||||||
|
print "\t\tFound DirectX SDK June 2010"
|
||||||
|
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
||||||
|
SDK["GENERIC_DXERR_LIBRARY"] = 1;
|
||||||
|
if ("DX9" not in SDK):
|
||||||
|
dir = GetRegistryKey("SOFTWARE\\Microsoft\\DirectX\\Microsoft DirectX SDK (June 2010)", "InstallPath")
|
||||||
|
if (dir != 0):
|
||||||
|
print "\t\tFound DirectX SDK June 2010"
|
||||||
|
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
||||||
|
SDK["GENERIC_DXERR_LIBRARY"] = 1;
|
||||||
|
if ("DX9" not in SDK):
|
||||||
|
exit("Couldn't find DirectX June2010 SDK")
|
||||||
|
elif strMode == 'aug2009':
|
||||||
|
if ("DX9" not in SDK):
|
||||||
|
dir = GetRegistryKey("SOFTWARE\\Wow6432Node\\Microsoft\\DirectX\\Microsoft DirectX SDK (August 2009)", "InstallPath")
|
||||||
|
if (dir != 0):
|
||||||
|
print "\t\tFound DirectX SDK Aug 2009"
|
||||||
|
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
||||||
|
SDK["GENERIC_DXERR_LIBRARY"] = 1;
|
||||||
|
if ("DX9" not in SDK):
|
||||||
|
dir = GetRegistryKey("SOFTWARE\\Microsoft\\DirectX\\Microsoft DirectX SDK (August 2009)", "InstallPath")
|
||||||
|
if (dir != 0):
|
||||||
|
print "\t\tFound DirectX SDK Aug 2009"
|
||||||
|
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
||||||
|
SDK["GENERIC_DXERR_LIBRARY"] = 1;
|
||||||
|
if ("DX9" not in SDK):
|
||||||
|
exit("Couldn't find DirectX Aug 2009 SDK")
|
||||||
|
elif strMode == 'mar2009':
|
||||||
|
if ("DX9" not in SDK):
|
||||||
|
## Try to locate the key within the "new" March 2009 location in the registry (yecch):
|
||||||
|
dir = GetRegistryKey("SOFTWARE\\Microsoft\\DirectX\\Microsoft DirectX SDK (March 2009)", "InstallPath")
|
||||||
|
if (dir != 0):
|
||||||
|
print "\t\tFound DirectX SDK March 2009"
|
||||||
|
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
||||||
|
if ("DX9" not in SDK):
|
||||||
|
exit("Couldn't find DirectX March 2009 SDK")
|
||||||
|
elif strMode == 'aug2006':
|
||||||
|
archStr = "x86"
|
||||||
|
if (is_64): archStr = "x64"
|
||||||
|
if ("DX9" not in SDK) or ("DX8" not in SDK):
|
||||||
|
print "\t\tLooking for the DirectX SDK in registry uninstaller keys"
|
||||||
|
uninstaller = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
|
||||||
|
for subdir in ListRegistryKeys(uninstaller):
|
||||||
|
if (subdir[0]=="{"):
|
||||||
|
dir = GetRegistryKey(uninstaller+"\\"+subdir, "InstallLocation")
|
||||||
|
if (dir != 0):
|
||||||
|
if (("DX8" not in SDK) and
|
||||||
|
(os.path.isfile(dir+"\\Include\\d3d8.h")) and
|
||||||
|
(os.path.isfile(dir+"\\Include\\d3dx8.h")) and
|
||||||
|
(os.path.isfile(dir+"\\Lib\\d3d8.lib")) and
|
||||||
|
(os.path.isfile(dir+"\\Lib\\d3dx8.lib"))):
|
||||||
|
SDK["DX8"] = dir.replace("\\", "/").rstrip("/")
|
||||||
|
print '\t\t\tFound Dx8 Sdk in registry uninstaller keys'
|
||||||
|
if (("DX9" not in SDK) and
|
||||||
|
(os.path.isfile(dir+"\\Include\\d3d9.h")) and
|
||||||
|
(os.path.isfile(dir+"\\Include\\d3dx9.h")) and
|
||||||
|
(os.path.isfile(dir+"\\Include\\dxsdkver.h")) and
|
||||||
|
(os.path.isfile(dir+"\\Lib\\" + archStr + "\\d3d9.lib")) and
|
||||||
|
(os.path.isfile(dir+"\\Lib\\" + archStr + "\\d3dx9.lib"))):
|
||||||
|
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
||||||
|
print '\t\t\tFound Dx9 Sdk in registry uninstaller keys'
|
||||||
|
if ("DX9" not in SDK):
|
||||||
|
exit("Couldn't find a DirectX Aug 2006 SDK")
|
||||||
if ("DX9" in SDK):
|
if ("DX9" in SDK):
|
||||||
SDK["DIRECTCAM"] = SDK["DX9"]
|
SDK["DIRECTCAM"] = SDK["DX9"]
|
||||||
|
else:
|
||||||
|
print "\tCouldn't find a DirectX 9 SDK"
|
||||||
|
if ("DX8" not in SDK):
|
||||||
|
print "\tCouldn't find a DirectX 8 SDK"
|
||||||
|
print "\n"
|
||||||
|
|
||||||
def SdkLocateMaya():
|
def SdkLocateMaya():
|
||||||
for (ver,key) in MAYAVERSIONINFO:
|
for (ver,key) in MAYAVERSIONINFO:
|
||||||
@ -1467,45 +1571,123 @@ def SdkLocateVisualStudio():
|
|||||||
vcdir = vcdir[:-3]
|
vcdir = vcdir[:-3]
|
||||||
SDK["VISUALSTUDIO"] = vcdir
|
SDK["VISUALSTUDIO"] = vcdir
|
||||||
|
|
||||||
def SdkLocateMSPlatform():
|
def SdkLocateMSPlatform( strMode = 'default'):
|
||||||
if (sys.platform != "win32"): return
|
print '\nWindows Platform SDK:'
|
||||||
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v7.0", "InstallationFolder")
|
platsdk = 0
|
||||||
if (platsdk):
|
if (strMode == 'default'):
|
||||||
if os.path.isdir(platsdk):
|
print '\tSearching for the latest version'
|
||||||
print "Windows 7 SDK detected. Enabling special features (multi-touch)."
|
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v7.1", "InstallationFolder")
|
||||||
else:
|
if (platsdk and not os.path.isdir(platsdk)):
|
||||||
platsdk = 0
|
platsdk = 0
|
||||||
if (platsdk == 0):
|
if platsdk:
|
||||||
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\MicrosoftSDK\\InstalledSDKs\\D2FF9F89-8AA2-4373-8A31-C838BF4DBBE1", "Install Dir")
|
print "\tWindows 7.1 SDK detected. Enabling special features (multi-touch)."
|
||||||
if (platsdk and not os.path.isdir(platsdk)): platsdk = 0
|
|
||||||
if (platsdk == 0):
|
if (platsdk == 0):
|
||||||
|
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\MicrosoftSDK\\InstalledSDKs\\D2FF9F89-8AA2-4373-8A31-C838BF4DBBE1", "Install Dir")
|
||||||
|
if (platsdk and not os.path.isdir(platsdk)):
|
||||||
|
platsdk = 0
|
||||||
|
if platsdk:
|
||||||
|
print "\tFound Windows Server 2003 R2 SDK from registry key"
|
||||||
|
|
||||||
|
if (platsdk == 0):
|
||||||
|
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.1","InstallationFolder")
|
||||||
|
if (platsdk and not os.path.isdir(platsdk)):
|
||||||
|
platsdk = 0
|
||||||
|
if platsdk:
|
||||||
|
print "\tFound Win 6.1 Platform SDK"
|
||||||
|
|
||||||
|
if (platsdk == 0):
|
||||||
|
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.0A","InstallationFolder")
|
||||||
|
if (platsdk and not os.path.isdir(platsdk)):
|
||||||
|
platsdk = 0
|
||||||
|
if platsdk:
|
||||||
|
print "\tFound Win 6.0A Platform SDK"
|
||||||
|
|
||||||
|
if (platsdk == 0 and os.path.isdir(os.path.join(GetProgramFiles(), "Microsoft Platform SDK for Windows Server 2003 R2"))):
|
||||||
|
if (not is_64 or os.path.isdir(os.path.join(GetProgramFiles(), "Microsoft Platform SDK for Windows Server 2003 R2", "Lib", "AMD64"))):
|
||||||
|
platsdk = os.path.join(GetProgramFiles(), "Microsoft Platform SDK for Windows Server 2003 R2")
|
||||||
|
if (not os.path.isdir(platsdk)):
|
||||||
|
platsdk = 0
|
||||||
|
if platsdk:
|
||||||
|
print "\tFound Microsoft Platform SDK for Windows Server 2003 R2 from GetProgramFiles()"
|
||||||
|
|
||||||
|
if (platsdk == 0 and os.path.isdir("C:/Program Files/Microsoft Platform SDK for Windows Server 2003 R2")):
|
||||||
|
if (not is_64 or os.path.isdir(os.path.join("C:/Program Files/Microsoft Platform SDK for Windows Server 2003 R2", "Lib", "AMD64"))):
|
||||||
|
platsdk = os.path.join("C:/Program Files/Microsoft Platform SDK for Windows Server 2003 R2")
|
||||||
|
if (not os.path.isdir(platsdk)):
|
||||||
|
platsdk = 0
|
||||||
|
if platsdk:
|
||||||
|
print "\tFound Microsoft Platform SDK for Windows Server 2003 R2 from C:/Program Files/..."
|
||||||
|
|
||||||
|
# Doesn't work with the Express versions, so we're checking for the "atlmfc" dir, which is not in the Express
|
||||||
|
if (platsdk == 0 and os.path.isdir(os.path.join(GetProgramFiles(), "Microsoft Visual Studio 9\\VC\\atlmfc"))
|
||||||
|
and os.path.isdir(os.path.join(GetProgramFiles(), "Microsoft Visual Studio 9\\VC\\PlatformSDK"))):
|
||||||
|
platsdk = os.path.join(GetProgramFiles(), "Microsoft Visual Studio 9\\VC\\PlatformSDK")
|
||||||
|
if (not os.path.isdir(platsdk)):
|
||||||
|
platsdk = 0
|
||||||
|
if platsdk:
|
||||||
|
print "\tUsing the VC 9.0 platform SDK"
|
||||||
|
|
||||||
|
# This may not be the best idea but it does give a warning
|
||||||
|
if (platsdk == 0):
|
||||||
|
if ("WindowsSdkDir" in os.environ):
|
||||||
|
WARNINGS.append("Windows SDK directory not found in registry, found in Environment variables instead")
|
||||||
|
platsdk = os.environ["WindowsSdkDir"]
|
||||||
|
print "\tUsing Win PlatformSDK from os.environ"
|
||||||
|
|
||||||
|
elif (strMode == 'win71'):
|
||||||
|
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v7.1", "InstallationFolder")
|
||||||
|
if (platsdk and not os.path.isdir(platsdk)):
|
||||||
|
platsdk = 0
|
||||||
|
if platsdk:
|
||||||
|
print "\tWindows 7.1 SDK detected. Enabling special features (multi-touch)."
|
||||||
|
else:
|
||||||
|
exit("Couldn't find Win7.1 Platform SDK")
|
||||||
|
elif (strMode == 'win61'):
|
||||||
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.1","InstallationFolder")
|
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.1","InstallationFolder")
|
||||||
if (platsdk and not os.path.isdir(platsdk)): platsdk = 0
|
if (platsdk and not os.path.isdir(platsdk)):
|
||||||
|
platsdk = 0
|
||||||
if (platsdk == 0):
|
if platsdk:
|
||||||
|
print "\tWindows 6.1 SDK detected."
|
||||||
|
else:
|
||||||
|
exit("Couldn't find Win6.1 Platform SDK")
|
||||||
|
elif (strMode == 'win60A'):
|
||||||
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.0A","InstallationFolder")
|
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.0A","InstallationFolder")
|
||||||
if (platsdk and not os.path.isdir(platsdk)): platsdk = 0
|
if (platsdk and not os.path.isdir(platsdk)):
|
||||||
|
platsdk = 0
|
||||||
if (platsdk == 0 and os.path.isdir(os.path.join(GetProgramFiles(), "Microsoft Platform SDK for Windows Server 2003 R2"))):
|
if platsdk:
|
||||||
if (not is_64 or os.path.isdir(os.path.join(GetProgramFiles(), "Microsoft Platform SDK for Windows Server 2003 R2", "Lib", "AMD64"))):
|
print "\tWin 6.0A Platform SDK detected."
|
||||||
platsdk = os.path.join(GetProgramFiles(), "Microsoft Platform SDK for Windows Server 2003 R2")
|
else:
|
||||||
if (not os.path.isdir(platsdk)): platsdk = 0
|
exit("Couldn't find Win6.0 Platform SDK")
|
||||||
|
elif (strMode == 'winserver2003r2'):
|
||||||
# Doesn't work with the Express versions, so we're checking for the "atlmfc" dir, which is not in the Express
|
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\MicrosoftSDK\\InstalledSDKs\\D2FF9F89-8AA2-4373-8A31-C838BF4DBBE1", "Install Dir")
|
||||||
if (platsdk == 0 and os.path.isdir(os.path.join(GetProgramFiles(), "Microsoft Visual Studio 9\\VC\\atlmfc"))
|
if (platsdk and not os.path.isdir(platsdk)):
|
||||||
and os.path.isdir(os.path.join(GetProgramFiles(), "Microsoft Visual Studio 9\\VC\\PlatformSDK"))):
|
platsdk = 0
|
||||||
platsdk = os.path.join(GetProgramFiles(), "Microsoft Visual Studio 9\\VC\\PlatformSDK")
|
if platsdk:
|
||||||
if (not os.path.isdir(platsdk)): platsdk = 0
|
print "\tFound Windows Server 2003 R2 Platform SDK from registry key \\D2FF...."
|
||||||
|
if (platsdk == 0 and os.path.isdir(os.path.join(GetProgramFiles(), "Microsoft Platform SDK for Windows Server 2003 R2"))):
|
||||||
# This may not be the best idea but it does give a warning
|
if (not is_64 or os.path.isdir(os.path.join(GetProgramFiles(), "Microsoft Platform SDK for Windows Server 2003 R2", "Lib", "AMD64"))):
|
||||||
if (platsdk == 0):
|
platsdk = os.path.join(GetProgramFiles(), "Microsoft Platform SDK for Windows Server 2003 R2")
|
||||||
if ("WindowsSdkDir" in os.environ):
|
if (not os.path.isdir(platsdk)):
|
||||||
WARNINGS.append("Windows SDK directory not found in registry, found in Environment variables instead")
|
platsdk = 0
|
||||||
platsdk = os.environ["WindowsSdkDir"]
|
if platsdk:
|
||||||
|
print "\tUsing Microsoft Platform SDK for Windows Server 2003 R2 from GetProgramFiles()"
|
||||||
|
if (platsdk == 0 and os.path.isdir("C:/Program Files/Microsoft Platform SDK for Windows Server 2003 R2")):
|
||||||
|
if (not is_64 or os.path.isdir(os.path.join("C:/Program Files/Microsoft Platform SDK for Windows Server 2003 R2", "Lib", "AMD64"))):
|
||||||
|
platsdk = os.path.join("C:/Program Files/Microsoft Platform SDK for Windows Server 2003 R2")
|
||||||
|
if (not os.path.isdir(platsdk)):
|
||||||
|
platsdk = 0
|
||||||
|
if platsdk:
|
||||||
|
print "\tUsing Microsoft Platform SDK for Windows Server 2003 R2 from C:/Progra Files/..."
|
||||||
|
if not platsdk:
|
||||||
|
exit("Couldn't find Windows Server 2003 R2 PlatformSDK")
|
||||||
|
|
||||||
if (platsdk != 0):
|
if (platsdk != 0):
|
||||||
if (not platsdk.endswith("\\")):
|
if (not platsdk.endswith("\\")):
|
||||||
platsdk += "\\"
|
platsdk += "\\"
|
||||||
SDK["MSPLATFORM"] = platsdk
|
SDK["MSPLATFORM"] = platsdk
|
||||||
|
else:
|
||||||
|
print "\tCouldn't locate a windows platform SDK."
|
||||||
|
|
||||||
def SdkLocateMacOSX(osxtarget=None):
|
def SdkLocateMacOSX(osxtarget=None):
|
||||||
if (sys.platform != "darwin"): return
|
if (sys.platform != "darwin"): return
|
||||||
@ -2101,4 +2283,12 @@ def TargetAdd(target, dummy=0, opts=0, input=0, dep=0, ipath=0, winrc=0):
|
|||||||
if (target.endswith(".in")):
|
if (target.endswith(".in")):
|
||||||
t.deps[FindLocation("interrogate.exe",[])] = 1
|
t.deps[FindLocation("interrogate.exe",[])] = 1
|
||||||
t.deps[FindLocation("dtool_have_python.dat",[])] = 1
|
t.deps[FindLocation("dtool_have_python.dat",[])] = 1
|
||||||
|
if (target.endswith(".pz")):
|
||||||
|
t.deps[FindLocation("pzip.exe",[])] = 1
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
##Debug SDK search check
|
||||||
|
if sys.platform == "win32":
|
||||||
|
SdkLocateDirectX( 'aug2006' )
|
||||||
|
SdkLocateMSPlatform( 'winserver2003r2')
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user