# Copyright 2009, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following disclaimer # in the documentation and/or other materials provided with the # distribution. # * Neither the name of Google Inc. nor the names of its # contributors may be used to endorse or promote products derived from # this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Import('env') c_sources = [ 'LibXML/DOCBparser', 'LibXML/HTMLparser', 'LibXML/HTMLtree', 'LibXML/SAX', 'LibXML/SAX2', 'LibXML/c14n', 'LibXML/catalog', 'LibXML/chvalid', 'LibXML/debugXML', 'LibXML/dict', 'LibXML/encoding', 'LibXML/entities', 'LibXML/error', 'LibXML/globals', 'LibXML/hash', 'LibXML/legacy', 'LibXML/list', 'LibXML/nanoftp', 'LibXML/nanohttp', 'LibXML/parser', 'LibXML/parserInternals', 'LibXML/pattern', 'LibXML/relaxng', 'LibXML/threads', 'LibXML/tree', 'LibXML/uri', 'LibXML/valid', 'LibXML/xinclude', 'LibXML/xlink', 'LibXML/xmlIO', 'LibXML/xmlcatalog', 'LibXML/xmlmemory', 'LibXML/xmlmodule', 'LibXML/xmlreader', 'LibXML/xmlregexp', 'LibXML/xmlsave', 'LibXML/xmlstring', 'LibXML/xmlunicode', 'LibXML/xmlwriter', ] cpp_sources = [ 'DLLEntry', 'FCollada', 'FColladaPlugin', 'StdAfx', 'FArchiveXML/FAXAnimationExport', 'FArchiveXML/FAXAnimationImport', 'FArchiveXML/FAXCameraExport', 'FArchiveXML/FAXCameraImport', 'FArchiveXML/FAXColladaParser', 'FArchiveXML/FAXColladaWriter', 'FArchiveXML/FAXControllerExport', 'FArchiveXML/FAXControllerImport', 'FArchiveXML/FAXEmitterExport', 'FArchiveXML/FAXEmitterImport', 'FArchiveXML/FAXEntityExport', 'FArchiveXML/FAXEntityImport', 'FArchiveXML/FAXForceFieldExport', 'FArchiveXML/FAXForceFieldImport', 'FArchiveXML/FAXGeometryExport', 'FArchiveXML/FAXGeometryImport', 'FArchiveXML/FAXImportLinking', 'FArchiveXML/FAXInstanceExport', 'FArchiveXML/FAXInstanceImport', 'FArchiveXML/FAXLightExport', 'FArchiveXML/FAXLightImport', 'FArchiveXML/FAXMaterialExport', 'FArchiveXML/FAXMaterialImport', 'FArchiveXML/FAXPhysicsExport', 'FArchiveXML/FAXPhysicsImport', 'FArchiveXML/FAXSceneExport', 'FArchiveXML/FAXSceneImport', 'FArchiveXML/FArchiveXML', 'FArchiveXML/StdAfx', 'FCDocument/FCDAnimated', 'FCDocument/FCDAnimation', 'FCDocument/FCDAnimationChannel', 'FCDocument/FCDAnimationClip', 'FCDocument/FCDAnimationClipTools', 'FCDocument/FCDAnimationCurve', 'FCDocument/FCDAnimationCurveTools', 'FCDocument/FCDAnimationKey', 'FCDocument/FCDAnimationMultiCurve', 'FCDocument/FCDAsset', 'FCDocument/FCDCamera', 'FCDocument/FCDController', 'FCDocument/FCDControllerInstance', 'FCDocument/FCDControllerTools', 'FCDocument/FCDEffect', 'FCDocument/FCDEffectCode', 'FCDocument/FCDEffectParameter', 'FCDocument/FCDEffectParameterFactory', 'FCDocument/FCDEffectParameterSampler', 'FCDocument/FCDEffectParameterSurface', 'FCDocument/FCDEffectPass', 'FCDocument/FCDEffectPassShader', 'FCDocument/FCDEffectPassState', 'FCDocument/FCDEffectProfile', 'FCDocument/FCDEffectProfileFX', 'FCDocument/FCDEffectStandard', 'FCDocument/FCDEffectTechnique', 'FCDocument/FCDEffectTools', 'FCDocument/FCDEmitter', 'FCDocument/FCDEmitterInstance', 'FCDocument/FCDEmitterObject', 'FCDocument/FCDEmitterParticle', 'FCDocument/FCDEntity', 'FCDocument/FCDEntityInstance', 'FCDocument/FCDEntityReference', 'FCDocument/FCDExternalReferenceManager', 'FCDocument/FCDExtra', 'FCDocument/FCDForceDeflector', 'FCDocument/FCDForceDrag', 'FCDocument/FCDForceField', 'FCDocument/FCDForceGravity', 'FCDocument/FCDForcePBomb', 'FCDocument/FCDForceWind', 'FCDocument/FCDGeometry', 'FCDocument/FCDGeometryInstance', 'FCDocument/FCDGeometryMesh', 'FCDocument/FCDGeometryNURBSSurface', 'FCDocument/FCDGeometryPolygons', 'FCDocument/FCDGeometryPolygonsInput', 'FCDocument/FCDGeometryPolygonsTools', 'FCDocument/FCDGeometrySource', 'FCDocument/FCDGeometrySpline', 'FCDocument/FCDImage', 'FCDocument/FCDLibrary', 'FCDocument/FCDLight', 'FCDocument/FCDLightTools', 'FCDocument/FCDMaterial', 'FCDocument/FCDMaterialInstance', 'FCDocument/FCDMorphController', 'FCDocument/FCDObject', 'FCDocument/FCDObjectWithId', 'FCDocument/FCDParameterAnimatable', 'FCDocument/FCDParticleModifier', 'FCDocument/FCDPhysicsAnalyticalGeometry', 'FCDocument/FCDPhysicsForceFieldInstance', 'FCDocument/FCDPhysicsMaterial', 'FCDocument/FCDPhysicsModel', 'FCDocument/FCDPhysicsModelInstance', 'FCDocument/FCDPhysicsRigidBody', 'FCDocument/FCDPhysicsRigidBodyInstance', 'FCDocument/FCDPhysicsRigidBodyParameters', 'FCDocument/FCDPhysicsRigidConstraint', 'FCDocument/FCDPhysicsRigidConstraintInstance', 'FCDocument/FCDPhysicsScene', 'FCDocument/FCDPhysicsShape', 'FCDocument/FCDPlaceHolder', 'FCDocument/FCDSceneNode', 'FCDocument/FCDSceneNodeIterator', 'FCDocument/FCDSceneNodeTools', 'FCDocument/FCDSkinController', 'FCDocument/FCDTargetedEntity', 'FCDocument/FCDTexture', 'FCDocument/FCDTransform', 'FCDocument/FCDVersion', 'FCDocument/FCDocument', 'FCDocument/FCDocumentTools', 'FMath/FMAllocator', 'FMath/FMAngleAxis', 'FMath/FMColor', 'FMath/FMInterpolation', 'FMath/FMLookAt', 'FMath/FMMatrix33', 'FMath/FMMatrix44', 'FMath/FMQuaternion', 'FMath/FMRandom', 'FMath/FMSkew', 'FMath/FMVector3', 'FMath/FMVolume', 'FMath/StdAfx', 'FUtils/FUAssert', 'FUtils/FUBase64', 'FUtils/FUBoundingBox', 'FUtils/FUBoundingSphere', 'FUtils/FUCrc32', 'FUtils/FUCriticalSection', 'FUtils/FUDaeEnum', 'FUtils/FUDateTime', 'FUtils/FUDebug', 'FUtils/FUError', 'FUtils/FUErrorLog', 'FUtils/FUFile', 'FUtils/FUFileManager', 'FUtils/FULogFile', 'FUtils/FUObject', 'FUtils/FUObjectType', 'FUtils/FUParameter', 'FUtils/FUParameterizable', 'FUtils/FUPluginManager', 'FUtils/FUSemaphore', 'FUtils/FUStringBuilder', 'FUtils/FUStringConversion', 'FUtils/FUSynchronizableObject', 'FUtils/FUThread', 'FUtils/FUTracker', 'FUtils/FUUniqueStringMap', 'FUtils/FUUniqueStringMapTest', 'FUtils/FUUri', 'FUtils/FUXmlDocument', 'FUtils/FUXmlParser', 'FUtils/FUXmlWriter', 'FUtils/StdAfx', ] env.Append(CPPPATH=['$COLLADA_DIR/LibXML/include', '$COLLADA_DIR'], # Always set RETAIL so that we don't link in tests. CPPDEFINES=['RETAIL']) # TESTING is added on our test- targets but messes up fcollada env.FilterOut(CPPDEFINES=['TESTING']) if env.Bit('mac'): # LibXML needs this define on Mac. env.Append(CPPDEFINES = ['OS_MACINTOSH']) if env.Bit('linux'): # On linux, -O3 seems to cause problems with template instantiation, -O2 is # fine. if not env['DEBUG']: env.FilterOut(CCFLAGS=['-O3']) env.Append(CCFLAGS=['-O2']) inputs = env.MakeObjects(c_sources, '$COLLADA_DIR', 'c') inputs += env.MakeObjects(cpp_sources, '$COLLADA_DIR', 'cpp') env.ComponentLibrary('FColladaU', inputs)