Adding support for maya2008

This commit is contained in:
Josh Yelon 2007-11-17 09:40:46 +00:00
parent f53e55884f
commit d20edf336e
5 changed files with 201 additions and 3825 deletions

View File

@ -36,16 +36,12 @@ GENMAN=0
VERBOSE=1 VERBOSE=1
COMPRESSOR="zlib" COMPRESSOR="zlib"
THREADCOUNT=0 THREADCOUNT=0
DXVERSIONS=["8","9"] DXVERSIONS=["DX8","DX9"]
MAYAVERSIONS=["6","65","7","8","85"]
MAXVERSIONS=["6","7","8","9"]
PkgListSet([ PkgListSet(MAYAVERSIONS + MAXVERSIONS + DXVERSIONS + [
"PYTHON","ZLIB","PNG","JPEG","TIFF","VRPN","FMOD","FMODEX", "PYTHON","ZLIB","PNG","JPEG","TIFF","VRPN","FMOD","FMODEX",
"OPENAL","NVIDIACG","OPENSSL","FREETYPE","FFTW","MILES", "OPENAL","NVIDIACG","OPENSSL","FREETYPE","FFTW","MILES",
"ARTOOLKIT","DIRECTCAM","MAYA6","MAYA65","MAYA7","MAYA8", "ARTOOLKIT","DIRECTCAM","FFMPEG","PANDATOOL","PANDAAPP"
"MAYA85","MAX6","MAX7","MAX8","MAX9","FFMPEG","PANDATOOL",
"PANDAAPP","DX8","DX9"
]) ])
CheckPandaSourceTree() CheckPandaSourceTree()
@ -247,15 +243,15 @@ def CompileCxx(obj,src,opts):
cmd = "cl /wd4996 /Fo" + obj + " /nologo /c " cmd = "cl /wd4996 /Fo" + obj + " /nologo /c "
if (PkgSkip("PYTHON")==0): cmd = cmd + " /Ithirdparty/win-python/include" if (PkgSkip("PYTHON")==0): cmd = cmd + " /Ithirdparty/win-python/include"
for ver in DXVERSIONS: for ver in DXVERSIONS:
if (PkgSelected(opts,"DX"+ver)): if (PkgSelected(opts,ver)):
cmd = cmd + ' /I"' + SDK["DX"+ver] + '/include"' cmd = cmd + ' /I"' + SDK[ver] + '/include"'
for ver in MAYAVERSIONS: for ver in MAYAVERSIONS:
if (PkgSelected(opts,"MAYA"+ver)): if (PkgSelected(opts,ver)):
cmd = cmd + ' /I"' + SDK["MAYA"+ver] + '/include"' cmd = cmd + ' /I"' + SDK[ver] + '/include"'
cmd = cmd + " /DMAYAVERSION=" + ver cmd = cmd + ' /DMAYAVERSION=' + ver
for ver in MAXVERSIONS: for ver in MAXVERSIONS:
if (PkgSelected(opts,"MAX"+ver)): if (PkgSelected(opts,ver)):
cmd = cmd + ' /I"' + SDK["MAX"+ver] + '/include" /I"' + SDK["MAX"+ver+"CS"] + '" /DMAX' + ver cmd = cmd + ' /I"' + SDK[ver] + '/include" /I"' + SDK[ver+"CS"] + '" /DMAX' + ver
for pkg in PkgListGet(): for pkg in PkgListGet():
if (pkg[:4] != "MAYA") and (pkg[:3]!="MAX") and (pkg[:2]!="DX") and PkgSelected(opts,pkg): if (pkg[:4] != "MAYA") and (pkg[:3]!="MAX") and (pkg[:2]!="DX") and PkgSelected(opts,pkg):
cmd = cmd + " /I" + THIRDPARTYLIBS + pkg.lower() + "/include" cmd = cmd + " /I" + THIRDPARTYLIBS + pkg.lower() + "/include"
@ -373,11 +369,11 @@ def CompileIgate(woutd,wsrc,opts):
for x in ipath: cmd = cmd + ' -I' + x for x in ipath: cmd = cmd + ' -I' + x
cmd = cmd + ' -Sthirdparty/win-python/include' cmd = cmd + ' -Sthirdparty/win-python/include'
for ver in DXVERSIONS: for ver in DXVERSIONS:
if ((COMPILER=="MSVC") and PkgSelected(opts,"DX"+ver)): if ((COMPILER=="MSVC") and PkgSelected(opts,ver)):
cmd = cmd + ' -S"' + SDK["DX"+ver] + '/include"' cmd = cmd + ' -S"' + SDK[ver] + '/include"'
for ver in MAYAVERSIONS: for ver in MAYAVERSIONS:
if ((COMPILER=="MSVC") and PkgSelected(opts,"MAYA"+ver)): if ((COMPILER=="MSVC") and PkgSelected(opts,ver)):
cmd = cmd + ' -S"' + SDK["MAYA"+ver] + '/include"' cmd = cmd + ' -S"' + SDK[ver] + '/include"'
for pkg in PkgListGet(): for pkg in PkgListGet():
if (PkgSelected(opts,pkg)): if (PkgSelected(opts,pkg)):
cmd = cmd + " -S" + THIRDPARTYLIBS + pkg.lower() + "/include" cmd = cmd + " -S" + THIRDPARTYLIBS + pkg.lower() + "/include"
@ -411,8 +407,8 @@ def CompileIgate(woutd,wsrc,opts):
if (opts.count("WITHINPANDA")): cmd = cmd + " -DWITHIN_PANDA" if (opts.count("WITHINPANDA")): cmd = cmd + " -DWITHIN_PANDA"
cmd = cmd + ' -module ' + module + ' -library ' + library cmd = cmd + ' -module ' + module + ' -library ' + library
for ver in MAYAVERSIONS: for ver in MAYAVERSIONS:
if (PkgSelected(opts, "MAYA"+ver)): if (PkgSelected(opts, ver)):
cmd = cmd + ' -I"' + SDK["MAYA"+ver] + '/include"' cmd = cmd + ' -I"' + SDK[ver] + '/include"'
for x in wsrc: cmd = cmd + ' ' + os.path.basename(x) for x in wsrc: cmd = cmd + ' ' + os.path.basename(x)
oscmd(cmd) oscmd(cmd)
CompileCxx(wobj,woutc,opts) CompileCxx(wobj,woutc,opts)
@ -501,10 +497,11 @@ def CompileLink(dll, obj, opts):
if (GetOrigExt(dll)==".exe"): if (GetOrigExt(dll)==".exe"):
cmd = cmd + ' panda/src/configfiles/pandaIcon.obj' cmd = cmd + ' panda/src/configfiles/pandaIcon.obj'
for ver in DXVERSIONS: for ver in DXVERSIONS:
if (PkgSelected(opts,"DX"+ver)): vnum=ver[2:]
cmd = cmd + ' /LIBPATH:"' + SDK["DX"+ver] + '/lib/x86"' if (PkgSelected(opts,ver)):
cmd = cmd + ' /LIBPATH:"' + SDK["DX"+ver] + '/lib"' cmd = cmd + ' /LIBPATH:"' + SDK[ver] + '/lib/x86"'
cmd = cmd + ' d3dVER.lib d3dxVER.lib dxerrVER.lib ddraw.lib dxguid.lib'.replace("VER",ver) cmd = cmd + ' /LIBPATH:"' + SDK[ver] + '/lib"'
cmd = cmd + ' d3dVNUM.lib d3dxVNUM.lib dxerrVNUM.lib ddraw.lib dxguid.lib'.replace("VNUM",vnum)
if (opts.count("WINSOCK")): cmd = cmd + " wsock32.lib" if (opts.count("WINSOCK")): cmd = cmd + " wsock32.lib"
if (opts.count("WINSOCK2")): cmd = cmd + " wsock32.lib ws2_32.lib" if (opts.count("WINSOCK2")): cmd = cmd + " wsock32.lib ws2_32.lib"
if (opts.count("WINCOMCTL")): cmd = cmd + ' comctl32.lib' if (opts.count("WINCOMCTL")): cmd = cmd + ' comctl32.lib'
@ -555,20 +552,20 @@ def CompileLink(dll, obj, opts):
if (PkgSelected(opts,"ARTOOLKIT")): if (PkgSelected(opts,"ARTOOLKIT")):
cmd = cmd + ' ' + THIRDPARTYLIBS + 'artoolkit/lib/libAR.lib' cmd = cmd + ' ' + THIRDPARTYLIBS + 'artoolkit/lib/libAR.lib'
for ver in MAYAVERSIONS: for ver in MAYAVERSIONS:
if (PkgSelected(opts,"MAYA"+ver)): if (PkgSelected(opts,ver)):
cmd = cmd + ' "' + SDK["MAYA"+ver] + '/lib/Foundation.lib"' cmd = cmd + ' "' + SDK[ver] + '/lib/Foundation.lib"'
cmd = cmd + ' "' + SDK["MAYA"+ver] + '/lib/OpenMaya.lib"' cmd = cmd + ' "' + SDK[ver] + '/lib/OpenMaya.lib"'
cmd = cmd + ' "' + SDK["MAYA"+ver] + '/lib/OpenMayaAnim.lib"' cmd = cmd + ' "' + SDK[ver] + '/lib/OpenMayaAnim.lib"'
cmd = cmd + ' "' + SDK["MAYA"+ver] + '/lib/OpenMayaUI.lib"' cmd = cmd + ' "' + SDK[ver] + '/lib/OpenMayaUI.lib"'
for ver in MAXVERSIONS: for ver in MAXVERSIONS:
if (PkgSelected(opts,"MAX"+ver)): if (PkgSelected(opts,ver)):
cmd = cmd + ' "' + SDK["MAX"+ver] + '/lib/core.lib"' cmd = cmd + ' "' + SDK[ver] + '/lib/core.lib"'
cmd = cmd + ' "' + SDK["MAX"+ver] + '/lib/edmodel.lib"' cmd = cmd + ' "' + SDK[ver] + '/lib/edmodel.lib"'
cmd = cmd + ' "' + SDK["MAX"+ver] + '/lib/gfx.lib"' cmd = cmd + ' "' + SDK[ver] + '/lib/gfx.lib"'
cmd = cmd + ' "' + SDK["MAX"+ver] + '/lib/geom.lib"' cmd = cmd + ' "' + SDK[ver] + '/lib/geom.lib"'
cmd = cmd + ' "' + SDK["MAX"+ver] + '/lib/mesh.lib"' cmd = cmd + ' "' + SDK[ver] + '/lib/mesh.lib"'
cmd = cmd + ' "' + SDK["MAX"+ver] + '/lib/maxutil.lib"' cmd = cmd + ' "' + SDK[ver] + '/lib/maxutil.lib"'
cmd = cmd + ' "' + SDK["MAX"+ver] + '/lib/paramblk2.lib"' cmd = cmd + ' "' + SDK[ver] + '/lib/paramblk2.lib"'
oscmd(cmd) oscmd(cmd)
SetVC80CRTVersion(dll+".manifest", VC80CRTVERSION) SetVC80CRTVersion(dll+".manifest", VC80CRTVERSION)
mtcmd = 'mt -manifest ' + dll + '.manifest -outputresource:' + dll mtcmd = 'mt -manifest ' + dll + '.manifest -outputresource:' + dll
@ -2913,56 +2910,60 @@ if (PkgSkip("PANDATOOL")==0):
# #
for VER in MAYAVERSIONS: for VER in MAYAVERSIONS:
if (PkgSkip("MAYA"+VER)==0) and (PkgSkip("PANDATOOL")==0): VNUM=VER[4:]
OPTS=['DIR:pandatool/src/maya', 'MAYA'+VER] if (PkgSkip(VER)==0) and (PkgSkip("PANDATOOL")==0):
TargetAdd('maya'+VER+'_composite1.obj', opts=OPTS, input='maya_composite1.cxx') OPTS=['DIR:pandatool/src/maya', VER]
TargetAdd('libmaya'+VER+'.lib', input='maya'+VER+'_composite1.obj') TargetAdd('maya'+VNUM+'_composite1.obj', opts=OPTS, input='maya_composite1.cxx')
TargetAdd('libmaya'+VNUM+'.lib', input='maya'+VNUM+'_composite1.obj')
# #
# DIRECTORY: pandatool/src/mayaegg/ # DIRECTORY: pandatool/src/mayaegg/
# #
for VER in MAYAVERSIONS: for VER in MAYAVERSIONS:
if (PkgSkip("MAYA"+VER)==0) and (PkgSkip("PANDATOOL")==0): VNUM=VER[4:]
OPTS=['DIR:pandatool/src/mayaegg', 'DIR:pandatool/src/maya', 'MAYA'+VER] if (PkgSkip(VER)==0) and (PkgSkip("PANDATOOL")==0):
TargetAdd('mayaegg'+VER+'_loader.obj', opts=OPTS, input='mayaEggLoader.cxx') OPTS=['DIR:pandatool/src/mayaegg', 'DIR:pandatool/src/maya', VER]
TargetAdd('mayaegg'+VER+'_composite1.obj', opts=OPTS, input='mayaegg_composite1.cxx') TargetAdd('mayaegg'+VNUM+'_loader.obj', opts=OPTS, input='mayaEggLoader.cxx')
TargetAdd('libmayaegg'+VER+'.lib', input='mayaegg'+VER+'_composite1.obj') TargetAdd('mayaegg'+VNUM+'_composite1.obj', opts=OPTS, input='mayaegg_composite1.cxx')
TargetAdd('libmayaegg'+VNUM+'.lib', input='mayaegg'+VNUM+'_composite1.obj')
# #
# DIRECTORY: pandatool/src/maxegg/ # DIRECTORY: pandatool/src/maxegg/
# #
for VER in MAXVERSIONS: for VER in MAXVERSIONS:
if (PkgSkip("MAX"+VER)==0) and (PkgSkip("PANDATOOL")==0): VNUM=VER[3:]
OPTS=['DIR:pandatool/src/maxegg', 'MAX'+VER, "WINCOMCTL", "WINCOMDLG", "WINUSER", "MSFORSCOPE"] if (PkgSkip(VER)==0) and (PkgSkip("PANDATOOL")==0):
OPTS=['DIR:pandatool/src/maxegg', VER, "WINCOMCTL", "WINCOMDLG", "WINUSER", "MSFORSCOPE"]
CopyFile("built/tmp/maxEgg.obj", "pandatool/src/maxegg/maxEgg.obj") CopyFile("built/tmp/maxEgg.obj", "pandatool/src/maxegg/maxEgg.obj")
TargetAdd('maxegg'+VER+'_loader.obj', opts=OPTS, input='maxEggLoader.cxx') TargetAdd('maxegg'+VNUM+'_loader.obj', opts=OPTS, input='maxEggLoader.cxx')
TargetAdd('maxegg'+VER+'_composite1.obj', opts=OPTS, input='maxegg_composite1.cxx') TargetAdd('maxegg'+VNUM+'_composite1.obj', opts=OPTS, input='maxegg_composite1.cxx')
TargetAdd('maxegg'+VER+'.dlo', input='maxegg'+VER+'_composite1.obj') TargetAdd('maxegg'+VNUM+'.dlo', input='maxegg'+VNUM+'_composite1.obj')
TargetAdd('maxegg'+VER+'.dlo', input='maxEgg.obj') TargetAdd('maxegg'+VNUM+'.dlo', input='maxEgg.obj')
TargetAdd('maxegg'+VER+'.dlo', input='maxEgg.def', ipath=OPTS) TargetAdd('maxegg'+VNUM+'.dlo', input='maxEgg.def', ipath=OPTS)
TargetAdd('maxegg'+VER+'.dlo', input=COMMON_EGG2X_LIBS_PYSTUB) TargetAdd('maxegg'+VNUM+'.dlo', input=COMMON_EGG2X_LIBS_PYSTUB)
TargetAdd('maxegg'+VER+'.dlo', opts=OPTS) TargetAdd('maxegg'+VNUM+'.dlo', opts=OPTS)
# #
# DIRECTORY: pandatool/src/maxprogs/ # DIRECTORY: pandatool/src/maxprogs/
# #
for VER in MAXVERSIONS: for VER in MAXVERSIONS:
if (PkgSkip("MAX"+VER)==0) and (PkgSkip("PANDATOOL")==0): VNUM=VER[3:]
OPTS=['DIR:pandatool/src/maxprogs', 'MAX'+VER, "WINCOMCTL", "WINCOMDLG", "WINUSER", "MSFORSCOPE"] if (PkgSkip(VER)==0) and (PkgSkip("PANDATOOL")==0):
OPTS=['DIR:pandatool/src/maxprogs', VER, "WINCOMCTL", "WINCOMDLG", "WINUSER", "MSFORSCOPE"]
CopyFile("built/tmp/maxImportRes.obj", "pandatool/src/maxprogs/maxImportRes.obj") CopyFile("built/tmp/maxImportRes.obj", "pandatool/src/maxprogs/maxImportRes.obj")
TargetAdd('maxprogs'+VER+'_maxeggimport.obj', opts=OPTS, input='maxEggImport.cxx') TargetAdd('maxprogs'+VNUM+'_maxeggimport.obj', opts=OPTS, input='maxEggImport.cxx')
TargetAdd('maxeggimport'+VER+'.dle', input='maxegg'+VER+'_loader.obj') TargetAdd('maxeggimport'+VNUM+'.dle', input='maxegg'+VNUM+'_loader.obj')
TargetAdd('maxeggimport'+VER+'.dle', input='maxprogs'+VER+'_maxeggimport.obj') TargetAdd('maxeggimport'+VNUM+'.dle', input='maxprogs'+VNUM+'_maxeggimport.obj')
TargetAdd('maxeggimport'+VER+'.dle', input='maxImportRes.obj') TargetAdd('maxeggimport'+VNUM+'.dle', input='maxImportRes.obj')
TargetAdd('maxeggimport'+VER+'.dle', input='libpandaeggstripped.dll') TargetAdd('maxeggimport'+VNUM+'.dle', input='libpandaeggstripped.dll')
TargetAdd('maxeggimport'+VER+'.dle', input='libpandastripped.dll') TargetAdd('maxeggimport'+VNUM+'.dle', input='libpandastripped.dll')
TargetAdd('maxeggimport'+VER+'.dle', input='libpandaexpress.dll') TargetAdd('maxeggimport'+VNUM+'.dle', input='libpandaexpress.dll')
TargetAdd('maxeggimport'+VER+'.dle', input='maxEggImport.def', ipath=OPTS) TargetAdd('maxeggimport'+VNUM+'.dle', input='maxEggImport.def', ipath=OPTS)
TargetAdd('maxeggimport'+VER+'.dle', input=COMMON_DTOOL_LIBS) TargetAdd('maxeggimport'+VNUM+'.dle', input=COMMON_DTOOL_LIBS)
TargetAdd('maxeggimport'+VER+'.dle', opts=OPTS) TargetAdd('maxeggimport'+VNUM+'.dle', opts=OPTS)
# #
# DIRECTORY: pandatool/src/vrml/ # DIRECTORY: pandatool/src/vrml/
@ -3055,72 +3056,73 @@ if (PkgSkip("PANDATOOL")==0):
# #
for VER in MAYAVERSIONS: for VER in MAYAVERSIONS:
if (PkgSkip('MAYA'+VER)==0) and (PkgSkip("PANDATOOL")==0): VNUM=VER[4:]
OPTS=['DIR:pandatool/src/mayaprogs', 'DIR:pandatool/src/maya', 'DIR:pandatool/src/mayaegg', 'DIR:pandatool/src/cvscopy', 'BUILDING:MISC', 'MAYA'+VER] if (PkgSkip(VER)==0) and (PkgSkip("PANDATOOL")==0):
TargetAdd('mayaeggimport'+VER+'_mayaeggimport.obj', opts=OPTS, input='mayaEggImport.cxx') OPTS=['DIR:pandatool/src/mayaprogs', 'DIR:pandatool/src/maya', 'DIR:pandatool/src/mayaegg', 'DIR:pandatool/src/cvscopy', 'BUILDING:MISC', VER]
TargetAdd('mayaeggimport'+VER+'.mll', input='mayaegg'+VER+'_loader.obj') TargetAdd('mayaeggimport'+VNUM+'_mayaeggimport.obj', opts=OPTS, input='mayaEggImport.cxx')
TargetAdd('mayaeggimport'+VER+'.mll', input='mayaeggimport'+VER+'_mayaeggimport.obj') TargetAdd('mayaeggimport'+VNUM+'.mll', input='mayaegg'+VNUM+'_loader.obj')
TargetAdd('mayaeggimport'+VER+'.mll', input='libpandaegg.dll') TargetAdd('mayaeggimport'+VNUM+'.mll', input='mayaeggimport'+VNUM+'_mayaeggimport.obj')
TargetAdd('mayaeggimport'+VER+'.mll', input=COMMON_PANDA_LIBS) TargetAdd('mayaeggimport'+VNUM+'.mll', input='libpandaegg.dll')
TargetAdd('mayaeggimport'+VER+'.mll', input='libp3pystub.dll') TargetAdd('mayaeggimport'+VNUM+'.mll', input=COMMON_PANDA_LIBS)
TargetAdd('mayaeggimport'+VER+'.mll', opts=['ADVAPI', 'MAYA'+VER]) TargetAdd('mayaeggimport'+VNUM+'.mll', input='libp3pystub.dll')
TargetAdd('mayaeggimport'+VNUM+'.mll', opts=['ADVAPI', VER])
TargetAdd('mayaloader'+VER+'_config_mayaloader.obj', opts=OPTS, input='config_mayaloader.cxx') TargetAdd('mayaloader'+VNUM+'_config_mayaloader.obj', opts=OPTS, input='config_mayaloader.cxx')
TargetAdd('libp3mayaloader'+VER+'.dll', input='mayaloader'+VER+'_config_mayaloader.obj') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='mayaloader'+VNUM+'_config_mayaloader.obj')
TargetAdd('libp3mayaloader'+VER+'.dll', input='libmayaegg'+VER+'.lib') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libmayaegg'+VNUM+'.lib')
TargetAdd('libp3mayaloader'+VER+'.dll', input='libp3ptloader.dll') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libp3ptloader.dll')
TargetAdd('libp3mayaloader'+VER+'.dll', input='libmaya'+VER+'.lib') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libmaya'+VNUM+'.lib')
TargetAdd('libp3mayaloader'+VER+'.dll', input='libfltegg.lib') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libfltegg.lib')
TargetAdd('libp3mayaloader'+VER+'.dll', input='libflt.lib') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libflt.lib')
TargetAdd('libp3mayaloader'+VER+'.dll', input='liblwoegg.lib') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='liblwoegg.lib')
TargetAdd('libp3mayaloader'+VER+'.dll', input='liblwo.lib') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='liblwo.lib')
TargetAdd('libp3mayaloader'+VER+'.dll', input='libdxfegg.lib') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libdxfegg.lib')
TargetAdd('libp3mayaloader'+VER+'.dll', input='libdxf.lib') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libdxf.lib')
TargetAdd('libp3mayaloader'+VER+'.dll', input='libvrmlegg.lib') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libvrmlegg.lib')
TargetAdd('libp3mayaloader'+VER+'.dll', input='libpvrml.lib') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libpvrml.lib')
TargetAdd('libp3mayaloader'+VER+'.dll', input='libxfileegg.lib') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libxfileegg.lib')
TargetAdd('libp3mayaloader'+VER+'.dll', input='libxfile.lib') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libxfile.lib')
TargetAdd('libp3mayaloader'+VER+'.dll', input='libeggbase.lib') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libeggbase.lib')
TargetAdd('libp3mayaloader'+VER+'.dll', input='libprogbase.lib') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libprogbase.lib')
TargetAdd('libp3mayaloader'+VER+'.dll', input='libconverter.lib') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libconverter.lib')
TargetAdd('libp3mayaloader'+VER+'.dll', input='libpandatoolbase.lib') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libpandatoolbase.lib')
TargetAdd('libp3mayaloader'+VER+'.dll', input='libpandaegg.dll') TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libpandaegg.dll')
TargetAdd('libp3mayaloader'+VER+'.dll', input=COMMON_PANDA_LIBS) TargetAdd('libp3mayaloader'+VNUM+'.dll', input=COMMON_PANDA_LIBS)
TargetAdd('libp3mayaloader'+VER+'.dll', opts=['ADVAPI', 'MAYA'+VER]) TargetAdd('libp3mayaloader'+VNUM+'.dll', opts=['ADVAPI', VER])
TargetAdd('mayapview'+VER+'_mayaPview.obj', opts=OPTS, input='mayaPview.cxx') TargetAdd('mayapview'+VNUM+'_mayaPview.obj', opts=OPTS, input='mayaPview.cxx')
TargetAdd('libmayapview'+VER+'.mll', input='mayapview'+VER+'_mayaPview.obj') TargetAdd('libmayapview'+VNUM+'.mll', input='mayapview'+VNUM+'_mayaPview.obj')
TargetAdd('libmayapview'+VER+'.mll', input='libmayaegg'+VER+'.lib') TargetAdd('libmayapview'+VNUM+'.mll', input='libmayaegg'+VNUM+'.lib')
TargetAdd('libmayapview'+VER+'.mll', input='libmaya'+VER+'.lib') TargetAdd('libmayapview'+VNUM+'.mll', input='libmaya'+VNUM+'.lib')
TargetAdd('libmayapview'+VER+'.mll', input='libp3framework.dll') TargetAdd('libmayapview'+VNUM+'.mll', input='libp3framework.dll')
TargetAdd('libmayapview'+VER+'.mll', input=COMMON_EGG2X_LIBS_PYSTUB) TargetAdd('libmayapview'+VNUM+'.mll', input=COMMON_EGG2X_LIBS_PYSTUB)
TargetAdd('libmayapview'+VER+'.mll', opts=['ADVAPI', 'MAYA'+VER]) TargetAdd('libmayapview'+VNUM+'.mll', opts=['ADVAPI', VER])
TargetAdd('maya2egg'+VER+'_mayaToEgg.obj', opts=OPTS, input='mayaToEgg.cxx') TargetAdd('maya2egg'+VNUM+'_mayaToEgg.obj', opts=OPTS, input='mayaToEgg.cxx')
TargetAdd('maya2egg'+VER+'-wrapped.exe', input='maya2egg'+VER+'_mayaToEgg.obj') TargetAdd('maya2egg'+VNUM+'-wrapped.exe', input='maya2egg'+VNUM+'_mayaToEgg.obj')
TargetAdd('maya2egg'+VER+'-wrapped.exe', input='libmayaegg'+VER+'.lib') TargetAdd('maya2egg'+VNUM+'-wrapped.exe', input='libmayaegg'+VNUM+'.lib')
TargetAdd('maya2egg'+VER+'-wrapped.exe', input='libmaya'+VER+'.lib') TargetAdd('maya2egg'+VNUM+'-wrapped.exe', input='libmaya'+VNUM+'.lib')
TargetAdd('maya2egg'+VER+'-wrapped.exe', input=COMMON_EGG2X_LIBS_PYSTUB) TargetAdd('maya2egg'+VNUM+'-wrapped.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
TargetAdd('maya2egg'+VER+'-wrapped.exe', opts=['ADVAPI', 'MAYA'+VER]) TargetAdd('maya2egg'+VNUM+'-wrapped.exe', opts=['ADVAPI', VER])
TargetAdd('mayacopy'+VER+'_mayaCopy.obj', opts=OPTS, input='mayaCopy.cxx') TargetAdd('mayacopy'+VNUM+'_mayaCopy.obj', opts=OPTS, input='mayaCopy.cxx')
TargetAdd('mayacopy'+VER+'-wrapped.exe', input='mayacopy'+VER+'_mayaCopy.obj') TargetAdd('mayacopy'+VNUM+'-wrapped.exe', input='mayacopy'+VNUM+'_mayaCopy.obj')
TargetAdd('mayacopy'+VER+'-wrapped.exe', input='libcvscopy.lib') TargetAdd('mayacopy'+VNUM+'-wrapped.exe', input='libcvscopy.lib')
TargetAdd('mayacopy'+VER+'-wrapped.exe', input='libmaya'+VER+'.lib') TargetAdd('mayacopy'+VNUM+'-wrapped.exe', input='libmaya'+VNUM+'.lib')
TargetAdd('mayacopy'+VER+'-wrapped.exe', input=COMMON_EGG2X_LIBS_PYSTUB) TargetAdd('mayacopy'+VNUM+'-wrapped.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
TargetAdd('mayacopy'+VER+'-wrapped.exe', opts=['ADVAPI', 'MAYA'+VER]) TargetAdd('mayacopy'+VNUM+'-wrapped.exe', opts=['ADVAPI', VER])
TargetAdd('mayasavepview'+VER+'_mayaSavePview.obj', opts=OPTS, input='mayaSavePview.cxx') TargetAdd('mayasavepview'+VNUM+'_mayaSavePview.obj', opts=OPTS, input='mayaSavePview.cxx')
TargetAdd('libmayasavepview'+VER+'.mll', input='mayasavepview'+VER+'_mayaSavePview.obj') TargetAdd('libmayasavepview'+VNUM+'.mll', input='mayasavepview'+VNUM+'_mayaSavePview.obj')
TargetAdd('libmayasavepview'+VER+'.mll', opts=['ADVAPI', 'MAYA'+VER]) TargetAdd('libmayasavepview'+VNUM+'.mll', opts=['ADVAPI', VER])
TargetAdd('mayaWrapper'+VER+'.obj', opts=OPTS, input='mayaWrapper.cxx') TargetAdd('mayaWrapper'+VNUM+'.obj', opts=OPTS, input='mayaWrapper.cxx')
TargetAdd('maya2egg'+VER+'.exe', input='mayaWrapper'+VER+'.obj') TargetAdd('maya2egg'+VNUM+'.exe', input='mayaWrapper'+VNUM+'.obj')
TargetAdd('maya2egg'+VER+'.exe', opts=['ADVAPI']) TargetAdd('maya2egg'+VNUM+'.exe', opts=['ADVAPI'])
TargetAdd('mayacopy'+VER+'.exe', input='mayaWrapper'+VER+'.obj') TargetAdd('mayacopy'+VNUM+'.exe', input='mayaWrapper'+VNUM+'.obj')
TargetAdd('mayacopy'+VER+'.exe', opts=['ADVAPI']) TargetAdd('mayacopy'+VNUM+'.exe', opts=['ADVAPI'])

View File

@ -17,6 +17,35 @@ SUFFIX_LIB=[".lib",".ilb"]
STARTTIME=time.time() STARTTIME=time.time()
MAINTHREAD=threading.currentThread() MAINTHREAD=threading.currentThread()
########################################################################
##
## Maya and Max Version List (with registry keys)
##
########################################################################
MAYAVERSIONINFO=[("MAYA6", "SOFTWARE\\Alias|Wavefront\\Maya\\6.0\\Setup\\InstallPath"),
("MAYA65", "SOFTWARE\\Alias|Wavefront\\Maya\\6.5\\Setup\\InstallPath"),
("MAYA7", "SOFTWARE\\Alias|Wavefront\\Maya\\7.0\\Setup\\InstallPath"),
("MAYA8", "SOFTWARE\\Alias\\Maya\\8.0\\Setup\\InstallPath"),
("MAYA85", "SOFTWARE\\Alias\\Maya\\8.5\\Setup\\InstallPath"),
("MAYA2008","SOFTWARE\\Autodesk\\Maya\\2008\\Setup\\InstallPath"),
]
MAXVERSIONINFO = [("MAX6", "SOFTWARE\\Autodesk\\3DSMAX\\6.0", "installdir", "maxsdk\\cssdk\\include"),
("MAX7", "SOFTWARE\\Autodesk\\3DSMAX\\7.0", "Installdir", "maxsdk\\include\\CS"),
("MAX8", "SOFTWARE\\Autodesk\\3DSMAX\\8.0", "Installdir", "maxsdk\\include\\CS"),
("MAX9", "SOFTWARE\\Autodesk\\3DSMAX\\9.0", "Installdir", "maxsdk\\include\\CS"),
]
MAYAVERSIONS=[]
MAXVERSIONS=[]
for (ver,key) in MAYAVERSIONINFO:
MAYAVERSIONS.append(ver)
for (ver,key1,key2,subdir) in MAXVERSIONINFO:
MAXVERSIONS.append(ver)
######################################################################## ########################################################################
## ##
## The exit routine will normally ## The exit routine will normally
@ -490,6 +519,7 @@ def MakeBuildTree():
MakeDirectory("built") MakeDirectory("built")
MakeDirectory("built/bin") MakeDirectory("built/bin")
MakeDirectory("built/lib") MakeDirectory("built/lib")
MakeDirectory("built/tmp")
MakeDirectory("built/etc") MakeDirectory("built/etc")
MakeDirectory("built/plugins") MakeDirectory("built/plugins")
MakeDirectory("built/modelcache") MakeDirectory("built/modelcache")
@ -499,7 +529,6 @@ def MakeBuildTree():
MakeDirectory("built/include/parser-inc/netinet") MakeDirectory("built/include/parser-inc/netinet")
MakeDirectory("built/include/parser-inc/Cg") MakeDirectory("built/include/parser-inc/Cg")
MakeDirectory("built/include/openssl") MakeDirectory("built/include/openssl")
MakeDirectory("built/tmp")
MakeDirectory("built/models") MakeDirectory("built/models")
MakeDirectory("built/models/audio") MakeDirectory("built/models/audio")
MakeDirectory("built/models/audio/sfx") MakeDirectory("built/models/audio/sfx")
@ -606,19 +635,6 @@ def PkgSelected(pkglist, pkg):
SDK = {} SDK = {}
MAYAVERSIONINFO=[("MAYA6", "SOFTWARE\\Alias|Wavefront\\Maya\\6.0\\Setup\\InstallPath"),
("MAYA65", "SOFTWARE\\Alias|Wavefront\\Maya\\6.5\\Setup\\InstallPath"),
("MAYA7", "SOFTWARE\\Alias|Wavefront\\Maya\\7.0\\Setup\\InstallPath"),
("MAYA8", "SOFTWARE\\Alias\\Maya\\8.0\\Setup\\InstallPath"),
("MAYA85", "SOFTWARE\\Alias\\Maya\\8.5\\Setup\\InstallPath")
]
MAXVERSIONINFO = [("MAX6", "SOFTWARE\\Autodesk\\3DSMAX\\6.0", "installdir", "maxsdk\\cssdk\\include"),
("MAX7", "SOFTWARE\\Autodesk\\3DSMAX\\7.0", "Installdir", "maxsdk\\include\\CS"),
("MAX8", "SOFTWARE\\Autodesk\\3DSMAX\\8.0", "Installdir", "maxsdk\\include\\CS"),
("MAX9", "SOFTWARE\\Autodesk\\3DSMAX\\9.0", "Installdir", "maxsdk\\include\\CS"),
]
def SdkLocateDirectX(): def SdkLocateDirectX():
if (sys.platform != "win32"): return if (sys.platform != "win32"): return
if (os.path.isdir("sdks/directx8")): SDK["DX8"]="sdks/directx8" if (os.path.isdir("sdks/directx8")): SDK["DX8"]="sdks/directx8"
@ -647,7 +663,7 @@ def SdkLocateMaya():
for (ver,key) in MAYAVERSIONINFO: for (ver,key) in MAYAVERSIONINFO:
if (PkgSkip(ver)==0): if (PkgSkip(ver)==0):
if (SDK.has_key(ver)==0): if (SDK.has_key(ver)==0):
ddir = "sdks/"+ver.lower() ddir = "sdks/"+ver.lower().replace("x","")
if (os.path.isdir(ddir)): if (os.path.isdir(ddir)):
SDK[ver] = ddir SDK[ver] = ddir
else: else:

View File

@ -1,28 +0,0 @@
@echo off
REM
REM Verify that we can find the 'makepanda' python script
REM and the python interpreter. If we can find both, then
REM run 'makepanda'.
REM
if not exist makepanda\makepanda.py goto :missing1
if not exist thirdparty\win-python\python.exe goto :missing2
thirdparty\win-python\python.exe makepanda\newmakepanda.py %*
if errorlevel 1 if x%1 == x--slavebuild exit 1
goto done
:missing1
echo You need to change directory to the root of the panda source tree
echo before invoking makepanda. For further install instructions, read
echo the installation instructions in the file doc/INSTALL-MK.
goto done
:missing2
echo You seem to be missing the 'thirdparty' directory. You probably checked
echo the source code out from sourceforge. The sourceforge repository is
echo missing the 'thirdparty' directory. You will need to supplement the
echo code by downloading the 'thirdparty' directory from panda3d.etc.cmu.edu
goto done
:done

File diff suppressed because it is too large Load Diff

View File

@ -17,6 +17,9 @@
#error You must define the symbol MAYAVERSION when compiling mayawrapper. #error You must define the symbol MAYAVERSION when compiling mayawrapper.
#endif #endif
#define QUOTESTR(x) #x
#define TOSTRING(x) QUOTESTR(x)
#define _CRT_SECURE_NO_DEPRECATE 1 #define _CRT_SECURE_NO_DEPRECATE 1
#include <windows.h> #include <windows.h>
@ -28,34 +31,41 @@
#include <signal.h> #include <signal.h>
#define PATH_MAX 1024 #define PATH_MAX 1024
void getMayaLocation(int major, int minor, char *loc) struct { char *ver, *key; } reg_keys[] = {
{ "MAYA6", "SOFTWARE\\Alias|Wavefront\\Maya\\6.0\\Setup\\InstallPath" },
{ "MAYA65", "SOFTWARE\\Alias|Wavefront\\Maya\\6.5\\Setup\\InstallPath" },
{ "MAYA7", "SOFTWARE\\Alias|Wavefront\\Maya\\7.0\\Setup\\InstallPath" },
{ "MAYA8", "SOFTWARE\\Alias\\Maya\\8.0\\Setup\\InstallPath" },
{ "MAYA85", "SOFTWARE\\Alias\\Maya\\8.5\\Setup\\InstallPath" },
{ "MAYA2008", "SOFTWARE\\Autodesk\\Maya\\2008\\Setup\\InstallPath" },
{ 0, 0 },
};
char *getRegistryKey(char *ver) {
for (int i=0; reg_keys[i].ver != 0; i++) {
if (strcmp(reg_keys[i].ver, ver)==0) {
return reg_keys[i].key;
}
}
return 0;
}
void getMayaLocation(char *key, char *loc)
{ {
char key[1024]; HKEY hkey; HKEY hkey; DWORD size, dtype; LONG res;
DWORD size, dtype; LONG res; int retry;
loc[0] = 0; loc[0] = 0;
res = RegOpenKeyEx(HKEY_LOCAL_MACHINE, key, 0, KEY_READ, &hkey);
for (retry=0; retry<3; retry++) { if (res == ERROR_SUCCESS) {
char *developer; size=1024;
switch(retry) { res = RegQueryValueEx(hkey, "MAYA_INSTALL_LOCATION", NULL, &dtype, (LPBYTE)loc, &size);
case 0: developer = "Alias|Wavefront"; break; if ((res == ERROR_SUCCESS)&&(dtype == REG_SZ)) {
case 1: developer = "Alias"; break; loc[size] = 0;
case 2: developer = "Autodesk"; break; return;
} } else {
loc[0] = 0;
sprintf(key, "SOFTWARE\\%s\\Maya\\%d.%d\\Setup\\InstallPath", developer, major, minor);
res = RegOpenKeyEx(HKEY_LOCAL_MACHINE, key, 0, KEY_READ, &hkey);
if (res == ERROR_SUCCESS) {
size=1024;
res = RegQueryValueEx(hkey, "MAYA_INSTALL_LOCATION", NULL, &dtype, (LPBYTE)loc, &size);
if ((res == ERROR_SUCCESS)&&(dtype == REG_SZ)) {
loc[size] = 0;
break;
} else {
loc[0] = 0;
}
RegCloseKey(hkey);
} }
RegCloseKey(hkey);
} }
} }
@ -77,20 +87,18 @@ void getWrapperName(char *prog)
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
int major = MAYAVERSION / 10;
int minor = MAYAVERSION - major * 10;
char loc[1024], prog[1024]; char loc[1024], prog[1024];
char *cmd, *path, *env1, *env2; int len; char *key, *cmd, *path, *env1, *env2; int len;
STARTUPINFO si; PROCESS_INFORMATION pi; STARTUPINFO si; PROCESS_INFORMATION pi;
if (major == 0) {
major = minor;
minor = 0;
}
getMayaLocation(major, minor, loc); key = getRegistryKey(TOSTRING(MAYAVERSION));
if (key == 0) {
printf("MayaWrapper: unknown maya version %s\n", TOSTRING(MAYAVERSION));
exit(1);
}
getMayaLocation(key, loc);
if (loc[0]==0) { if (loc[0]==0) {
printf("Cannot locate Maya %d.%d (registry key missing)\n", major, minor); printf("Cannot locate %s - it does not appear to be installed\n", TOSTRING(MAYAVERSION));
exit(1); exit(1);
} }