diff --git a/SConstruct b/SConstruct index 0d204e699cc524e10b4ad9eac2eaef73fa8a0dec..55af58ba2e373b56a3d8647cc49726f24f3ef4de 100644 --- a/SConstruct +++ b/SConstruct @@ -1,4 +1,4 @@ - +import commands import sys import os import time @@ -9,52 +9,364 @@ Help(""" 'scons -c' to clean """) -# detect platform +##Global Vars, should add cc, cxx, build, etc eventually... +##May want to turn Jobs down +JOBS='4' +DEBUG='yes' +TUNE='yes' + + + +#Setting up a basic default environment +#Theory is it can be expanded for versatility, like swig doesn't seem to like jobs of 4 +#env = Environment(ENV = os.environ) + +env = Environment(ENV = os.environ) +env.SetOption('num_jobs', JOBS) +#env.Append(CCFLAGS = ' -march=opteron -O2') +if (DEBUG == 'yes'): + env.Append(CCFLAGS = ' -g3') + + +#OLD detect platform if sys.platform == 'linux2' or sys.platform == 'linux-i386': python_lib = ['python%d.%d' % sys.version_info[0:2]] python_libpath = [sysconfig.get_python_lib (0, 1) + '/config'] python_include = [sysconfig.get_python_inc ()] - cppflags = '-fPIC -Wall' + #cppflags = '-fPIC -Wall -pipe' + env.Append(CCFLAGS = ' -fPIC -Wall -pipe') elif sys.platform == 'cygwin': python_lib = ['python%d.%d' % sys.version_info[0:2]] python_libpath = [sysconfig.get_python_lib (0, 1) + '/config'] python_include = [sysconfig.get_python_inc ()] - cppflags = '-Wall' + env.Append(CCFLAGS = ' -Wall') elif sys.platform == 'win32': python_include = [sysconfig.get_python_inc()] python_libpath = [sysconfig.get_python_lib(1, 1) + '/../libs'] python_lib = ['python24'] - cppflags = '/EHsc /O2 /GS /Zi /TP' + env.Append(CCFLAGS = '/EHsc /O2 /GS /Zi /TP') else: print "Error: Platform %s not supported."%sys.platform Exit(1) -env = Environment(ENV = os.environ) +# Proc x86, x86_64, or what? Better way? +#proc = commands.getoutput('uname -m') +#if (proc == 'x86_64'): +# arch = 'x86_64' +#elif exp.match(proc): +# arch = 'x86' +#elif (proc == 'Power Macintosh' or proc == 'ppc'): +# arch = 'ppc' +#else: +# arch = 'cpu' + +#if (arch == 'x86_64'): +# if (commands.getoutput('uname -i') == AuthenticAMD): +# if (TUNE == 'yes'): +# env.Append(CCFLAGS = ' -mtune=k8') + # detect SWIG -try: - env['SWIG'] -except KeyError: - print """ -Error: SWIG not found. -Please install SWIG, it's needed to create the python wrapper. -You can get it from http://www.swig.org/""" - if sys.platform == "win32": print "Also don't forget to add the SWIG directory to your %PATH%." - Exit(1) +#try: +# env['SWIG'] +#except KeyError: +# print """ +#Error: SWIG not found. +#Please install SWIG, it's needed to create the python wrapper. +#You can get it from http://www.swig.org/""" +# if sys.platform == "win32": print "Also don't forget to add the SWIG #directory to your %PATH%." +# Exit(1) + + -# build niflib and python wrapper -objfiles = 'gen/ByteArray.cpp gen/Footer.cpp gen/LODRange.cpp gen/MatchGroup.cpp gen/MipMap.cpp gen/NodeGroup.cpp gen/QuaternionXYZW.cpp gen/ShortString.cpp gen/SkinShape.cpp gen/SkinShapeGroup.cpp gen/SkinWeight.cpp gen/AVObject.cpp gen/ControllerLink.cpp gen/Header.cpp gen/StringPalette.cpp gen/TBC.cpp gen/TexDesc.cpp gen/ShaderTexDesc.cpp gen/TexSource.cpp gen/SkinPartition.cpp gen/BoundingBox.cpp gen/FurniturePosition.cpp gen/hkTriangle.cpp gen/Morph.cpp gen/Particle.cpp gen/SkinData.cpp gen/RagDollDescriptor.cpp gen/LimitedHingeDescriptor.cpp obj/NiObject.cpp obj/AKeyedData.cpp obj/AParticleModifier.cpp obj/bhkRefObject.cpp obj/bhkSerializable.cpp obj/AbhkConstraint.cpp obj/AbhkRagdollConstraint.cpp obj/bhkShape.cpp obj/AbhkShapeCollection.cpp obj/bhkSphereRepShape.cpp obj/bhkConvexShape.cpp obj/bhkWorldObject.cpp obj/bhkEntity.cpp obj/NiCollisionObject.cpp obj/NiExtraData.cpp obj/NiInterpolator.cpp obj/NiBlendInterpolator.cpp obj/NiBSplineInterpolator.cpp obj/NiObjectNET.cpp obj/NiAVObject.cpp obj/NiDynamicEffect.cpp obj/NiLight.cpp obj/NiProperty.cpp obj/NiPSysModifier.cpp obj/NiPSysEmitter.cpp obj/NiPSysVolumeEmitter.cpp obj/NiTimeController.cpp obj/ABoneLODController.cpp obj/NiSingleInterpolatorController.cpp obj/APSysCtlr.cpp obj/NiTriBasedGeom.cpp obj/NiTriBasedGeomData.cpp obj/APSysData.cpp obj/bhkBlendCollisionObject.cpp obj/bhkBlendController.cpp obj/bhkBoxShape.cpp obj/bhkCapsuleShape.cpp obj/bhkCollisionObject.cpp obj/bhkConvexVerticesShape.cpp obj/bhkHingeConstraint.cpp obj/bhkLimitedHingeConstraint.cpp obj/bhkListShape.cpp obj/bhkMalleableConstraint.cpp obj/bhkMoppBvTreeShape.cpp obj/bhkMultiSphereShape.cpp obj/bhkNiTriStripsShape.cpp obj/bhkPackedNiTriStripsShape.cpp obj/bhkPrismaticConstraint.cpp obj/bhkRagdollConstraint.cpp obj/bhkRigidBody.cpp obj/bhkRigidBodyT.cpp obj/bhkSimpleShapePhantom.cpp obj/bhkSPCollisionObject.cpp obj/bhkSphereShape.cpp obj/bhkStiffSpringConstraint.cpp obj/bhkTransformShape.cpp obj/bhkConvexTransformShape.cpp obj/BSBound.cpp obj/BSFurnitureMarker.cpp obj/BSParentVelocityModifier.cpp obj/BSPSysArrayEmitter.cpp obj/BSXFlags.cpp obj/hkPackedNiTriStripsData.cpp obj/NiAlphaController.cpp obj/NiAlphaProperty.cpp obj/NiAmbientLight.cpp obj/NiAutoNormalParticlesData.cpp obj/NiBinaryExtraData.cpp obj/NiBlendBoolInterpolator.cpp obj/NiBlendFloatInterpolator.cpp obj/NiBlendPoint3Interpolator.cpp obj/NiBlendTransformInterpolator.cpp obj/NiBoneLODController.cpp obj/NiBoolData.cpp obj/NiBooleanExtraData.cpp obj/NiBoolInterpolator.cpp obj/NiBoolTimelineInterpolator.cpp obj/NiBSBoneLODController.cpp obj/NiBSplineBasisData.cpp obj/NiBSplineCompFloatInterpolator.cpp obj/NiBSplineCompPoint3Interpolator.cpp obj/NiBSplineCompTransformInterpolator.cpp obj/NiBSplineData.cpp obj/NiCamera.cpp obj/NiCollisionData.cpp obj/NiColorData.cpp obj/NiColorExtraData.cpp obj/NiControllerManager.cpp obj/NiControllerSequence.cpp obj/NiDefaultAVObjectPalette.cpp obj/NiDirectionalLight.cpp obj/NiDitherProperty.cpp obj/NiFlipController.cpp obj/NiFloatData.cpp obj/NiFloatExtraData.cpp obj/NiFloatExtraDataController.cpp obj/NiFloatInterpolator.cpp obj/NiFloatsExtraData.cpp obj/NiFogProperty.cpp obj/NiGeomMorpherController.cpp obj/NiGravity.cpp obj/NiIntegerExtraData.cpp obj/NiIntegersExtraData.cpp obj/NiKeyframeController.cpp obj/BSKeyframeController.cpp obj/NiKeyframeData.cpp obj/NiLightColorController.cpp obj/NiLightDimmerController.cpp obj/NiLookAtController.cpp obj/NiLookAtInterpolator.cpp obj/NiMaterialColorController.cpp obj/NiMaterialProperty.cpp obj/NiMeshPSysData.cpp obj/NiMorphData.cpp obj/NiMultiTargetTransformController.cpp obj/NiNode.cpp obj/AvoidNode.cpp obj/FxWidget.cpp obj/FxButton.cpp obj/FxRadioButton.cpp obj/NiBillboardNode.cpp obj/NiBSAnimationNode.cpp obj/NiBSParticleNode.cpp obj/NiLODNode.cpp obj/NiPalette.cpp obj/NiParticleBomb.cpp obj/NiParticleColorModifier.cpp obj/NiParticleGrowFade.cpp obj/NiParticleMeshModifier.cpp obj/NiParticleRotation.cpp obj/NiParticles.cpp obj/NiAutoNormalParticles.cpp obj/NiParticleMeshes.cpp obj/NiParticlesData.cpp obj/NiParticleMeshesData.cpp obj/NiParticleSystem.cpp obj/NiMeshParticleSystem.cpp obj/NiParticleSystemController.cpp obj/NiBSPArrayController.cpp obj/NiPathController.cpp obj/NiPathInterpolator.cpp obj/NiPixelData.cpp obj/NiPlanarCollider.cpp obj/NiPoint3Interpolator.cpp obj/NiPointLight.cpp obj/NiPosData.cpp obj/NiPSysAgeDeathModifier.cpp obj/NiPSysBombModifier.cpp obj/NiPSysBoundUpdateModifier.cpp obj/NiPSysBoxEmitter.cpp obj/NiPSysColliderManager.cpp obj/NiPSysColorModifier.cpp obj/NiPSysCylinderEmitter.cpp obj/NiPSysData.cpp obj/NiPSysDragModifier.cpp obj/NiPSysEmitterCtlr.cpp obj/NiPSysEmitterCtlrData.cpp obj/NiPSysEmitterDeclinationCtlr.cpp obj/NiPSysEmitterDeclinationVarCtlr.cpp obj/NiPSysEmitterInitialRadiusCtlr.cpp obj/NiPSysEmitterLifeSpanCtlr.cpp obj/NiPSysEmitterSpeedCtlr.cpp obj/NiPSysGravityModifier.cpp obj/NiPSysGravityStrengthCtlr.cpp obj/NiPSysGrowFadeModifier.cpp obj/NiPSysMeshEmitter.cpp obj/NiPSysMeshUpdateModifier.cpp obj/NiPSysModifierActiveCtlr.cpp obj/NiPSysPlanarCollider.cpp obj/NiPSysPositionModifier.cpp obj/NiPSysResetOnLoopCtlr.cpp obj/NiPSysRotationModifier.cpp obj/NiPSysSpawnModifier.cpp obj/NiPSysSphereEmitter.cpp obj/NiPSysUpdateCtlr.cpp obj/NiRangeLODData.cpp obj/NiRotatingParticles.cpp obj/NiRotatingParticlesData.cpp obj/NiScreenLODData.cpp obj/NiSequenceStreamHelper.cpp obj/NiShadeProperty.cpp obj/NiSkinData.cpp obj/NiSkinInstance.cpp obj/NiSkinPartition.cpp obj/NiSourceTexture.cpp obj/NiSpecularProperty.cpp obj/NiSphericalCollider.cpp obj/NiSpotLight.cpp obj/NiStencilProperty.cpp obj/NiStringExtraData.cpp obj/NiStringPalette.cpp obj/NiStringsExtraData.cpp obj/NiTextKeyExtraData.cpp obj/NiTextureEffect.cpp obj/NiTextureTransformController.cpp obj/NiTexturingProperty.cpp obj/NiTransformController.cpp obj/NiTransformData.cpp obj/NiTransformInterpolator.cpp obj/NiTriShape.cpp obj/NiTriShapeData.cpp obj/NiTriStrips.cpp obj/NiTriStripsData.cpp obj/NiUVController.cpp obj/NiUVData.cpp obj/NiVectorExtraData.cpp obj/NiVertexColorProperty.cpp obj/NiVertWeightsExtraData.cpp obj/NiVisController.cpp obj/NiVisData.cpp obj/NiWireframeProperty.cpp obj/NiZBufferProperty.cpp obj/RootCollisionNode.cpp ' +gen_objfiles = Split(""" +src/gen/ByteArray.cpp +src/gen/Footer.cpp +src/gen/LODRange.cpp +src/gen/MatchGroup.cpp +src/gen/MipMap.cpp +src/gen/NodeGroup.cpp +src/gen/QuaternionXYZW.cpp +src/gen/SkinShape.cpp +src/gen/SkinShapeGroup.cpp +src/gen/SkinWeight.cpp +src/gen/AVObject.cpp +src/gen/ControllerLink.cpp +src/gen/Header.cpp +src/gen/StringPalette.cpp +src/gen/TBC.cpp +src/gen/TexDesc.cpp +src/gen/ShaderTexDesc.cpp +src/gen/TexSource.cpp +src/gen/SkinPartition.cpp +src/gen/BoundingBox.cpp +src/gen/FurniturePosition.cpp +src/gen/hkTriangle.cpp +src/gen/Morph.cpp +src/gen/Particle.cpp +src/gen/SkinData.cpp +src/gen/RagDollDescriptor.cpp +src/gen/LimitedHingeDescriptor.cpp +src/gen/Sphere.cpp +src/gen/enums.cpp +src/gen/obj_impl.cpp""") -niflib = env.StaticLibrary('niflib', Split('niflib.cpp nif_math.cpp NIF_IO.cpp kfm.cpp Type.cpp gen/obj_factories.cpp ' + objfiles), CPPPATH = '.', CPPFLAGS = cppflags) -nifshlib = env.SharedLibrary('_niflib', 'pyniflib.i', LIBS=['niflib'] + python_lib, LIBPATH=['.'] + python_libpath, SWIGFLAGS = '-c++ -python', CPPPATH = ['.'] + python_include, CPPFLAGS = cppflags, SHLIBPREFIX='') +obj_objfiles = Split(""" +src/obj/NiObject.cpp +src/obj/AKeyedData.cpp +src/obj/AParticleModifier.cpp +src/obj/bhkRefObject.cpp +src/obj/bhkSerializable.cpp +src/obj/AbhkConstraint.cpp +src/obj/AbhkRagdollConstraint.cpp +src/obj/bhkShape.cpp +src/obj/AbhkShapeCollection.cpp +src/obj/bhkSphereRepShape.cpp +src/obj/bhkConvexShape.cpp +src/obj/bhkWorldObject.cpp +src/obj/bhkEntity.cpp +src/obj/NiCollisionObject.cpp +src/obj/NiExtraData.cpp +src/obj/NiInterpolator.cpp +src/obj/NiBlendInterpolator.cpp +src/obj/NiBSplineInterpolator.cpp +src/obj/NiObjectNET.cpp +src/obj/NiAVObject.cpp +src/obj/NiDynamicEffect.cpp +src/obj/NiLight.cpp +src/obj/NiProperty.cpp +src/obj/NiPSysModifier.cpp +src/obj/NiPSysEmitter.cpp +src/obj/NiPSysVolumeEmitter.cpp +src/obj/NiTimeController.cpp +src/obj/ABoneLODController.cpp +src/obj/NiSingleInterpolatorController.cpp +src/obj/APSysCtlr.cpp src/obj/NiTriBasedGeom.cpp +src/obj/NiTriBasedGeomData.cpp +src/obj/APSysData.cpp +src/obj/bhkBlendCollisionObject.cpp +src/obj/bhkBlendController.cpp +src/obj/bhkBoxShape.cpp +src/obj/bhkCapsuleShape.cpp +src/obj/bhkCollisionObject.cpp +src/obj/bhkConvexVerticesShape.cpp +src/obj/bhkHingeConstraint.cpp +src/obj/bhkLimitedHingeConstraint.cpp +src/obj/bhkListShape.cpp +src/obj/bhkMalleableConstraint.cpp +src/obj/bhkMoppBvTreeShape.cpp +src/obj/bhkMultiSphereShape.cpp +src/obj/bhkNiTriStripsShape.cpp +src/obj/bhkPackedNiTriStripsShape.cpp +src/obj/bhkPrismaticConstraint.cpp +src/obj/bhkRagdollConstraint.cpp +src/obj/bhkRigidBody.cpp +src/obj/bhkRigidBodyT.cpp +src/obj/bhkSimpleShapePhantom.cpp +src/obj/bhkSPCollisionObject.cpp +src/obj/bhkSphereShape.cpp +src/obj/bhkStiffSpringConstraint.cpp +src/obj/bhkTransformShape.cpp +src/obj/bhkConvexTransformShape.cpp +src/obj/BSBound.cpp +src/obj/BSFurnitureMarker.cpp +src/obj/BSParentVelocityModifier.cpp +src/obj/BSPSysArrayEmitter.cpp +src/obj/BSXFlags.cpp +src/obj/hkPackedNiTriStripsData.cpp +src/obj/NiAlphaController.cpp +src/obj/NiAlphaProperty.cpp +src/obj/NiAmbientLight.cpp +src/obj/NiAutoNormalParticlesData.cpp +src/obj/NiBinaryExtraData.cpp +src/obj/NiBlendBoolInterpolator.cpp +src/obj/NiBlendFloatInterpolator.cpp +src/obj/NiBlendPoint3Interpolator.cpp +src/obj/NiBlendTransformInterpolator.cpp +src/obj/NiBoneLODController.cpp +src/obj/NiBoolData.cpp +src/obj/NiBooleanExtraData.cpp +src/obj/NiBoolInterpolator.cpp +src/obj/NiBoolTimelineInterpolator.cpp +src/obj/NiBSBoneLODController.cpp +src/obj/NiBSplineBasisData.cpp +src/obj/NiBSplineCompFloatInterpolator.cpp +src/obj/NiBSplineCompPoint3Interpolator.cpp +src/obj/NiBSplineCompTransformInterpolator.cpp +src/obj/NiBSplineData.cpp +src/obj/NiCamera.cpp src/obj/NiCollisionData.cpp +src/obj/NiColorData.cpp +src/obj/NiColorExtraData.cpp +src/obj/NiControllerManager.cpp +src/obj/NiControllerSequence.cpp +src/obj/NiDefaultAVObjectPalette.cpp +src/obj/NiDirectionalLight.cpp +src/obj/NiDitherProperty.cpp +src/obj/NiFlipController.cpp +src/obj/NiFloatData.cpp +src/obj/NiFloatExtraData.cpp +src/obj/NiFloatExtraDataController.cpp +src/obj/NiFloatInterpolator.cpp +src/obj/NiFloatsExtraData.cpp +src/obj/NiFogProperty.cpp +src/obj/NiGeomMorpherController.cpp +src/obj/NiGravity.cpp +src/obj/NiIntegerExtraData.cpp +src/obj/NiIntegersExtraData.cpp +src/obj/NiKeyframeController.cpp +src/obj/BSKeyframeController.cpp +src/obj/NiKeyframeData.cpp +src/obj/NiLightColorController.cpp +src/obj/NiLightDimmerController.cpp +src/obj/NiLookAtController.cpp +src/obj/NiLookAtInterpolator.cpp +src/obj/NiMaterialColorController.cpp +src/obj/NiMaterialProperty.cpp +src/obj/NiMeshPSysData.cpp +src/obj/NiMorphData.cpp +src/obj/NiMultiTargetTransformController.cpp +src/obj/NiNode.cpp +src/obj/AvoidNode.cpp +src/obj/FxWidget.cpp +src/obj/FxButton.cpp +src/obj/FxRadioButton.cpp +src/obj/NiBillboardNode.cpp +src/obj/NiBSAnimationNode.cpp +src/obj/NiBSParticleNode.cpp +src/obj/NiLODNode.cpp +src/obj/NiPalette.cpp +src/obj/NiParticleBomb.cpp +src/obj/NiParticleColorModifier.cpp +src/obj/NiParticleGrowFade.cpp +src/obj/NiParticleMeshModifier.cpp +src/obj/NiParticleRotation.cpp +src/obj/NiParticles.cpp +src/obj/NiAutoNormalParticles.cpp +src/obj/NiParticleMeshes.cpp +src/obj/NiParticlesData.cpp +src/obj/NiParticleMeshesData.cpp +src/obj/NiParticleSystem.cpp +src/obj/NiMeshParticleSystem.cpp +src/obj/NiParticleSystemController.cpp +src/obj/NiBSPArrayController.cpp +src/obj/NiPathController.cpp +src/obj/NiPathInterpolator.cpp +src/obj/NiPixelData.cpp +src/obj/NiPlanarCollider.cpp +src/obj/NiPoint3Interpolator.cpp +src/obj/NiPointLight.cpp +src/obj/NiPosData.cpp +src/obj/NiPSysAgeDeathModifier.cpp +src/obj/NiPSysBombModifier.cpp +src/obj/NiPSysBoundUpdateModifier.cpp +src/obj/NiPSysBoxEmitter.cpp +src/obj/NiPSysColliderManager.cpp +src/obj/NiPSysColorModifier.cpp +src/obj/NiPSysCylinderEmitter.cpp +src/obj/NiPSysData.cpp +src/obj/NiPSysDragModifier.cpp +src/obj/NiPSysEmitterCtlr.cpp +src/obj/NiPSysEmitterCtlrData.cpp +src/obj/NiPSysEmitterDeclinationCtlr.cpp +src/obj/NiPSysEmitterDeclinationVarCtlr.cpp +src/obj/NiPSysEmitterInitialRadiusCtlr.cpp +src/obj/NiPSysEmitterLifeSpanCtlr.cpp +src/obj/NiPSysEmitterSpeedCtlr.cpp +src/obj/NiPSysGravityModifier.cpp +src/obj/NiPSysGravityStrengthCtlr.cpp +src/obj/NiPSysGrowFadeModifier.cpp +src/obj/NiPSysMeshEmitter.cpp +src/obj/NiPSysMeshUpdateModifier.cpp +src/obj/NiPSysModifierActiveCtlr.cpp +src/obj/NiPSysPlanarCollider.cpp +src/obj/NiPSysPositionModifier.cpp +src/obj/NiPSysResetOnLoopCtlr.cpp +src/obj/NiPSysRotationModifier.cpp +src/obj/NiPSysSpawnModifier.cpp +src/obj/NiPSysSphereEmitter.cpp +src/obj/NiPSysUpdateCtlr.cpp +src/obj/NiRangeLODData.cpp +src/obj/NiRotatingParticles.cpp +src/obj/NiRotatingParticlesData.cpp +src/obj/NiScreenLODData.cpp +src/obj/NiSequenceStreamHelper.cpp +src/obj/NiShadeProperty.cpp +src/obj/NiSkinData.cpp +src/obj/NiSkinInstance.cpp +src/obj/NiSkinPartition.cpp +src/obj/NiSourceTexture.cpp +src/obj/NiSpecularProperty.cpp +src/obj/NiSphericalCollider.cpp +src/obj/NiSpotLight.cpp +src/obj/NiStencilProperty.cpp +src/obj/NiStringExtraData.cpp +src/obj/NiStringPalette.cpp +src/obj/NiStringsExtraData.cpp +src/obj/NiTextKeyExtraData.cpp +src/obj/NiTextureEffect.cpp +src/obj/NiTextureTransformController.cpp +src/obj/NiTexturingProperty.cpp +src/obj/NiTransformController.cpp +src/obj/NiTransformData.cpp +src/obj/NiTransformInterpolator.cpp +src/obj/NiTriShape.cpp +src/obj/NiTriShapeData.cpp +src/obj/NiTriStrips.cpp +src/obj/NiTriStripsData.cpp +src/obj/NiUVController.cpp +src/obj/NiUVData.cpp +src/obj/NiVectorExtraData.cpp +src/obj/NiVertexColorProperty.cpp +src/obj/NiVertWeightsExtraData.cpp +src/obj/NiVisController.cpp +src/obj/NiVisData.cpp +src/obj/NiWireframeProperty.cpp +src/obj/NiZBufferProperty.cpp +src/obj/RootCollisionNode.cpp +src/obj/NiClod.cpp +src/obj/NiClodData.cpp +src/obj/NiClodSkinInstance.cpp +""") + +core_objfiles = Split(""" +src/ComplexShape.cpp +src/niflib.cpp +src/nif_math.cpp +src/NIF_IO.cpp +src/kfm.cpp +src/Type.cpp +src/gen/obj_factories.cpp +""") + +TriStripper_files = Split(""" +TriStripper/connectivity_graph.cpp +TriStripper/policy.cpp +TriStripper/tri_stripper.cpp +""") + +NvTriStrip_files = Split(""" +NvTriStrip/NvTriStrip.cpp +NvTriStrip/NvTriStripObjects.cpp +NvTriStrip/VertexCache.cpp +""") + +print "Building: NvTriStriplib" +NvTriStriplib = env.StaticLibrary('NvTriStriplib', NvTriStrip_files, CPPPATH = '.') +print "Building: TriStripperlib" +TriStripperlib = env.StaticLibrary('TriStripperlib', TriStripper_files, CPPPATH = '.') + +niflib = env.StaticLibrary('niflib', [core_objfiles, gen_objfiles, obj_objfiles], LIBPATH=['.'], LIBS=['TriStripperlib', 'NvTriStriplib'], CPPPATH = '.') + + + +#nifshlib = env.SharedLibrary('_niflib', 'pyniflib.i', LIBS=['niflib'] + python_lib, LIBPATH=['.'] + python_libpath, SWIGFLAGS = '-c++ -python', CPPPATH = ['.'] + python_include, CPPFLAGS = cppflags, SHLIBPREFIX='') # makes sure niflib.lib is built before trying to build _niflib.dll -env.Depends(nifshlib, niflib) +#env.Depends(nifshlib, niflib) # Here's how to compile niflyze: #env.Program('niflyze', 'niflyze.cpp', LIBS=['niflib'], LIBPATH=['.'], CPPFLAGS = cppflags) # A test program: -#env.Program('test', 'test.cpp', LIBS=['niflib'], LIBPATH=['.'], CPPFLAGS = cppflags) - +#env.Program('test', 'test.cpp', LIBS=['niflib'], LIBPATH=['.'], CPPFLAGS = cppflags) \ No newline at end of file