mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 16:58:40 -04:00
Drop support for VC2008. Add support for VC2010. Split vrpn and ffmpeg out of libpanda. Fixes for cross-compiling 64-bit on 32-bit Windows. Will post new thirdparty packages at the forums.
This commit is contained in:
parent
4b2c64d73f
commit
4c4b627260
@ -21,6 +21,17 @@
|
|||||||
|
|
||||||
load-file-type egg pandaegg
|
load-file-type egg pandaegg
|
||||||
|
|
||||||
|
# These entries work very similar to load-file-type, except they are
|
||||||
|
# used by the MovieVideo and MovieAudio code to determine which module
|
||||||
|
# should be loaded in order to decode files of the given extension.
|
||||||
|
|
||||||
|
# ffmpeg is added by default because it used to be compiled in.
|
||||||
|
# The * is a special catch-all extension that is consulted unless a
|
||||||
|
# loader has been defined with an explicit extension.
|
||||||
|
|
||||||
|
load-audio-type * p3ffmpeg
|
||||||
|
load-video-type * p3ffmpeg
|
||||||
|
|
||||||
# The following lines define some handy object types to use within the
|
# The following lines define some handy object types to use within the
|
||||||
# egg syntax. This remaps <ObjectType> { name } into whatever egg
|
# egg syntax. This remaps <ObjectType> { name } into whatever egg
|
||||||
# syntax is given by egg-object-type-name, which makes a handy
|
# syntax is given by egg-object-type-name, which makes a handy
|
||||||
|
@ -10,19 +10,11 @@ set thirdparty=thirdparty
|
|||||||
if defined MAKEPANDA_THIRDPARTY set thirdparty=%MAKEPANDA_THIRDPARTY%
|
if defined MAKEPANDA_THIRDPARTY set thirdparty=%MAKEPANDA_THIRDPARTY%
|
||||||
|
|
||||||
if not exist makepanda\makepanda.py goto :missing1
|
if not exist makepanda\makepanda.py goto :missing1
|
||||||
|
|
||||||
if not exist %thirdparty%\win-python\python.exe goto :missing2
|
if not exist %thirdparty%\win-python\python.exe goto :missing2
|
||||||
|
|
||||||
if exist %thirdparty%\win-python-x64\python.exe goto :build64
|
|
||||||
%thirdparty%\win-python\python.exe makepanda\makepanda.py %*
|
%thirdparty%\win-python\python.exe makepanda\makepanda.py %*
|
||||||
if errorlevel 1 if x%1 == x--slavebuild exit 1
|
if errorlevel 1 if x%1 == x--slavebuild exit 1
|
||||||
goto done
|
goto done
|
||||||
|
|
||||||
:build64
|
|
||||||
%thirdparty%\win-python-x64\python.exe makepanda\makepanda.py %*
|
|
||||||
if errorlevel 1 if x%1 == x--slavebuild exit 1
|
|
||||||
goto done
|
|
||||||
|
|
||||||
:missing1
|
:missing1
|
||||||
echo You need to change directory to the root of the panda source tree
|
echo You need to change directory to the root of the panda source tree
|
||||||
echo before invoking makepanda. For further install instructions, read
|
echo before invoking makepanda. For further install instructions, read
|
||||||
|
@ -80,7 +80,7 @@ PkgListSet(["PYTHON", "DIRECT", # Python support
|
|||||||
"EGL", # OpenGL (ES) integration
|
"EGL", # OpenGL (ES) integration
|
||||||
"EIGEN", # Linear algebra acceleration
|
"EIGEN", # Linear algebra acceleration
|
||||||
"OPENAL", "FMODEX", # Audio playback
|
"OPENAL", "FMODEX", # Audio playback
|
||||||
"FFMPEG", "SWSCALE", "SWRESAMPLE", # FFMpeg (audio decoding)
|
"VORBIS", "FFMPEG", "SWSCALE", "SWRESAMPLE", # Audio decoding
|
||||||
"ODE", "PHYSX", "BULLET", "PANDAPHYSICS", # 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
|
||||||
@ -501,13 +501,12 @@ if (COMPILER == "MSVC"):
|
|||||||
if (PkgSkip("DIRECTCAM")==0): LibName("DIRECTCAM", "quartz.lib")
|
if (PkgSkip("DIRECTCAM")==0): LibName("DIRECTCAM", "quartz.lib")
|
||||||
if (PkgSkip("DIRECTCAM")==0): LibName("DIRECTCAM", "odbc32.lib")
|
if (PkgSkip("DIRECTCAM")==0): LibName("DIRECTCAM", "odbc32.lib")
|
||||||
if (PkgSkip("DIRECTCAM")==0): LibName("DIRECTCAM", "odbccp32.lib")
|
if (PkgSkip("DIRECTCAM")==0): LibName("DIRECTCAM", "odbccp32.lib")
|
||||||
if (PkgSkip("PNG")==0): LibName("PNG", GetThirdpartyDir() + "png/lib/libpandapng.lib")
|
if (PkgSkip("PNG")==0): LibName("PNG", GetThirdpartyDir() + "png/lib/libpng_static.lib")
|
||||||
if (PkgSkip("JPEG")==0): LibName("JPEG", GetThirdpartyDir() + "jpeg/lib/libpandajpeg.lib")
|
if (PkgSkip("JPEG")==0): LibName("JPEG", GetThirdpartyDir() + "jpeg/lib/jpeg-static.lib")
|
||||||
if (PkgSkip("TIFF")==0): LibName("TIFF", GetThirdpartyDir() + "tiff/lib/libpandatiff.lib")
|
if (PkgSkip("TIFF")==0): LibName("TIFF", GetThirdpartyDir() + "tiff/lib/libpandatiff.lib")
|
||||||
if (PkgSkip("ZLIB")==0): LibName("ZLIB", GetThirdpartyDir() + "zlib/lib/libpandazlib1.lib")
|
if (PkgSkip("ZLIB")==0): LibName("ZLIB", GetThirdpartyDir() + "zlib/lib/zlibstatic.lib")
|
||||||
if (PkgSkip("VRPN")==0): LibName("VRPN", GetThirdpartyDir() + "vrpn/lib/vrpn.lib")
|
if (PkgSkip("VRPN")==0): LibName("VRPN", GetThirdpartyDir() + "vrpn/lib/vrpn.lib")
|
||||||
if (PkgSkip("VRPN")==0): LibName("VRPN", GetThirdpartyDir() + "vrpn/lib/quat.lib")
|
if (PkgSkip("VRPN")==0): LibName("VRPN", GetThirdpartyDir() + "vrpn/lib/quat.lib")
|
||||||
if (PkgSkip("FMODEX")==0): LibName("FMODEX", GetThirdpartyDir() + "fmodex/lib/fmodex_vc.lib")
|
|
||||||
if (PkgSkip("NVIDIACG")==0): LibName("CGGL", GetThirdpartyDir() + "nvidiacg/lib/cgGL.lib")
|
if (PkgSkip("NVIDIACG")==0): LibName("CGGL", GetThirdpartyDir() + "nvidiacg/lib/cgGL.lib")
|
||||||
if (PkgSkip("NVIDIACG")==0): LibName("CGDX9", GetThirdpartyDir() + "nvidiacg/lib/cgD3D9.lib")
|
if (PkgSkip("NVIDIACG")==0): LibName("CGDX9", GetThirdpartyDir() + "nvidiacg/lib/cgD3D9.lib")
|
||||||
if (PkgSkip("NVIDIACG")==0): LibName("NVIDIACG", GetThirdpartyDir() + "nvidiacg/lib/cg.lib")
|
if (PkgSkip("NVIDIACG")==0): LibName("NVIDIACG", GetThirdpartyDir() + "nvidiacg/lib/cg.lib")
|
||||||
@ -517,7 +516,6 @@ if (COMPILER == "MSVC"):
|
|||||||
if (PkgSkip("FFTW")==0): LibName("FFTW", GetThirdpartyDir() + "fftw/lib/rfftw.lib")
|
if (PkgSkip("FFTW")==0): LibName("FFTW", GetThirdpartyDir() + "fftw/lib/rfftw.lib")
|
||||||
if (PkgSkip("FFTW")==0): LibName("FFTW", GetThirdpartyDir() + "fftw/lib/fftw.lib")
|
if (PkgSkip("FFTW")==0): LibName("FFTW", GetThirdpartyDir() + "fftw/lib/fftw.lib")
|
||||||
if (PkgSkip("ARTOOLKIT")==0):LibName("ARTOOLKIT",GetThirdpartyDir() + "artoolkit/lib/libAR.lib")
|
if (PkgSkip("ARTOOLKIT")==0):LibName("ARTOOLKIT",GetThirdpartyDir() + "artoolkit/lib/libAR.lib")
|
||||||
if (PkgSkip("ODE")==0): LibName("ODE", GetThirdpartyDir() + "ode/lib/ode.lib")
|
|
||||||
if (PkgSkip("FCOLLADA")==0): LibName("FCOLLADA", GetThirdpartyDir() + "fcollada/lib/FCollada.lib")
|
if (PkgSkip("FCOLLADA")==0): LibName("FCOLLADA", GetThirdpartyDir() + "fcollada/lib/FCollada.lib")
|
||||||
if (PkgSkip("SQUISH")==0): LibName("SQUISH", GetThirdpartyDir() + "squish/lib/squish.lib")
|
if (PkgSkip("SQUISH")==0): LibName("SQUISH", GetThirdpartyDir() + "squish/lib/squish.lib")
|
||||||
if (PkgSkip("OPENCV")==0): LibName("OPENCV", GetThirdpartyDir() + "opencv/lib/cv.lib")
|
if (PkgSkip("OPENCV")==0): LibName("OPENCV", GetThirdpartyDir() + "opencv/lib/cv.lib")
|
||||||
@ -534,14 +532,19 @@ if (COMPILER == "MSVC"):
|
|||||||
if (PkgSkip("ROCKET")==0):
|
if (PkgSkip("ROCKET")==0):
|
||||||
LibName("ROCKET", GetThirdpartyDir() + "rocket/lib/RocketCore.lib")
|
LibName("ROCKET", GetThirdpartyDir() + "rocket/lib/RocketCore.lib")
|
||||||
LibName("ROCKET", GetThirdpartyDir() + "rocket/lib/RocketControls.lib")
|
LibName("ROCKET", GetThirdpartyDir() + "rocket/lib/RocketControls.lib")
|
||||||
LibName("ROCKET", GetThirdpartyDir() + "rocket/lib/boost_python-vc90-mt-1_48.lib")
|
if (PkgSkip("PYTHON")==0):
|
||||||
|
LibName("ROCKET", GetThirdpartyDir() + "rocket/lib/" + SDK["PYTHONVERSION"] + "/boost_python-vc100-mt-1_54.lib")
|
||||||
if (GetOptimize() <= 3):
|
if (GetOptimize() <= 3):
|
||||||
LibName("ROCKET", GetThirdpartyDir() + "rocket/lib/RocketDebugger.lib")
|
LibName("ROCKET", GetThirdpartyDir() + "rocket/lib/RocketDebugger.lib")
|
||||||
if (PkgSkip("OPENAL")==0):
|
if (PkgSkip("OPENAL")==0): LibName("OPENAL", GetThirdpartyDir() + "openal/lib/OpenAL32.lib")
|
||||||
if (os.path.exists(GetThirdpartyDir() + "openal/lib/pandaopenal32.lib")):
|
if (PkgSkip("ODE")==0):
|
||||||
LibName("OPENAL", GetThirdpartyDir() + "openal/lib/pandaopenal32.lib")
|
LibName("ODE", GetThirdpartyDir() + "ode/lib/ode_single.lib")
|
||||||
|
DefSymbol("ODE", "dSINGLE", "")
|
||||||
|
if (PkgSkip("FMODEX")==0):
|
||||||
|
if (GetTargetArch() == 'x64'):
|
||||||
|
LibName("FMODEX", GetThirdpartyDir() + "fmodex/lib/fmodex64_vc.lib")
|
||||||
else:
|
else:
|
||||||
LibName("OPENAL", GetThirdpartyDir() + "openal/lib/OpenAL32.lib")
|
LibName("FMODEX", GetThirdpartyDir() + "fmodex/lib/fmodex_vc.lib")
|
||||||
if (PkgSkip("WX")==0):
|
if (PkgSkip("WX")==0):
|
||||||
LibName("WX", GetThirdpartyDir() + "wx/lib/wxbase28u.lib")
|
LibName("WX", GetThirdpartyDir() + "wx/lib/wxbase28u.lib")
|
||||||
LibName("WX", GetThirdpartyDir() + "wx/lib/wxmsw28u_core.lib")
|
LibName("WX", GetThirdpartyDir() + "wx/lib/wxmsw28u_core.lib")
|
||||||
@ -550,6 +553,10 @@ if (COMPILER == "MSVC"):
|
|||||||
DefSymbol("WX", "UNICODE", "")
|
DefSymbol("WX", "UNICODE", "")
|
||||||
if (PkgSkip("FLTK")==0):
|
if (PkgSkip("FLTK")==0):
|
||||||
LibName("FLTK", GetThirdpartyDir() + "fltk/lib/fltk.lib")
|
LibName("FLTK", GetThirdpartyDir() + "fltk/lib/fltk.lib")
|
||||||
|
if (PkgSkip("VORBIS")==0):
|
||||||
|
LibName("VORBIS", GetThirdpartyDir() + "vorbis/lib/libogg_static.lib")
|
||||||
|
LibName("VORBIS", GetThirdpartyDir() + "vorbis/lib/libvorbis_static.lib")
|
||||||
|
LibName("VORBIS", GetThirdpartyDir() + "vorbis/lib/libvorbisfile_static.lib")
|
||||||
for pkg in MAYAVERSIONS:
|
for pkg in MAYAVERSIONS:
|
||||||
if (PkgSkip(pkg)==0):
|
if (PkgSkip(pkg)==0):
|
||||||
LibName(pkg, '"' + SDK[pkg] + '/lib/Foundation.lib"')
|
LibName(pkg, '"' + SDK[pkg] + '/lib/Foundation.lib"')
|
||||||
@ -578,15 +585,15 @@ if (COMPILER == "MSVC"):
|
|||||||
AddToPathEnv("PATH", SDK["PHYSX"]+"/../Bin/win32/")
|
AddToPathEnv("PATH", SDK["PHYSX"]+"/../Bin/win32/")
|
||||||
if (PkgSkip("SPEEDTREE")==0):
|
if (PkgSkip("SPEEDTREE")==0):
|
||||||
if GetTargetArch() == 'x64':
|
if GetTargetArch() == 'x64':
|
||||||
libdir = SDK["SPEEDTREE"] + "/Lib/Windows/VC9.x64/"
|
libdir = SDK["SPEEDTREE"] + "/Lib/Windows/VC10.x64/"
|
||||||
p64ext = '64'
|
p64ext = '64'
|
||||||
else:
|
else:
|
||||||
libdir = SDK["SPEEDTREE"] + "/Lib/Windows/VC9/"
|
libdir = SDK["SPEEDTREE"] + "/Lib/Windows/VC10/"
|
||||||
p64ext = ''
|
p64ext = ''
|
||||||
|
|
||||||
debugext = ''
|
debugext = ''
|
||||||
if (GetOptimize() <= 2): debugext = "_d"
|
if (GetOptimize() <= 2): debugext = "_d"
|
||||||
libsuffix = "_v%s_VC90MT%s_Static%s.lib" % (
|
libsuffix = "_v%s_VC100MT%s_Static%s.lib" % (
|
||||||
SDK["SPEEDTREEVERSION"], p64ext, debugext)
|
SDK["SPEEDTREEVERSION"], p64ext, debugext)
|
||||||
LibName("SPEEDTREE", "%sSpeedTreeCore%s" % (libdir, libsuffix))
|
LibName("SPEEDTREE", "%sSpeedTreeCore%s" % (libdir, libsuffix))
|
||||||
LibName("SPEEDTREE", "%sSpeedTreeForest%s" % (libdir, libsuffix))
|
LibName("SPEEDTREE", "%sSpeedTreeForest%s" % (libdir, libsuffix))
|
||||||
@ -597,10 +604,13 @@ if (COMPILER == "MSVC"):
|
|||||||
LibName("SPEEDTREE", "glu32.lib")
|
LibName("SPEEDTREE", "glu32.lib")
|
||||||
IncDirectory("SPEEDTREE", SDK["SPEEDTREE"] + "/Include")
|
IncDirectory("SPEEDTREE", SDK["SPEEDTREE"] + "/Include")
|
||||||
if (PkgSkip("BULLET")==0):
|
if (PkgSkip("BULLET")==0):
|
||||||
LibName("BULLET", GetThirdpartyDir() + "bullet/lib/LinearMath.lib")
|
suffix = '.lib'
|
||||||
LibName("BULLET", GetThirdpartyDir() + "bullet/lib/BulletCollision.lib")
|
if GetTargetArch() == 'x64':
|
||||||
LibName("BULLET", GetThirdpartyDir() + "bullet/lib/BulletDynamics.lib")
|
suffix = '_x64.lib'
|
||||||
LibName("BULLET", GetThirdpartyDir() + "bullet/lib/BulletSoftBody.lib")
|
LibName("BULLET", GetThirdpartyDir() + "bullet/lib/LinearMath" + suffix)
|
||||||
|
LibName("BULLET", GetThirdpartyDir() + "bullet/lib/BulletCollision" + suffix)
|
||||||
|
LibName("BULLET", GetThirdpartyDir() + "bullet/lib/BulletDynamics" + suffix)
|
||||||
|
LibName("BULLET", GetThirdpartyDir() + "bullet/lib/BulletSoftBody" + suffix)
|
||||||
|
|
||||||
if (COMPILER=="GCC"):
|
if (COMPILER=="GCC"):
|
||||||
PkgDisable("AWESOMIUM")
|
PkgDisable("AWESOMIUM")
|
||||||
@ -665,6 +675,7 @@ if (COMPILER=="GCC"):
|
|||||||
SmartPkgEnable("TIFF", "", ("tiff"), "tiff.h")
|
SmartPkgEnable("TIFF", "", ("tiff"), "tiff.h")
|
||||||
SmartPkgEnable("VRPN", "", ("vrpn", "quat"), ("vrpn", "quat.h", "vrpn/vrpn_Types.h"))
|
SmartPkgEnable("VRPN", "", ("vrpn", "quat"), ("vrpn", "quat.h", "vrpn/vrpn_Types.h"))
|
||||||
SmartPkgEnable("BULLET", "bullet", ("BulletSoftBody", "BulletDynamics", "BulletCollision", "LinearMath"), ("bullet", "bullet/btBulletDynamicsCommon.h"))
|
SmartPkgEnable("BULLET", "bullet", ("BulletSoftBody", "BulletDynamics", "BulletCollision", "LinearMath"), ("bullet", "bullet/btBulletDynamicsCommon.h"))
|
||||||
|
SmartPkgEnable("VORBIS", "vorbisfile",("vorbisfile", "vorbis", "ogg"), ("ogg/ogg.h", "vorbis/vorbisfile.h"))
|
||||||
|
|
||||||
rocket_libs = ("RocketCore", "RocketControls")
|
rocket_libs = ("RocketCore", "RocketControls")
|
||||||
if (GetOptimize() <= 3):
|
if (GetOptimize() <= 3):
|
||||||
@ -801,7 +812,6 @@ if (COMPILER=="GCC"):
|
|||||||
LibName("PHYSX", "-lPhysXLoader")
|
LibName("PHYSX", "-lPhysXLoader")
|
||||||
LibName("PHYSX", "-lNxCharacter")
|
LibName("PHYSX", "-lNxCharacter")
|
||||||
|
|
||||||
DefSymbol("ALWAYS", "MAKEPANDA", "")
|
|
||||||
DefSymbol("WITHINPANDA", "WITHIN_PANDA", "1")
|
DefSymbol("WITHINPANDA", "WITHIN_PANDA", "1")
|
||||||
if GetLinkAllStatic():
|
if GetLinkAllStatic():
|
||||||
DefSymbol("ALWAYS", "LINK_ALL_STATIC", "")
|
DefSymbol("ALWAYS", "LINK_ALL_STATIC", "")
|
||||||
@ -951,7 +961,7 @@ def CompileCxx(obj,src,opts):
|
|||||||
cmd += " /QxHost" # compile for target host; Compiling for distribs should probably strictly enforce /arch:..
|
cmd += " /QxHost" # compile for target host; Compiling for distribs should probably strictly enforce /arch:..
|
||||||
cmd += " /Quse-intel-optimized-headers" # use intel optimized headers
|
cmd += " /Quse-intel-optimized-headers" # use intel optimized headers
|
||||||
cmd += " /Qparallel" # enable parallelization
|
cmd += " /Qparallel" # enable parallelization
|
||||||
cmd += " /Qvc9" # for Microsoft Visual C++ 2008
|
cmd += " /Qvc10" # for Microsoft Visual C++ 2010
|
||||||
|
|
||||||
## PCH files coexistence: the /Qpchi option causes the Intel C++ Compiler to name its
|
## PCH files coexistence: the /Qpchi option causes the Intel C++ Compiler to name its
|
||||||
## PCH files with a .pchi filename suffix and reduce build time.
|
## PCH files with a .pchi filename suffix and reduce build time.
|
||||||
@ -1152,16 +1162,17 @@ def CompileIgate(woutd,wsrc,opts):
|
|||||||
# If we're compiling for this platform, we can use the one we've built.
|
# If we're compiling for this platform, we can use the one we've built.
|
||||||
cmd = os.path.join(GetOutputDir(), 'bin', 'interrogate')
|
cmd = os.path.join(GetOutputDir(), 'bin', 'interrogate')
|
||||||
else:
|
else:
|
||||||
|
# Assume that interrogate is on the PATH somewhere.
|
||||||
cmd = 'interrogate'
|
cmd = 'interrogate'
|
||||||
|
|
||||||
cmd += ' -srcdir %s -I%s -Dvolatile -Dmutable' % (srcdir, srcdir)
|
cmd += ' -srcdir %s -I%s -Dvolatile -Dmutable' % (srcdir, srcdir)
|
||||||
if (COMPILER=="MSVC"):
|
if (COMPILER=="MSVC"):
|
||||||
cmd += ' -DCPPPARSER -D__STDC__=1 -D__cplusplus -D__inline -longlong __int64 -D_X86_ -DWIN32_VC -D_WIN32'
|
cmd += ' -DCPPPARSER -D__STDC__=1 -D__cplusplus -D__inline -longlong __int64 -D_X86_ -DWIN32_VC -D_WIN32'
|
||||||
#NOTE: this 1500 value is the version number for VC2008.
|
# NOTE: this 1600 value is the version number for VC2010.
|
||||||
cmd += ' -D_MSC_VER=1500 -D"_declspec(param)=" -D_near -D_far -D__near -D__far -D__stdcall'
|
cmd += ' -D_MSC_VER=1600 -D"_declspec(param)=" -D_near -D_far -D__near -D__far -D__stdcall'
|
||||||
if (COMPILER=="GCC"):
|
if (COMPILER=="GCC"):
|
||||||
cmd += ' -DCPPPARSER -D__STDC__=1 -D__cplusplus -D__inline -D__const=const'
|
cmd += ' -DCPPPARSER -D__STDC__=1 -D__cplusplus -D__inline -D__const=const'
|
||||||
if is_64:
|
if GetTargetArch() in ("x86_64", "amd64"):
|
||||||
cmd += ' -D_LP64'
|
cmd += ' -D_LP64'
|
||||||
else:
|
else:
|
||||||
cmd += ' -D__i386__'
|
cmd += ' -D__i386__'
|
||||||
@ -1219,6 +1230,7 @@ def CompileImod(wobj, wsrc, opts):
|
|||||||
# If we're compiling for this platform, we can use the one we've built.
|
# If we're compiling for this platform, we can use the one we've built.
|
||||||
cmd = os.path.join(GetOutputDir(), 'bin', 'interrogate_module')
|
cmd = os.path.join(GetOutputDir(), 'bin', 'interrogate_module')
|
||||||
else:
|
else:
|
||||||
|
# Assume that interrogate_module is on the PATH somewhere.
|
||||||
cmd = 'interrogate_module'
|
cmd = 'interrogate_module'
|
||||||
|
|
||||||
cmd += ' -oc ' + woutc + ' -module ' + module + ' -library ' + library + ' -python-native '
|
cmd += ' -oc ' + woutc + ' -module ' + module + ' -library ' + library + ' -python-native '
|
||||||
@ -1237,7 +1249,7 @@ def CompileLib(lib, obj, opts):
|
|||||||
if (COMPILER=="MSVC"):
|
if (COMPILER=="MSVC"):
|
||||||
if not BOOUSEINTELCOMPILER:
|
if not BOOUSEINTELCOMPILER:
|
||||||
#Use MSVC Linker
|
#Use MSVC Linker
|
||||||
cmd = 'link /lib /nologo /MANIFEST '
|
cmd = 'link /lib /nologo '
|
||||||
if GetTargetArch() == 'x64':
|
if GetTargetArch() == 'x64':
|
||||||
cmd += "/MACHINE:X64 "
|
cmd += "/MACHINE:X64 "
|
||||||
cmd += '/OUT:' + BracketNameWithQuotes(lib)
|
cmd += '/OUT:' + BracketNameWithQuotes(lib)
|
||||||
@ -1251,7 +1263,7 @@ def CompileLib(lib, obj, opts):
|
|||||||
cmd += '/OUT:' + BracketNameWithQuotes(lib)
|
cmd += '/OUT:' + BracketNameWithQuotes(lib)
|
||||||
for x in obj: cmd += ' ' + BracketNameWithQuotes(x)
|
for x in obj: cmd += ' ' + BracketNameWithQuotes(x)
|
||||||
cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\ipp\lib\ia32"'
|
cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\ipp\lib\ia32"'
|
||||||
cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\TBB\Lib\ia32\vc9"'
|
cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\TBB\Lib\ia32\vc10"'
|
||||||
cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\compiler\lib\ia32"'
|
cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\compiler\lib\ia32"'
|
||||||
oscmd(cmd)
|
oscmd(cmd)
|
||||||
|
|
||||||
@ -1275,7 +1287,7 @@ def CompileLib(lib, obj, opts):
|
|||||||
def CompileLink(dll, obj, opts):
|
def CompileLink(dll, obj, opts):
|
||||||
if (COMPILER=="MSVC"):
|
if (COMPILER=="MSVC"):
|
||||||
if not BOOUSEINTELCOMPILER:
|
if not BOOUSEINTELCOMPILER:
|
||||||
cmd = "link /nologo /manifest "
|
cmd = "link /nologo "
|
||||||
if GetTargetArch() == 'x64':
|
if GetTargetArch() == 'x64':
|
||||||
cmd += " /MACHINE:X64"
|
cmd += " /MACHINE:X64"
|
||||||
if ("MFC" not in opts):
|
if ("MFC" not in opts):
|
||||||
@ -1289,8 +1301,8 @@ def CompileLink(dll, obj, opts):
|
|||||||
if (optlevel==3): cmd += " /MAP:NUL /NOD:MSVCRTD.LIB /NOD:MSVCPRTD.LIB /NOD:MSVCIRTD.LIB"
|
if (optlevel==3): cmd += " /MAP:NUL /NOD:MSVCRTD.LIB /NOD:MSVCPRTD.LIB /NOD:MSVCIRTD.LIB"
|
||||||
if (optlevel==4): cmd += " /MAP:NUL /LTCG /NOD:MSVCRTD.LIB /NOD:MSVCPRTD.LIB /NOD:MSVCIRTD.LIB"
|
if (optlevel==4): cmd += " /MAP:NUL /LTCG /NOD:MSVCRTD.LIB /NOD:MSVCPRTD.LIB /NOD:MSVCIRTD.LIB"
|
||||||
if ("MFC" in opts):
|
if ("MFC" in opts):
|
||||||
if (optlevel<=2): cmd += " /NOD:MSVCRTD.LIB mfcs90d.lib MSVCRTD.lib"
|
if (optlevel<=2): cmd += " /NOD:MSVCRTD.LIB mfcs100d.lib MSVCRTD.lib"
|
||||||
else: cmd += " /NOD:MSVCRT.LIB mfcs90.lib MSVCRT.lib"
|
else: cmd += " /NOD:MSVCRT.LIB mfcs100.lib MSVCRT.lib"
|
||||||
cmd += " /FIXED:NO /OPT:REF /STACK:4194304 /INCREMENTAL:NO "
|
cmd += " /FIXED:NO /OPT:REF /STACK:4194304 /INCREMENTAL:NO "
|
||||||
cmd += ' /OUT:' + BracketNameWithQuotes(dll)
|
cmd += ' /OUT:' + BracketNameWithQuotes(dll)
|
||||||
subsystem = GetValueOption(opts, "SUBSYSTEM:")
|
subsystem = GetValueOption(opts, "SUBSYSTEM:")
|
||||||
@ -1317,11 +1329,6 @@ def CompileLink(dll, obj, opts):
|
|||||||
for (opt, name) in LIBNAMES:
|
for (opt, name) in LIBNAMES:
|
||||||
if (opt=="ALWAYS") or (opt in opts): cmd += " " + BracketNameWithQuotes(name)
|
if (opt=="ALWAYS") or (opt in opts): cmd += " " + BracketNameWithQuotes(name)
|
||||||
oscmd(cmd)
|
oscmd(cmd)
|
||||||
SetVC90CRTVersion(dll+".manifest")
|
|
||||||
mtcmd = "mt -manifest " + dll + ".manifest -outputresource:" + dll
|
|
||||||
if (dll.endswith(".exe")==0): mtcmd = mtcmd + ";2"
|
|
||||||
else: mtcmd = mtcmd + ";1"
|
|
||||||
oscmd(mtcmd, ignoreError=True) # HACK: For some reason, mt sometimes gives a non-zero return value, even when it works
|
|
||||||
else:
|
else:
|
||||||
cmd = "xilink"
|
cmd = "xilink"
|
||||||
if GetVerbose(): cmd += " /verbose:lib"
|
if GetVerbose(): cmd += " /verbose:lib"
|
||||||
@ -1332,7 +1339,7 @@ def CompileLink(dll, obj, opts):
|
|||||||
cmd += " /NOD:LIBCI.LIB /DEBUG"
|
cmd += " /NOD:LIBCI.LIB /DEBUG"
|
||||||
cmd += " /nod:libc /nod:libcmtd /nod:atlthunk /nod:atls"
|
cmd += " /nod:libc /nod:libcmtd /nod:atlthunk /nod:atls"
|
||||||
cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\ipp\lib\ia32"'
|
cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\ipp\lib\ia32"'
|
||||||
cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\TBB\Lib\ia32\vc9"'
|
cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\TBB\Lib\ia32\vc10"'
|
||||||
cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\compiler\lib\ia32"'
|
cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\compiler\lib\ia32"'
|
||||||
if (GetOrigExt(dll) != ".exe"): cmd += " /DLL"
|
if (GetOrigExt(dll) != ".exe"): cmd += " /DLL"
|
||||||
optlevel = GetOptimizeOption(opts)
|
optlevel = GetOptimizeOption(opts)
|
||||||
@ -1341,8 +1348,8 @@ def CompileLink(dll, obj, opts):
|
|||||||
if (optlevel==3): cmd += " /MAP:NUL /NOD:MSVCRTD.LIB /NOD:MSVCPRTD.LIB /NOD:MSVCIRTD.LIB"
|
if (optlevel==3): cmd += " /MAP:NUL /NOD:MSVCRTD.LIB /NOD:MSVCPRTD.LIB /NOD:MSVCIRTD.LIB"
|
||||||
if (optlevel==4): cmd += " /MAP:NUL /LTCG /NOD:MSVCRTD.LIB /NOD:MSVCPRTD.LIB /NOD:MSVCIRTD.LIB"
|
if (optlevel==4): cmd += " /MAP:NUL /LTCG /NOD:MSVCRTD.LIB /NOD:MSVCPRTD.LIB /NOD:MSVCIRTD.LIB"
|
||||||
if ("MFC" in opts):
|
if ("MFC" in opts):
|
||||||
if (optlevel<=2): cmd += " /NOD:MSVCRTD.LIB mfcs90d.lib MSVCRTD.lib"
|
if (optlevel<=2): cmd += " /NOD:MSVCRTD.LIB mfcs100d.lib MSVCRTD.lib"
|
||||||
else: cmd += " /NOD:MSVCRT.LIB mfcs90.lib MSVCRT.lib"
|
else: cmd += " /NOD:MSVCRT.LIB mfcs100.lib MSVCRT.lib"
|
||||||
cmd += " /FIXED:NO /OPT:REF /STACK:4194304 /INCREMENTAL:NO "
|
cmd += " /FIXED:NO /OPT:REF /STACK:4194304 /INCREMENTAL:NO "
|
||||||
cmd += ' /OUT:' + BracketNameWithQuotes(dll)
|
cmd += ' /OUT:' + BracketNameWithQuotes(dll)
|
||||||
subsystem = GetValueOption(opts, "SUBSYSTEM:")
|
subsystem = GetValueOption(opts, "SUBSYSTEM:")
|
||||||
@ -1369,11 +1376,6 @@ def CompileLink(dll, obj, opts):
|
|||||||
for (opt, name) in LIBNAMES:
|
for (opt, name) in LIBNAMES:
|
||||||
if (opt=="ALWAYS") or (opt in opts): cmd += " " + BracketNameWithQuotes(name)
|
if (opt=="ALWAYS") or (opt in opts): cmd += " " + BracketNameWithQuotes(name)
|
||||||
oscmd(cmd)
|
oscmd(cmd)
|
||||||
SetVC90CRTVersion(dll+".manifest")
|
|
||||||
mtcmd = "mt -manifest " + dll + ".manifest -outputresource:" + dll
|
|
||||||
if (dll.endswith(".exe")==0): mtcmd = mtcmd + ";2"
|
|
||||||
else: mtcmd = mtcmd + ";1"
|
|
||||||
oscmd(mtcmd, ignoreError=True) # HACK: For some reason, mt sometimes gives a non-zero return value, even when it works
|
|
||||||
|
|
||||||
if COMPILER == "GCC":
|
if COMPILER == "GCC":
|
||||||
cxx = GetCXX()
|
cxx = GetCXX()
|
||||||
@ -1911,7 +1913,7 @@ DTOOL_CONFIG=[
|
|||||||
("HAVE_SOFTIMAGE_PIC", '1', '1'),
|
("HAVE_SOFTIMAGE_PIC", '1', '1'),
|
||||||
("HAVE_BMP", '1', '1'),
|
("HAVE_BMP", '1', '1'),
|
||||||
("HAVE_PNM", '1', '1'),
|
("HAVE_PNM", '1', '1'),
|
||||||
("HAVE_VRPN", 'UNDEF', 'UNDEF'),
|
("HAVE_VORBIS", 'UNDEF', 'UNDEF'),
|
||||||
("HAVE_FMODEX", 'UNDEF', 'UNDEF'),
|
("HAVE_FMODEX", 'UNDEF', 'UNDEF'),
|
||||||
("HAVE_OPENAL", 'UNDEF', 'UNDEF'),
|
("HAVE_OPENAL", 'UNDEF', 'UNDEF'),
|
||||||
("HAVE_NVIDIACG", 'UNDEF', 'UNDEF'),
|
("HAVE_NVIDIACG", 'UNDEF', 'UNDEF'),
|
||||||
@ -2507,6 +2509,8 @@ CopyAllHeaders('panda/src/grutil')
|
|||||||
if (PkgSkip("VISION")==0):
|
if (PkgSkip("VISION")==0):
|
||||||
CopyAllHeaders('panda/src/vision')
|
CopyAllHeaders('panda/src/vision')
|
||||||
CopyAllHeaders('panda/src/awesomium')
|
CopyAllHeaders('panda/src/awesomium')
|
||||||
|
if (PkgSkip("FFMPEG")==0):
|
||||||
|
CopyAllHeaders('panda/src/ffmpeg')
|
||||||
CopyAllHeaders('panda/src/tform')
|
CopyAllHeaders('panda/src/tform')
|
||||||
CopyAllHeaders('panda/src/collide')
|
CopyAllHeaders('panda/src/collide')
|
||||||
CopyAllHeaders('panda/src/parametrics')
|
CopyAllHeaders('panda/src/parametrics')
|
||||||
@ -3213,9 +3217,8 @@ if (not RUNTIME):
|
|||||||
#
|
#
|
||||||
|
|
||||||
if (not RUNTIME):
|
if (not RUNTIME):
|
||||||
OPTS=['DIR:panda/src/movies', 'BUILDING:PANDA', 'FFMPEG']
|
OPTS=['DIR:panda/src/movies', 'BUILDING:PANDA', 'VORBIS']
|
||||||
TargetAdd('p3movies_composite1.obj', opts=OPTS, input='p3movies_composite1.cxx')
|
TargetAdd('p3movies_composite1.obj', opts=OPTS, input='p3movies_composite1.cxx')
|
||||||
TargetAdd('p3movies_composite2.obj', opts=OPTS, input='p3movies_composite2.cxx')
|
|
||||||
IGATEFILES=GetDirectoryContents('panda/src/movies', ["*.h", "*_composite*.cxx"])
|
IGATEFILES=GetDirectoryContents('panda/src/movies', ["*.h", "*_composite*.cxx"])
|
||||||
TargetAdd('libp3movies.in', opts=OPTS, input=IGATEFILES)
|
TargetAdd('libp3movies.in', opts=OPTS, input=IGATEFILES)
|
||||||
TargetAdd('libp3movies.in', opts=['IMOD:panda', 'ILIB:libp3movies', 'SRCDIR:panda/src/movies'])
|
TargetAdd('libp3movies.in', opts=['IMOD:panda', 'ILIB:libp3movies', 'SRCDIR:panda/src/movies'])
|
||||||
@ -3226,7 +3229,7 @@ if (not RUNTIME):
|
|||||||
#
|
#
|
||||||
|
|
||||||
if (not RUNTIME):
|
if (not RUNTIME):
|
||||||
OPTS=['DIR:panda/src/grutil', 'BUILDING:PANDA', 'FFMPEG', 'BIGOBJ']
|
OPTS=['DIR:panda/src/grutil', 'BUILDING:PANDA', 'BIGOBJ']
|
||||||
TargetAdd('p3grutil_multitexReducer.obj', opts=OPTS, input='multitexReducer.cxx')
|
TargetAdd('p3grutil_multitexReducer.obj', opts=OPTS, input='multitexReducer.cxx')
|
||||||
TargetAdd('p3grutil_composite1.obj', opts=OPTS, input='p3grutil_composite1.cxx')
|
TargetAdd('p3grutil_composite1.obj', opts=OPTS, input='p3grutil_composite1.cxx')
|
||||||
TargetAdd('p3grutil_composite2.obj', opts=OPTS, input='p3grutil_composite2.cxx')
|
TargetAdd('p3grutil_composite2.obj', opts=OPTS, input='p3grutil_composite2.cxx')
|
||||||
@ -3309,18 +3312,6 @@ if (not RUNTIME):
|
|||||||
TargetAdd('libp3recorder.in', opts=['IMOD:panda', 'ILIB:libp3recorder', 'SRCDIR:panda/src/recorder'])
|
TargetAdd('libp3recorder.in', opts=['IMOD:panda', 'ILIB:libp3recorder', 'SRCDIR:panda/src/recorder'])
|
||||||
TargetAdd('libp3recorder_igate.obj', input='libp3recorder.in', opts=["DEPENDENCYONLY"])
|
TargetAdd('libp3recorder_igate.obj', input='libp3recorder.in', opts=["DEPENDENCYONLY"])
|
||||||
|
|
||||||
#
|
|
||||||
# DIRECTORY: panda/src/vrpn/
|
|
||||||
#
|
|
||||||
|
|
||||||
if (PkgSkip("VRPN")==0 and not RUNTIME):
|
|
||||||
OPTS=['DIR:panda/src/vrpn', 'BUILDING:PANDA', 'VRPN']
|
|
||||||
TargetAdd('p3vrpn_composite1.obj', opts=OPTS, input='p3vrpn_composite1.cxx')
|
|
||||||
IGATEFILES=GetDirectoryContents('panda/src/vrpn', ["*.h", "*_composite*.cxx"])
|
|
||||||
TargetAdd('libp3vrpn.in', opts=OPTS, input=IGATEFILES)
|
|
||||||
TargetAdd('libp3vrpn.in', opts=['IMOD:panda', 'ILIB:libp3vrpn', 'SRCDIR:panda/src/vrpn'])
|
|
||||||
TargetAdd('libp3vrpn_igate.obj', input='libp3vrpn.in', opts=["DEPENDENCYONLY"])
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# DIRECTORY: panda/src/dxml/
|
# DIRECTORY: panda/src/dxml/
|
||||||
#
|
#
|
||||||
@ -3345,9 +3336,9 @@ if (not RUNTIME):
|
|||||||
#
|
#
|
||||||
|
|
||||||
if (not RUNTIME):
|
if (not RUNTIME):
|
||||||
OPTS=['DIR:panda/metalibs/panda', 'BUILDING:PANDA', 'VRPN', 'JPEG', 'PNG',
|
OPTS=['DIR:panda/metalibs/panda', 'BUILDING:PANDA', 'JPEG', 'PNG',
|
||||||
'TIFF', 'ZLIB', 'OPENSSL', 'FREETYPE', 'FFTW', 'ADVAPI', 'WINSOCK2','SQUISH',
|
'TIFF', 'ZLIB', 'OPENSSL', 'FREETYPE', 'FFTW', 'ADVAPI', 'WINSOCK2',
|
||||||
'NVIDIACG', 'WINUSER', 'WINMM', 'FFMPEG', 'SWSCALE', 'SWRESAMPLE', 'WINGDI', 'IPHLPAPI']
|
'SQUISH', 'NVIDIACG', 'VORBIS', 'WINUSER', 'WINMM', 'WINGDI', 'IPHLPAPI']
|
||||||
|
|
||||||
TargetAdd('panda_panda.obj', opts=OPTS, input='panda.cxx')
|
TargetAdd('panda_panda.obj', opts=OPTS, input='panda.cxx')
|
||||||
|
|
||||||
@ -3398,7 +3389,6 @@ if (not RUNTIME):
|
|||||||
TargetAdd('libpanda.dll', input='p3cull_composite1.obj')
|
TargetAdd('libpanda.dll', input='p3cull_composite1.obj')
|
||||||
TargetAdd('libpanda.dll', input='p3cull_composite2.obj')
|
TargetAdd('libpanda.dll', input='p3cull_composite2.obj')
|
||||||
TargetAdd('libpanda.dll', input='p3movies_composite1.obj')
|
TargetAdd('libpanda.dll', input='p3movies_composite1.obj')
|
||||||
TargetAdd('libpanda.dll', input='p3movies_composite2.obj')
|
|
||||||
TargetAdd('libpanda.dll', input='libp3movies_igate.obj')
|
TargetAdd('libpanda.dll', input='libp3movies_igate.obj')
|
||||||
TargetAdd('libpanda.dll', input='p3grutil_multitexReducer.obj')
|
TargetAdd('libpanda.dll', input='p3grutil_multitexReducer.obj')
|
||||||
TargetAdd('libpanda.dll', input='p3grutil_composite1.obj')
|
TargetAdd('libpanda.dll', input='p3grutil_composite1.obj')
|
||||||
@ -3477,11 +3467,6 @@ if (not RUNTIME):
|
|||||||
TargetAdd('libpanda.dll', input='libp3dtoolconfig.dll')
|
TargetAdd('libpanda.dll', input='libp3dtoolconfig.dll')
|
||||||
TargetAdd('libpanda.dll', input='libp3dtool.dll')
|
TargetAdd('libpanda.dll', input='libp3dtool.dll')
|
||||||
|
|
||||||
if PkgSkip("VRPN")==0:
|
|
||||||
TargetAdd('libpanda.dll', input="p3vrpn_composite1.obj")
|
|
||||||
TargetAdd('libpanda.dll', input="libp3vrpn_igate.obj")
|
|
||||||
TargetAdd('libpanda_module.obj', input='libp3vrpn.in')
|
|
||||||
|
|
||||||
if PkgSkip("FREETYPE")==0:
|
if PkgSkip("FREETYPE")==0:
|
||||||
TargetAdd('libpanda.dll', input="p3pnmtext_composite1.obj")
|
TargetAdd('libpanda.dll', input="p3pnmtext_composite1.obj")
|
||||||
TargetAdd('libpanda.dll', input="libp3pnmtext_igate.obj")
|
TargetAdd('libpanda.dll', input="libp3pnmtext_igate.obj")
|
||||||
@ -3490,7 +3475,6 @@ if (not RUNTIME):
|
|||||||
TargetAdd('libpanda_module.obj', opts=OPTS)
|
TargetAdd('libpanda_module.obj', opts=OPTS)
|
||||||
TargetAdd('libpanda_module.obj', opts=['IMOD:panda', 'ILIB:libpanda'])
|
TargetAdd('libpanda_module.obj', opts=['IMOD:panda', 'ILIB:libpanda'])
|
||||||
|
|
||||||
TargetAdd('libpanda.dll', dep='dtool_have_vrpn.dat')
|
|
||||||
TargetAdd('libpanda.dll', dep='dtool_have_freetype.dat')
|
TargetAdd('libpanda.dll', dep='dtool_have_freetype.dat')
|
||||||
TargetAdd('libpanda.dll', opts=OPTS)
|
TargetAdd('libpanda.dll', opts=OPTS)
|
||||||
|
|
||||||
@ -3560,7 +3544,6 @@ if PkgSkip("AWESOMIUM") == 0 and not RUNTIME:
|
|||||||
TargetAdd('libp3awesomium.dll', input=COMMON_PANDA_LIBS)
|
TargetAdd('libp3awesomium.dll', input=COMMON_PANDA_LIBS)
|
||||||
TargetAdd('libp3awesomium.dll', opts=OPTS)
|
TargetAdd('libp3awesomium.dll', opts=OPTS)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# DIRECTORY: panda/src/p3skel
|
# DIRECTORY: panda/src/p3skel
|
||||||
#
|
#
|
||||||
@ -3621,6 +3604,38 @@ if (PkgSkip('PANDAFX')==0) and (not RUNTIME):
|
|||||||
TargetAdd('libpandafx.dll', input=COMMON_PANDA_LIBS)
|
TargetAdd('libpandafx.dll', input=COMMON_PANDA_LIBS)
|
||||||
TargetAdd('libpandafx.dll', opts=['ADVAPI', 'NVIDIACG'])
|
TargetAdd('libpandafx.dll', opts=['ADVAPI', 'NVIDIACG'])
|
||||||
|
|
||||||
|
#
|
||||||
|
# DIRECTORY: panda/src/vrpn/
|
||||||
|
#
|
||||||
|
|
||||||
|
if (PkgSkip("VRPN")==0 and not RUNTIME):
|
||||||
|
OPTS=['DIR:panda/src/vrpn', 'BUILDING:VRPN', 'VRPN']
|
||||||
|
TargetAdd('p3vrpn_composite1.obj', opts=OPTS, input='p3vrpn_composite1.cxx')
|
||||||
|
IGATEFILES=GetDirectoryContents('panda/src/vrpn', ["*.h", "*_composite*.cxx"])
|
||||||
|
TargetAdd('libp3vrpn.in', opts=OPTS, input=IGATEFILES)
|
||||||
|
TargetAdd('libp3vrpn.in', opts=['IMOD:p3vrpn', 'ILIB:libp3vrpn', 'SRCDIR:panda/src/vrpn'])
|
||||||
|
TargetAdd('libp3vrpn_igate.obj', input='libp3vrpn.in', opts=["DEPENDENCYONLY"])
|
||||||
|
|
||||||
|
TargetAdd('libp3vrpn_module.obj', input='libp3vrpn.in')
|
||||||
|
TargetAdd('libp3vrpn_module.obj', opts=OPTS)
|
||||||
|
TargetAdd('libp3vrpn_module.obj', opts=['IMOD:p3vrpn', 'ILIB:libp3vrpn'])
|
||||||
|
|
||||||
|
TargetAdd('libp3vrpn.dll', input='libp3vrpn_module.obj')
|
||||||
|
TargetAdd('libp3vrpn.dll', input='p3vrpn_composite1.obj')
|
||||||
|
TargetAdd('libp3vrpn.dll', input='libp3vrpn_igate.obj')
|
||||||
|
TargetAdd('libp3vrpn.dll', input=COMMON_PANDA_LIBS)
|
||||||
|
TargetAdd('libp3vrpn.dll', opts=['VRPN'])
|
||||||
|
|
||||||
|
#
|
||||||
|
# DIRECTORY: panda/src/ffmpeg
|
||||||
|
#
|
||||||
|
if PkgSkip("FFMPEG") == 0 and not RUNTIME:
|
||||||
|
OPTS=['DIR:panda/src/ffmpeg', 'BUILDING:FFMPEG', 'FFMPEG', 'SWSCALE', 'SWRESAMPLE']
|
||||||
|
TargetAdd('p3ffmpeg_composite1.obj', opts=OPTS, input='p3ffmpeg_composite1.cxx')
|
||||||
|
TargetAdd('libp3ffmpeg.dll', input='p3ffmpeg_composite1.obj')
|
||||||
|
TargetAdd('libp3ffmpeg.dll', input=COMMON_PANDA_LIBS)
|
||||||
|
TargetAdd('libp3ffmpeg.dll', opts=OPTS)
|
||||||
|
|
||||||
#
|
#
|
||||||
# DIRECTORY: panda/src/audiotraits/
|
# DIRECTORY: panda/src/audiotraits/
|
||||||
#
|
#
|
||||||
@ -5574,7 +5589,10 @@ if (PkgSkip("CONTRIB")==0 and not RUNTIME):
|
|||||||
|
|
||||||
if (PkgSkip("PYTHON")==0 and not RUNTIME):
|
if (PkgSkip("PYTHON")==0 and not RUNTIME):
|
||||||
# We're phasing out the concept of PandaModules, so do not
|
# We're phasing out the concept of PandaModules, so do not
|
||||||
# add new libraries here. See direct/src/ffi/panda3d.py
|
# add new libraries here. Only add new libraries when you've
|
||||||
|
# split them out of libpanda and need to maintain backward
|
||||||
|
# compatibility with old imports. 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')
|
||||||
if (PkgSkip("PANDAPHYSICS")==0):
|
if (PkgSkip("PANDAPHYSICS")==0):
|
||||||
@ -5592,6 +5610,8 @@ if (PkgSkip("PYTHON")==0 and not RUNTIME):
|
|||||||
TargetAdd('PandaModules.py', input='libp3awesomium.dll')
|
TargetAdd('PandaModules.py', input='libp3awesomium.dll')
|
||||||
if (PkgSkip("ODE")==0):
|
if (PkgSkip("ODE")==0):
|
||||||
TargetAdd('PandaModules.py', input='libpandaode.dll')
|
TargetAdd('PandaModules.py', input='libpandaode.dll')
|
||||||
|
if (PkgSkip("VRPN")==0):
|
||||||
|
TargetAdd('PandaModules.py', input='libp3vrpn.dll')
|
||||||
|
|
||||||
#
|
#
|
||||||
# Generate the models directory and samples directory
|
# Generate the models directory and samples directory
|
||||||
@ -6403,9 +6423,9 @@ if (INSTALLER != 0):
|
|||||||
if (GetOptimize() <= 2): dbg = "-dbg"
|
if (GetOptimize() <= 2): dbg = "-dbg"
|
||||||
if GetTargetArch() == 'x64':
|
if GetTargetArch() == 'x64':
|
||||||
if (RUNTIME):
|
if (RUNTIME):
|
||||||
MakeInstallerNSIS("Panda3D-Runtime-"+VERSION+dbg+"-x64.exe", "Panda3D", "Panda3D "+VERSION, "C:\\Panda3D-"+VERSION)
|
MakeInstallerNSIS("Panda3D-Runtime-"+VERSION+dbg+"-x64.exe", "Panda3D", "Panda3D "+VERSION, "C:\\Panda3D-"+VERSION+"-x64")
|
||||||
else:
|
else:
|
||||||
MakeInstallerNSIS("Panda3D-"+VERSION+dbg+"-x64.exe", "Panda3D", "Panda3D "+VERSION, "C:\\Panda3D-"+VERSION)
|
MakeInstallerNSIS("Panda3D-"+VERSION+dbg+"-x64.exe", "Panda3D", "Panda3D "+VERSION, "C:\\Panda3D-"+VERSION+"-x64")
|
||||||
else:
|
else:
|
||||||
if (RUNTIME):
|
if (RUNTIME):
|
||||||
MakeInstallerNSIS("Panda3D-Runtime-"+VERSION+dbg+".exe", "Panda3D", "Panda3D "+VERSION, "C:\\Panda3D-"+VERSION)
|
MakeInstallerNSIS("Panda3D-Runtime-"+VERSION+dbg+".exe", "Panda3D", "Panda3D "+VERSION, "C:\\Panda3D-"+VERSION)
|
||||||
|
@ -43,14 +43,14 @@ if sys.platform == 'darwin':
|
|||||||
# currently running in 32-bit mode. But sys.maxint is a reliable
|
# currently running in 32-bit mode. But sys.maxint is a reliable
|
||||||
# indicator.
|
# indicator.
|
||||||
if sys.version_info >= (3, 0):
|
if sys.version_info >= (3, 0):
|
||||||
is_64 = (sys.maxsize > 0x100000000)
|
host_64 = (sys.maxsize > 0x100000000)
|
||||||
else:
|
else:
|
||||||
is_64 = (sys.maxint > 0x100000000)
|
host_64 = (sys.maxint > 0x100000000)
|
||||||
else:
|
else:
|
||||||
# On Windows (and Linux?) sys.maxint reports 0x7fffffff even on a
|
# On Windows (and Linux?) sys.maxint reports 0x7fffffff even on a
|
||||||
# 64-bit build. So we stick with platform.architecture in that
|
# 64-bit build. So we stick with platform.architecture in that
|
||||||
# case.
|
# case.
|
||||||
is_64 = (platform.architecture()[0] == '64bit')
|
host_64 = (platform.architecture()[0] == '64bit')
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
##
|
##
|
||||||
@ -260,7 +260,7 @@ def GetHostArch():
|
|||||||
|
|
||||||
target = GetTarget()
|
target = GetTarget()
|
||||||
if target == 'windows':
|
if target == 'windows':
|
||||||
return 'x64' if is_64 else 'x86'
|
return 'x64' if host_64 else 'x86'
|
||||||
else: #TODO
|
else: #TODO
|
||||||
return platform.machine()
|
return platform.machine()
|
||||||
|
|
||||||
@ -284,6 +284,11 @@ def SetTarget(target, arch=None):
|
|||||||
TOOLCHAIN_PREFIX = ''
|
TOOLCHAIN_PREFIX = ''
|
||||||
|
|
||||||
if target == 'windows':
|
if target == 'windows':
|
||||||
|
if arch == 'i386':
|
||||||
|
arch = 'x86'
|
||||||
|
elif arch == 'amd64':
|
||||||
|
arch = 'x64'
|
||||||
|
|
||||||
if arch is not None and arch != 'x86' and arch != 'x64':
|
if arch is not None and arch != 'x86' and arch != 'x64':
|
||||||
exit("Windows architecture must be x86 or x64")
|
exit("Windows architecture must be x86 or x64")
|
||||||
|
|
||||||
@ -846,7 +851,7 @@ def ListRegistryValues(path):
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
def GetRegistryKey(path, subkey, override64=True):
|
def GetRegistryKey(path, subkey, override64=True):
|
||||||
if (is_64 and override64==True):
|
if (host_64 and override64):
|
||||||
path = path.replace("SOFTWARE\\", "SOFTWARE\\Wow6432Node\\")
|
path = path.replace("SOFTWARE\\", "SOFTWARE\\Wow6432Node\\")
|
||||||
k1=0
|
k1=0
|
||||||
key = TryRegistryKey(path)
|
key = TryRegistryKey(path)
|
||||||
@ -1064,7 +1069,7 @@ def GetThirdpartyBase():
|
|||||||
|
|
||||||
def GetThirdpartyDir():
|
def GetThirdpartyDir():
|
||||||
"""Returns the thirdparty directory for the target platform,
|
"""Returns the thirdparty directory for the target platform,
|
||||||
ie. thirdparty/win-libs-vc9/. May return None in the future."""
|
ie. thirdparty/win-libs-vc10/. May return None in the future."""
|
||||||
global THIRDPARTYDIR
|
global THIRDPARTYDIR
|
||||||
if THIRDPARTYDIR != None:
|
if THIRDPARTYDIR != None:
|
||||||
return THIRDPARTYDIR
|
return THIRDPARTYDIR
|
||||||
@ -1075,28 +1080,28 @@ def GetThirdpartyDir():
|
|||||||
|
|
||||||
if (target == 'windows'):
|
if (target == 'windows'):
|
||||||
if target_arch == 'x64':
|
if target_arch == 'x64':
|
||||||
THIRDPARTYDIR = base + "/win-libs-vc9-x64/"
|
THIRDPARTYDIR = base + "/win-libs-vc10-x64/"
|
||||||
if not os.path.isdir(THIRDPARTYDIR):
|
if not os.path.isdir(THIRDPARTYDIR):
|
||||||
THIRDPARTYDIR = base + "/win-libs-vc9/"
|
THIRDPARTYDIR = base + "/win-libs-vc10/"
|
||||||
else:
|
else:
|
||||||
THIRDPARTYDIR = base + "/win-libs-vc9/"
|
THIRDPARTYDIR = base + "/win-libs-vc10/"
|
||||||
|
|
||||||
elif (target == 'darwin'):
|
elif (target == 'darwin'):
|
||||||
# OSX thirdparty binaries are universal, where possible.
|
# OSX thirdparty binaries are universal, where possible.
|
||||||
THIRDPARTYDIR = base + "/darwin-libs-a/"
|
THIRDPARTYDIR = base + "/darwin-libs-a/"
|
||||||
|
|
||||||
elif (target == 'linux'):
|
elif (target == 'linux'):
|
||||||
if (platform.machine().startswith("arm")):
|
if (target_arch.startswith("arm")):
|
||||||
THIRDPARTYDIR = base + "/linux-libs-arm/"
|
THIRDPARTYDIR = base + "/linux-libs-arm/"
|
||||||
elif (is_64):
|
elif (target_arch in ("x86_64", "amd64")):
|
||||||
THIRDPARTYDIR = base + "/linux-libs-x64/"
|
THIRDPARTYDIR = base + "/linux-libs-x64/"
|
||||||
else:
|
else:
|
||||||
THIRDPARTYDIR = base + "/linux-libs-a/"
|
THIRDPARTYDIR = base + "/linux-libs-a/"
|
||||||
|
|
||||||
elif (target == 'freebsd'):
|
elif (target == 'freebsd'):
|
||||||
if (platform.machine().startswith("arm")):
|
if (target_arch.startswith("arm")):
|
||||||
THIRDPARTYDIR = base + "/freebsd-libs-arm/"
|
THIRDPARTYDIR = base + "/freebsd-libs-arm/"
|
||||||
elif (is_64):
|
elif (target_arch in ("x86_64", "amd64")):
|
||||||
THIRDPARTYDIR = base + "/freebsd-libs-x64/"
|
THIRDPARTYDIR = base + "/freebsd-libs-x64/"
|
||||||
else:
|
else:
|
||||||
THIRDPARTYDIR = base + "/freebsd-libs-a/"
|
THIRDPARTYDIR = base + "/freebsd-libs-a/"
|
||||||
@ -1113,46 +1118,6 @@ def GetThirdpartyDir():
|
|||||||
|
|
||||||
return THIRDPARTYDIR
|
return THIRDPARTYDIR
|
||||||
|
|
||||||
########################################################################
|
|
||||||
##
|
|
||||||
## Visual Studio Manifest Manipulation.
|
|
||||||
## These functions exist to make sure we are referencing the same
|
|
||||||
## version of the VC runtime in the manifests that we are shipping
|
|
||||||
## with Panda3D, to avoid side-by-side configuration errors. Also,
|
|
||||||
## it also removes any dependency the VC80 CRT (as we only want to
|
|
||||||
## depend on the VC90 CRT).
|
|
||||||
##
|
|
||||||
########################################################################
|
|
||||||
|
|
||||||
VC90CRTVERSIONRE=re.compile("name=['\"]Microsoft.VC90.CRT['\"]\\s+version=['\"]([0-9.]+)['\"]")
|
|
||||||
VC80CRTASSEMBLYRE=re.compile("<dependency>[\t \r\n]*<dependentAssembly>[\t \r\n]*<assemblyIdentity[\t \r\na-zA-Z0-9.'\"=]*name=['\"]Microsoft[.]VC80[.]CRT['\"][\t \r\na-zA-Z0-9.'\"=/]*>[\t \r\n]*(</assemblyIdentity>)?[\t \r\n]*</dependentAssembly>[\t \r\n]*</dependency>[\t \r\n]*")
|
|
||||||
VC90CRTVERSION=None
|
|
||||||
|
|
||||||
def GetVC90CRTVersion(fn = None):
|
|
||||||
global VC90CRTVERSION
|
|
||||||
if (VC90CRTVERSION != None):
|
|
||||||
return VC90CRTVERSION
|
|
||||||
if (not sys.platform.startswith("win")):
|
|
||||||
VC90CRTVERSION = 0
|
|
||||||
return 0
|
|
||||||
if (fn == None):
|
|
||||||
fn = GetThirdpartyDir() + "extras/bin/Microsoft.VC90.CRT.manifest"
|
|
||||||
manifest = ReadFile(fn)
|
|
||||||
version = VC90CRTVERSIONRE.search(manifest)
|
|
||||||
if (version == None):
|
|
||||||
exit("Cannot locate version number in " + fn)
|
|
||||||
VC90CRTVERSION = version.group(1)
|
|
||||||
return version.group(1)
|
|
||||||
|
|
||||||
def SetVC90CRTVersion(fn, ver = None):
|
|
||||||
if (ver == None):
|
|
||||||
ver = GetVC90CRTVersion()
|
|
||||||
manifest = ReadFile(fn)
|
|
||||||
subst = " name='Microsoft.VC90.CRT' version='" + ver + "' "
|
|
||||||
manifest = VC90CRTVERSIONRE.sub(subst, manifest)
|
|
||||||
manifest = VC80CRTASSEMBLYRE.sub("", manifest)
|
|
||||||
WriteFile(fn, manifest)
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
##
|
##
|
||||||
## Gets or sets the output directory, by default "built".
|
## Gets or sets the output directory, by default "built".
|
||||||
@ -1672,8 +1637,7 @@ def SdkLocateDirectX( strMode = 'default' ):
|
|||||||
if (dir != 0):
|
if (dir != 0):
|
||||||
print("Using DirectX SDK March 2009")
|
print("Using DirectX SDK March 2009")
|
||||||
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
|
||||||
archStr = "x86"
|
archStr = GetTargetArch()
|
||||||
if (is_64): archStr = "x64"
|
|
||||||
if ("DX9" not in SDK) or ("DX8" not in SDK):
|
if ("DX9" not in SDK) or ("DX8" not in SDK):
|
||||||
uninstaller = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
|
uninstaller = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
|
||||||
for subdir in ListRegistryKeys(uninstaller):
|
for subdir in ListRegistryKeys(uninstaller):
|
||||||
@ -1735,8 +1699,7 @@ def SdkLocateDirectX( strMode = 'default' ):
|
|||||||
if ("DX9" not in SDK):
|
if ("DX9" not in SDK):
|
||||||
exit("Couldn't find DirectX March 2009 SDK")
|
exit("Couldn't find DirectX March 2009 SDK")
|
||||||
elif strMode == 'aug2006':
|
elif strMode == 'aug2006':
|
||||||
archStr = "x86"
|
archStr = GetTargetArch()
|
||||||
if (is_64): archStr = "x64"
|
|
||||||
if ("DX9" not in SDK) or ("DX8" not in SDK):
|
if ("DX9" not in SDK) or ("DX8" not in SDK):
|
||||||
uninstaller = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
|
uninstaller = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
|
||||||
for subdir in ListRegistryKeys(uninstaller):
|
for subdir in ListRegistryKeys(uninstaller):
|
||||||
@ -1777,7 +1740,7 @@ def SdkLocateMaya():
|
|||||||
ddir = "/Applications/Autodesk/maya"+key
|
ddir = "/Applications/Autodesk/maya"+key
|
||||||
if (os.path.isdir(ddir)): SDK[ver] = ddir
|
if (os.path.isdir(ddir)): SDK[ver] = ddir
|
||||||
else:
|
else:
|
||||||
if (is_64):
|
if (GetTargetArch() == 'x64'):
|
||||||
ddir1 = "/usr/autodesk/maya"+key+"-x64"
|
ddir1 = "/usr/autodesk/maya"+key+"-x64"
|
||||||
ddir2 = "/usr/aw/maya"+key+"-x64"
|
ddir2 = "/usr/aw/maya"+key+"-x64"
|
||||||
else:
|
else:
|
||||||
@ -1810,7 +1773,7 @@ def SdkLocatePython(force_use_sys_executable = False):
|
|||||||
SDK["PYTHON"] = GetThirdpartyBase()+"/win-python"
|
SDK["PYTHON"] = GetThirdpartyBase()+"/win-python"
|
||||||
if (GetOptimize() <= 2):
|
if (GetOptimize() <= 2):
|
||||||
SDK["PYTHON"] += "-dbg"
|
SDK["PYTHON"] += "-dbg"
|
||||||
if (is_64 and os.path.isdir(SDK["PYTHON"] + "-x64")):
|
if (GetTargetArch() == 'x64' and os.path.isdir(SDK["PYTHON"] + "-x64")):
|
||||||
SDK["PYTHON"] += "-x64"
|
SDK["PYTHON"] += "-x64"
|
||||||
|
|
||||||
SDK["PYTHONEXEC"] = SDK["PYTHON"].replace('/', '\\') + "\\python"
|
SDK["PYTHONEXEC"] = SDK["PYTHON"].replace('/', '\\') + "\\python"
|
||||||
@ -1844,7 +1807,7 @@ def SdkLocatePython(force_use_sys_executable = False):
|
|||||||
|
|
||||||
def SdkLocateVisualStudio():
|
def SdkLocateVisualStudio():
|
||||||
if (sys.platform != "win32"): return
|
if (sys.platform != "win32"): return
|
||||||
vcdir = GetRegistryKey("SOFTWARE\\Microsoft\\VisualStudio\\SxS\\VC7", "9.0")
|
vcdir = GetRegistryKey("SOFTWARE\\Microsoft\\VisualStudio\\SxS\\VC7", "10.0")
|
||||||
if (vcdir != 0) and (vcdir[-4:] == "\\VC\\"):
|
if (vcdir != 0) and (vcdir[-4:] == "\\VC\\"):
|
||||||
vcdir = vcdir[:-3]
|
vcdir = vcdir[:-3]
|
||||||
SDK["VISUALSTUDIO"] = vcdir
|
SDK["VISUALSTUDIO"] = vcdir
|
||||||
@ -1856,87 +1819,19 @@ def SdkLocateVisualStudio():
|
|||||||
vcdir = vcdir[:-3]
|
vcdir = vcdir[:-3]
|
||||||
SDK["VISUALSTUDIO"] = vcdir
|
SDK["VISUALSTUDIO"] = vcdir
|
||||||
|
|
||||||
def SdkLocateMSPlatform( strMode = 'default'):
|
def SdkLocateMSPlatform(strMode = 'default'):
|
||||||
if (sys.platform != "win32"): return
|
if (sys.platform != "win32"): return
|
||||||
platsdk = 0
|
platsdk = 0
|
||||||
if (strMode == 'default'):
|
|
||||||
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v7.1", "InstallationFolder")
|
|
||||||
if (platsdk and not os.path.isdir(platsdk)):
|
|
||||||
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 == 0):
|
|
||||||
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.1","InstallationFolder")
|
|
||||||
if (platsdk and not os.path.isdir(platsdk)):
|
|
||||||
platsdk = 0
|
|
||||||
|
|
||||||
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 == 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
|
|
||||||
|
|
||||||
# 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\\Microsoft SDKs\\Windows\\v7.1", "InstallationFolder")
|
||||||
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 not platsdk:
|
||||||
if (not os.path.isdir(platsdk)):
|
exit("Couldn't find Windows SDK v7.1")
|
||||||
platsdk = 0
|
|
||||||
|
|
||||||
# This may not be the best idea but it does give a warning
|
if (not platsdk.endswith("\\")):
|
||||||
if (platsdk == 0):
|
platsdk += "\\"
|
||||||
if ("WindowsSdkDir" in os.environ):
|
SDK["MSPLATFORM"] = platsdk
|
||||||
WARNINGS.append("Windows SDK directory not found in registry, found in Environment variables instead")
|
|
||||||
platsdk = os.environ["WindowsSdkDir"]
|
|
||||||
|
|
||||||
elif (strMode == 'win71'):
|
|
||||||
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v7.1", "InstallationFolder")
|
|
||||||
if (platsdk and not os.path.isdir(platsdk)):
|
|
||||||
platsdk = 0
|
|
||||||
if not platsdk:
|
|
||||||
exit("Couldn't find Win7.1 Platform SDK")
|
|
||||||
elif (strMode == 'win61'):
|
|
||||||
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.1","InstallationFolder")
|
|
||||||
if (platsdk and not os.path.isdir(platsdk)):
|
|
||||||
platsdk = 0
|
|
||||||
if not platsdk:
|
|
||||||
exit("Couldn't find Win6.1 Platform SDK")
|
|
||||||
elif (strMode == 'win60A'):
|
|
||||||
platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.0A","InstallationFolder")
|
|
||||||
if (platsdk and not os.path.isdir(platsdk)):
|
|
||||||
platsdk = 0
|
|
||||||
if not platsdk:
|
|
||||||
exit("Couldn't find Win6.0 Platform SDK")
|
|
||||||
elif (strMode == 'winserver2003r2'):
|
|
||||||
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 == 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 == 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 not platsdk:
|
|
||||||
exit("Couldn't find Windows Server 2003 R2 PlatformSDK")
|
|
||||||
|
|
||||||
if (platsdk != 0):
|
|
||||||
if (not platsdk.endswith("\\")):
|
|
||||||
platsdk += "\\"
|
|
||||||
SDK["MSPLATFORM"] = platsdk
|
|
||||||
|
|
||||||
def SdkLocateMacOSX(osxtarget = None):
|
def SdkLocateMacOSX(osxtarget = None):
|
||||||
if (sys.platform != "darwin"): return
|
if (sys.platform != "darwin"): return
|
||||||
@ -2134,7 +2029,8 @@ def SetupVisualStudioEnviron():
|
|||||||
os.environ["VCINSTALLDIR"] = SDK["VISUALSTUDIO"] + "VC"
|
os.environ["VCINSTALLDIR"] = SDK["VISUALSTUDIO"] + "VC"
|
||||||
os.environ["WindowsSdkDir"] = SDK["MSPLATFORM"]
|
os.environ["WindowsSdkDir"] = SDK["MSPLATFORM"]
|
||||||
suffix=""
|
suffix=""
|
||||||
if (is_64): suffix = "\\amd64"
|
arch = GetTargetArch()
|
||||||
|
if (arch == 'x64'): suffix = "\\amd64"
|
||||||
AddToPathEnv("PATH", SDK["VISUALSTUDIO"] + "VC\\bin"+suffix)
|
AddToPathEnv("PATH", SDK["VISUALSTUDIO"] + "VC\\bin"+suffix)
|
||||||
AddToPathEnv("PATH", SDK["VISUALSTUDIO"] + "Common7\\IDE")
|
AddToPathEnv("PATH", SDK["VISUALSTUDIO"] + "Common7\\IDE")
|
||||||
AddToPathEnv("INCLUDE", SDK["VISUALSTUDIO"] + "VC\\include")
|
AddToPathEnv("INCLUDE", SDK["VISUALSTUDIO"] + "VC\\include")
|
||||||
@ -2145,10 +2041,10 @@ def SetupVisualStudioEnviron():
|
|||||||
AddToPathEnv("INCLUDE", SDK["MSPLATFORM"] + "include")
|
AddToPathEnv("INCLUDE", SDK["MSPLATFORM"] + "include")
|
||||||
AddToPathEnv("INCLUDE", SDK["MSPLATFORM"] + "include\\atl")
|
AddToPathEnv("INCLUDE", SDK["MSPLATFORM"] + "include\\atl")
|
||||||
AddToPathEnv("INCLUDE", SDK["MSPLATFORM"] + "include\\mfc")
|
AddToPathEnv("INCLUDE", SDK["MSPLATFORM"] + "include\\mfc")
|
||||||
if (not is_64):
|
if (arch != 'x64'):
|
||||||
AddToPathEnv("LIB", SDK["MSPLATFORM"] + "lib")
|
AddToPathEnv("LIB", SDK["MSPLATFORM"] + "lib")
|
||||||
AddToPathEnv("PATH",SDK["VISUALSTUDIO"] + "VC\\redist\\x86\\Microsoft.VC90.CRT")
|
AddToPathEnv("PATH",SDK["VISUALSTUDIO"] + "VC\\redist\\x86\\Microsoft.VC100.CRT")
|
||||||
AddToPathEnv("PATH",SDK["VISUALSTUDIO"] + "VC\\redist\\x86\\Microsoft.VC90.MFC")
|
AddToPathEnv("PATH",SDK["VISUALSTUDIO"] + "VC\\redist\\x86\\Microsoft.VC100.MFC")
|
||||||
elif (os.path.isdir(SDK["MSPLATFORM"] + "lib\\x64")):
|
elif (os.path.isdir(SDK["MSPLATFORM"] + "lib\\x64")):
|
||||||
AddToPathEnv("LIB", SDK["MSPLATFORM"] + "lib\\x64")
|
AddToPathEnv("LIB", SDK["MSPLATFORM"] + "lib\\x64")
|
||||||
elif (os.path.isdir(SDK["MSPLATFORM"] + "lib\\amd64")):
|
elif (os.path.isdir(SDK["MSPLATFORM"] + "lib\\amd64")):
|
||||||
@ -2207,6 +2103,10 @@ def DefSymbol(opt, sym, val=""):
|
|||||||
def SetupBuildEnvironment(compiler):
|
def SetupBuildEnvironment(compiler):
|
||||||
if GetVerbose():
|
if GetVerbose():
|
||||||
print("Using compiler: %s" % compiler)
|
print("Using compiler: %s" % compiler)
|
||||||
|
print("Host OS: %s" % GetHost())
|
||||||
|
print("Host arch: %s" % GetHostArch())
|
||||||
|
print("Target OS: %s" % GetTarget())
|
||||||
|
print("Target arch: %s" % GetTargetArch())
|
||||||
|
|
||||||
if compiler == "MSVC":
|
if compiler == "MSVC":
|
||||||
# Add the visual studio tools to PATH et al.
|
# Add the visual studio tools to PATH et al.
|
||||||
@ -2251,18 +2151,18 @@ def SetupBuildEnvironment(compiler):
|
|||||||
exit('Not found: %s' % (prebuilt_dir))
|
exit('Not found: %s' % (prebuilt_dir))
|
||||||
|
|
||||||
host_tag = GetHost() + '-x86'
|
host_tag = GetHost() + '-x86'
|
||||||
if is_64:
|
if host_64:
|
||||||
host_tag += '_64'
|
host_tag += '_64'
|
||||||
if host_tag == 'windows-x86':
|
elif host_tag == 'windows-x86':
|
||||||
host_tag = 'windows'
|
host_tag = 'windows'
|
||||||
|
|
||||||
prebuilt_dir = os.path.join(prebuilt_dir, host_tag)
|
prebuilt_dir = os.path.join(prebuilt_dir, host_tag)
|
||||||
if is_64 and not os.path.isdir(prebuilt_dir):
|
if host_64 and not os.path.isdir(prebuilt_dir):
|
||||||
# Try the 32-bits toolchain instead.
|
# Try the 32-bits toolchain instead.
|
||||||
prebuilt_dir = os.path.join(prebuilt_dir, host_tag)
|
prebuilt_dir = os.path.join(prebuilt_dir, host_tag)
|
||||||
|
|
||||||
if not os.path.isdir(prebuilt_dir):
|
if not os.path.isdir(prebuilt_dir):
|
||||||
if is_64:
|
if host_64:
|
||||||
exit('Not found: %s or %s' % (prebuilt_dir, host_tag))
|
exit('Not found: %s or %s' % (prebuilt_dir, host_tag))
|
||||||
else:
|
else:
|
||||||
exit('Not found: %s' % (prebuilt_dir))
|
exit('Not found: %s' % (prebuilt_dir))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user