# Open Asset Import Library (assimp) # ---------------------------------------------------------------------- # # Copyright (c) 2006-2018, assimp team # All rights reserved. # # Redistribution and use of this software 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 the assimp team, nor the names of its # contributors may be used to endorse or promote products # derived from this software without specific prior # written permission of the assimp team. # # 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. # #---------------------------------------------------------------------- # Listing and grouping of all the source files. # 1) Set the file lists for each component # 2) Create a Source Group for each component, for IDE project orginization # 3) Add libassimp using the file lists (eliminates duplication of file names between # source groups and library command) # cmake_minimum_required( VERSION 2.6 ) SET( HEADER_PATH ../include/assimp ) SET( COMPILER_HEADERS ${HEADER_PATH}/Compiler/pushpack1.h ${HEADER_PATH}/Compiler/poppack1.h ${HEADER_PATH}/Compiler/pstdint.h ) SOURCE_GROUP( Compiler FILES ${COMPILER_HEADERS}) SET( PUBLIC_HEADERS ${HEADER_PATH}/anim.h ${HEADER_PATH}/ai_assert.h ${HEADER_PATH}/camera.h ${HEADER_PATH}/color4.h ${HEADER_PATH}/color4.inl ${CMAKE_CURRENT_BINARY_DIR}/../include/assimp/config.h ${HEADER_PATH}/defs.h ${HEADER_PATH}/Defines.h ${HEADER_PATH}/cfileio.h ${HEADER_PATH}/light.h ${HEADER_PATH}/material.h ${HEADER_PATH}/material.inl ${HEADER_PATH}/matrix3x3.h ${HEADER_PATH}/matrix3x3.inl ${HEADER_PATH}/matrix4x4.h ${HEADER_PATH}/matrix4x4.inl ${HEADER_PATH}/mesh.h ${HEADER_PATH}/pbrmaterial.h ${HEADER_PATH}/postprocess.h ${HEADER_PATH}/quaternion.h ${HEADER_PATH}/quaternion.inl ${HEADER_PATH}/scene.h ${HEADER_PATH}/metadata.h ${HEADER_PATH}/texture.h ${HEADER_PATH}/types.h ${HEADER_PATH}/vector2.h ${HEADER_PATH}/vector2.inl ${HEADER_PATH}/vector3.h ${HEADER_PATH}/vector3.inl ${HEADER_PATH}/version.h ${HEADER_PATH}/cimport.h ${HEADER_PATH}/importerdesc.h ${HEADER_PATH}/Importer.hpp ${HEADER_PATH}/DefaultLogger.hpp ${HEADER_PATH}/ProgressHandler.hpp ${HEADER_PATH}/IOStream.hpp ${HEADER_PATH}/IOSystem.hpp ${HEADER_PATH}/Logger.hpp ${HEADER_PATH}/LogStream.hpp ${HEADER_PATH}/NullLogger.hpp ${HEADER_PATH}/cexport.h ${HEADER_PATH}/Exporter.hpp ${HEADER_PATH}/DefaultIOStream.h ${HEADER_PATH}/DefaultIOSystem.h ${HEADER_PATH}/SceneCombiner.h ${HEADER_PATH}/fast_atof.h ${HEADER_PATH}/qnan.h ${HEADER_PATH}/BaseImporter.h ${HEADER_PATH}/Hash.h ${HEADER_PATH}/MemoryIOWrapper.h ${HEADER_PATH}/ParsingUtils.h ${HEADER_PATH}/StreamReader.h ${HEADER_PATH}/StreamWriter.h ${HEADER_PATH}/StringComparison.h ${HEADER_PATH}/StringUtils.h ${HEADER_PATH}/SGSpatialSort.h ${HEADER_PATH}/GenericProperty.h ${HEADER_PATH}/SpatialSort.h ${HEADER_PATH}/SkeletonMeshBuilder.h ${HEADER_PATH}/SmoothingGroups.h ${HEADER_PATH}/SmoothingGroups.inl ${HEADER_PATH}/StandardShapes.h ${HEADER_PATH}/RemoveComments.h ${HEADER_PATH}/Subdivision.h ${HEADER_PATH}/Vertex.h ${HEADER_PATH}/LineSplitter.h ${HEADER_PATH}/TinyFormatter.h ${HEADER_PATH}/Profiler.h ${HEADER_PATH}/LogAux.h ${HEADER_PATH}/Bitmap.h ${HEADER_PATH}/XMLTools.h ${HEADER_PATH}/IOStreamBuffer.h ${HEADER_PATH}/CreateAnimMesh.h ${HEADER_PATH}/irrXMLWrapper.h ${HEADER_PATH}/BlobIOSystem.h ${HEADER_PATH}/MathFunctions.h ${HEADER_PATH}/Macros.h ${HEADER_PATH}/Exceptional.h ${HEADER_PATH}/ByteSwapper.h ) SET( Core_SRCS Assimp.cpp ) SET( Logging_SRCS ${HEADER_PATH}/DefaultLogger.hpp ${HEADER_PATH}/LogStream.hpp ${HEADER_PATH}/Logger.hpp ${HEADER_PATH}/NullLogger.hpp Win32DebugLogStream.h DefaultLogger.cpp FileLogStream.h StdOStreamLogStream.h ) SOURCE_GROUP(Logging FILES ${Logging_SRCS}) SET( Common_SRCS BaseImporter.cpp BaseProcess.cpp BaseProcess.h Importer.h ScenePrivate.h PostStepRegistry.cpp ImporterRegistry.cpp DefaultProgressHandler.h DefaultIOStream.cpp DefaultIOSystem.cpp CInterfaceIOWrapper.cpp CInterfaceIOWrapper.h Importer.cpp IFF.h SGSpatialSort.cpp VertexTriangleAdjacency.cpp VertexTriangleAdjacency.h SpatialSort.cpp SceneCombiner.cpp ScenePreprocessor.cpp ScenePreprocessor.h SkeletonMeshBuilder.cpp SplitByBoneCountProcess.cpp SplitByBoneCountProcess.h StandardShapes.cpp TargetAnimation.cpp TargetAnimation.h RemoveComments.cpp Subdivision.cpp scene.cpp Bitmap.cpp Version.cpp CreateAnimMesh.cpp simd.h simd.cpp ) SOURCE_GROUP(Common FILES ${Common_SRCS}) SET( STEPParser_SRCS Importer/STEPParser/STEPFileReader.h Importer/STEPParser/STEPFileReader.cpp Importer/STEPParser/STEPFileEncoding.cpp Importer/STEPParser/STEPFileEncoding.h ) SOURCE_GROUP(STEPParser FILES ${STEPParser_SRCS}) IF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER ) SET( C4D_SRCS C4DImporter.cpp C4DImporter.h ) SOURCE_GROUP( C4D FILES ${C4D_SRCS}) ENDIF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER ) # if this variable is set to TRUE, the user can manually disable importers by setting # ASSIMP_BUILD_XXX_IMPORTER to FALSE for each importer # if this variable is set to FALSE, the user can manually enable importers by setting # ASSIMP_BUILD_XXX_IMPORTER to TRUE for each importer OPTION(ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT "default value of all ASSIMP_BUILD_XXX_IMPORTER value" TRUE) # macro to add the CMake Option ADD_ASSIMP_IMPORTER_ which enables compile of loader # this way selective loaders can be compiled (reduces filesize + compile time) MACRO(ADD_ASSIMP_IMPORTER name) IF (ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT) set(ASSIMP_IMPORTER_ENABLED TRUE) IF (DEFINED ASSIMP_BUILD_${name}_IMPORTER AND NOT ASSIMP_BUILD_${name}_IMPORTER) set(ASSIMP_IMPORTER_ENABLED FALSE) ENDIF () ELSE () set(ASSIMP_IMPORTER_ENABLED ${ASSIMP_BUILD_${name}_IMPORTER}) ENDIF () IF (ASSIMP_IMPORTER_ENABLED) LIST(APPEND ASSIMP_LOADER_SRCS ${ARGN}) SET(ASSIMP_IMPORTERS_ENABLED "${ASSIMP_IMPORTERS_ENABLED} ${name}") SET(${name}_SRCS ${ARGN}) SOURCE_GROUP(${name} FILES ${ARGN}) ELSE() SET(${name}_SRC "") SET(ASSIMP_IMPORTERS_DISABLED "${ASSIMP_IMPORTERS_DISABLED} ${name}") add_definitions(-DASSIMP_BUILD_NO_${name}_IMPORTER) add_definitions(-DASSIMP_BUILD_NO_${name}_EXPORTER) ENDIF() ENDMACRO() SET(ASSIMP_LOADER_SRCS "") SET(ASSIMP_IMPORTERS_ENABLED "") # list of enabled importers SET(ASSIMP_IMPORTERS_DISABLED "") # disabled list (used to print) ADD_ASSIMP_IMPORTER( AMF AMFImporter.hpp AMFImporter_Macro.hpp AMFImporter_Node.hpp AMFImporter.cpp AMFImporter_Geometry.cpp AMFImporter_Material.cpp AMFImporter_Postprocess.cpp ) ADD_ASSIMP_IMPORTER( 3DS 3DSConverter.cpp 3DSHelper.h 3DSLoader.cpp 3DSLoader.h 3DSExporter.h 3DSExporter.cpp ) ADD_ASSIMP_IMPORTER( AC ACLoader.cpp ACLoader.h ) ADD_ASSIMP_IMPORTER( ASE ASELoader.cpp ASELoader.h ASEParser.cpp ASEParser.h ) ADD_ASSIMP_IMPORTER( ASSBIN AssbinExporter.h AssbinExporter.cpp AssbinLoader.h AssbinLoader.cpp ) ADD_ASSIMP_IMPORTER( ASSXML AssxmlExporter.h AssxmlExporter.cpp ) ADD_ASSIMP_IMPORTER( B3D B3DImporter.cpp B3DImporter.h ) ADD_ASSIMP_IMPORTER( BVH BVHLoader.cpp BVHLoader.h ) ADD_ASSIMP_IMPORTER( COLLADA ColladaHelper.h ColladaLoader.cpp ColladaLoader.h ColladaParser.cpp ColladaParser.h ColladaExporter.h ColladaExporter.cpp ) ADD_ASSIMP_IMPORTER( DXF DXFLoader.cpp DXFLoader.h DXFHelper.h ) ADD_ASSIMP_IMPORTER( CSM CSMLoader.cpp CSMLoader.h ) ADD_ASSIMP_IMPORTER( HMP HMPFileData.h HMPLoader.cpp HMPLoader.h HalfLifeFileData.h ) ADD_ASSIMP_IMPORTER( IRRMESH IRRMeshLoader.cpp IRRMeshLoader.h IRRShared.cpp IRRShared.h ) ADD_ASSIMP_IMPORTER( IRR IRRLoader.cpp IRRLoader.h IRRShared.cpp IRRShared.h ) ADD_ASSIMP_IMPORTER( LWO LWOAnimation.cpp LWOAnimation.h LWOBLoader.cpp LWOFileData.h LWOLoader.cpp LWOLoader.h LWOMaterial.cpp ) ADD_ASSIMP_IMPORTER( LWS LWSLoader.cpp LWSLoader.h ) ADD_ASSIMP_IMPORTER( MD2 MD2FileData.h MD2Loader.cpp MD2Loader.h MD2NormalTable.h ) ADD_ASSIMP_IMPORTER( MD3 MD3FileData.h MD3Loader.cpp MD3Loader.h ) ADD_ASSIMP_IMPORTER( MD5 MD5Loader.cpp MD5Loader.h MD5Parser.cpp MD5Parser.h ) ADD_ASSIMP_IMPORTER( MDC MDCFileData.h MDCLoader.cpp MDCLoader.h MDCNormalTable.h ) ADD_ASSIMP_IMPORTER( MDL MDLDefaultColorMap.h MDLFileData.h MDLLoader.cpp MDLLoader.h MDLMaterialLoader.cpp ) SET( MaterialSystem_SRCS MaterialSystem.cpp MaterialSystem.h ) SOURCE_GROUP( MaterialSystem FILES ${MaterialSystem_SRCS}) ADD_ASSIMP_IMPORTER( NFF NFFLoader.cpp NFFLoader.h ) ADD_ASSIMP_IMPORTER( NDO NDOLoader.cpp NDOLoader.h ) ADD_ASSIMP_IMPORTER( OFF OFFLoader.cpp OFFLoader.h ) ADD_ASSIMP_IMPORTER( OBJ ObjFileData.h ObjFileImporter.cpp ObjFileImporter.h ObjFileMtlImporter.cpp ObjFileMtlImporter.h ObjFileParser.cpp ObjFileParser.h ObjTools.h ObjExporter.h ObjExporter.cpp ) ADD_ASSIMP_IMPORTER( OGRE OgreImporter.h OgreStructs.h OgreParsingUtils.h OgreBinarySerializer.h OgreXmlSerializer.h OgreImporter.cpp OgreStructs.cpp OgreBinarySerializer.cpp OgreXmlSerializer.cpp OgreMaterial.cpp ) ADD_ASSIMP_IMPORTER( OPENGEX OpenGEXExporter.cpp OpenGEXExporter.h OpenGEXImporter.cpp OpenGEXImporter.h OpenGEXStructs.h ) ADD_ASSIMP_IMPORTER( PLY PlyLoader.cpp PlyLoader.h PlyParser.cpp PlyParser.h PlyExporter.cpp PlyExporter.h ) ADD_ASSIMP_IMPORTER( MS3D MS3DLoader.cpp MS3DLoader.h ) ADD_ASSIMP_IMPORTER( COB COBLoader.cpp COBLoader.h COBScene.h ) ADD_ASSIMP_IMPORTER( BLEND BlenderLoader.cpp BlenderLoader.h BlenderDNA.cpp BlenderDNA.h BlenderDNA.inl BlenderScene.cpp BlenderScene.h BlenderSceneGen.h BlenderIntermediate.h BlenderModifier.h BlenderModifier.cpp BlenderBMesh.h BlenderBMesh.cpp BlenderTessellator.h BlenderTessellator.cpp BlenderCustomData.h BlenderCustomData.cpp ) ADD_ASSIMP_IMPORTER( IFC Importer/IFC/IFCLoader.cpp Importer/IFC/IFCLoader.h Importer/IFC/IFCReaderGen1_2x3.cpp Importer/IFC/IFCReaderGen2_2x3.cpp Importer/IFC/IFCReaderGen_2x3.h Importer/IFC/IFCUtil.h Importer/IFC/IFCUtil.cpp Importer/IFC/IFCGeometry.cpp Importer/IFC/IFCMaterial.cpp Importer/IFC/IFCProfile.cpp Importer/IFC/IFCCurve.cpp Importer/IFC/IFCBoolean.cpp Importer/IFC/IFCOpenings.cpp ) if (ASSIMP_BUILD_IFC_IMPORTER) if (MSVC) set_source_files_properties(Importer/IFC/IFCReaderGen1_2x3.cpp Importer/IFC/IFCReaderGen2_2x3.cpp PROPERTIES COMPILE_FLAGS "/bigobj") elseif(CMAKE_COMPILER_IS_MINGW) set_source_files_properties(Importer/IFC/IFCReaderGen1_2x3.cpp Importer/IFC/IFCReaderGen2_2x3.cpp PROPERTIES COMPILE_FLAGS "-O2 -Wa,-mbig-obj") endif() endif (ASSIMP_BUILD_IFC_IMPORTER) ADD_ASSIMP_IMPORTER( XGL XGLLoader.cpp XGLLoader.h ) ADD_ASSIMP_IMPORTER( FBX FBXImporter.cpp FBXCompileConfig.h FBXImporter.h FBXParser.cpp FBXParser.h FBXTokenizer.cpp FBXTokenizer.h FBXImportSettings.h FBXConverter.h FBXConverter.cpp FBXUtil.h FBXUtil.cpp FBXDocument.h FBXDocument.cpp FBXProperties.h FBXProperties.cpp FBXMeshGeometry.h FBXMeshGeometry.cpp FBXMaterial.cpp FBXModel.cpp FBXAnimation.cpp FBXNodeAttribute.cpp FBXDeformer.cpp FBXBinaryTokenizer.cpp FBXDocumentUtil.cpp FBXExporter.h FBXExporter.cpp FBXExportNode.h FBXExportNode.cpp FBXExportProperty.h FBXExportProperty.cpp FBXCommon.h ) SET( PostProcessing_SRCS CalcTangentsProcess.cpp CalcTangentsProcess.h ComputeUVMappingProcess.cpp ComputeUVMappingProcess.h ConvertToLHProcess.cpp ConvertToLHProcess.h EmbedTexturesProcess.cpp EmbedTexturesProcess.h FindDegenerates.cpp FindDegenerates.h FindInstancesProcess.cpp FindInstancesProcess.h FindInvalidDataProcess.cpp FindInvalidDataProcess.h FixNormalsStep.cpp FixNormalsStep.h DropFaceNormalsProcess.cpp DropFaceNormalsProcess.h GenFaceNormalsProcess.cpp GenFaceNormalsProcess.h GenVertexNormalsProcess.cpp GenVertexNormalsProcess.h PretransformVertices.cpp PretransformVertices.h ImproveCacheLocality.cpp ImproveCacheLocality.h JoinVerticesProcess.cpp JoinVerticesProcess.h LimitBoneWeightsProcess.cpp LimitBoneWeightsProcess.h RemoveRedundantMaterials.cpp RemoveRedundantMaterials.h RemoveVCProcess.cpp RemoveVCProcess.h SortByPTypeProcess.cpp SortByPTypeProcess.h SplitLargeMeshes.cpp SplitLargeMeshes.h TextureTransform.cpp TextureTransform.h TriangulateProcess.cpp TriangulateProcess.h ValidateDataStructure.cpp ValidateDataStructure.h OptimizeGraph.cpp OptimizeGraph.h OptimizeMeshes.cpp OptimizeMeshes.h DeboneProcess.cpp DeboneProcess.h ProcessHelper.h ProcessHelper.cpp PolyTools.h MakeVerboseFormat.cpp MakeVerboseFormat.h ScaleProcess.cpp ScaleProcess.h ) SOURCE_GROUP( PostProcessing FILES ${PostProcessing_SRCS}) SET( IrrXML_SRCS ${HEADER_PATH}/irrXMLWrapper.h ) SOURCE_GROUP( IrrXML FILES ${IrrXML_SRCS}) ADD_ASSIMP_IMPORTER( Q3D Q3DLoader.cpp Q3DLoader.h ) ADD_ASSIMP_IMPORTER( Q3BSP Q3BSPFileData.h Q3BSPFileParser.h Q3BSPFileParser.cpp Q3BSPFileImporter.h Q3BSPFileImporter.cpp Q3BSPZipArchive.h Q3BSPZipArchive.cpp ) ADD_ASSIMP_IMPORTER( RAW RawLoader.cpp RawLoader.h ) ADD_ASSIMP_IMPORTER( SIB SIBImporter.cpp SIBImporter.h ) ADD_ASSIMP_IMPORTER( SMD SMDLoader.cpp SMDLoader.h ) ADD_ASSIMP_IMPORTER( STL STLLoader.cpp STLLoader.h STLExporter.h STLExporter.cpp ) ADD_ASSIMP_IMPORTER( TERRAGEN TerragenLoader.cpp TerragenLoader.h ) ADD_ASSIMP_IMPORTER( 3D UnrealLoader.cpp UnrealLoader.h ) ADD_ASSIMP_IMPORTER( X XFileHelper.h XFileImporter.cpp XFileImporter.h XFileParser.cpp XFileParser.h XFileExporter.h XFileExporter.cpp ) ADD_ASSIMP_IMPORTER( X3D X3DExporter.cpp X3DExporter.hpp X3DImporter.cpp X3DImporter.hpp X3DImporter_Geometry2D.cpp X3DImporter_Geometry3D.cpp X3DImporter_Group.cpp X3DImporter_Light.cpp X3DImporter_Macro.hpp X3DImporter_Metadata.cpp X3DImporter_Networking.cpp X3DImporter_Node.hpp X3DImporter_Postprocess.cpp X3DImporter_Rendering.cpp X3DImporter_Shape.cpp X3DImporter_Texturing.cpp FIReader.hpp FIReader.cpp X3DVocabulary.cpp ) ADD_ASSIMP_IMPORTER( GLTF glTFAsset.h glTFAsset.inl glTFAssetWriter.h glTFAssetWriter.inl glTFImporter.cpp glTFImporter.h glTFExporter.h glTFExporter.cpp glTF2Asset.h glTF2Asset.inl glTF2AssetWriter.h glTF2AssetWriter.inl glTF2Importer.cpp glTF2Importer.h glTF2Exporter.h glTF2Exporter.cpp ) ADD_ASSIMP_IMPORTER( 3MF D3MFImporter.h D3MFImporter.cpp D3MFExporter.h D3MFExporter.cpp D3MFOpcPackage.h D3MFOpcPackage.cpp 3MFXmlTags.h ) ADD_ASSIMP_IMPORTER( MMD MMDCpp14.h MMDImporter.cpp MMDImporter.h MMDPmdParser.h MMDPmxParser.h MMDPmxParser.cpp MMDVmdParser.h ) ADD_ASSIMP_IMPORTER( STEP STEPFile.h Importer/StepFile/StepFileImporter.h Importer/StepFile/StepFileImporter.cpp Importer/StepFile/StepFileGen1.cpp Importer/StepFile/StepFileGen2.cpp Importer/StepFile/StepFileGen3.cpp Importer/StepFile/StepReaderGen.h StepExporter.h StepExporter.cpp ) SET( Exporter_SRCS Exporter.cpp AssimpCExport.cpp ${HEADER_PATH}/BlobIOSystem.h ) SOURCE_GROUP( Exporter FILES ${Exporter_SRCS}) SET( Extra_SRCS MD4FileData.h ) SOURCE_GROUP( Extra FILES ${Extra_SRCS}) SET( Clipper_SRCS ../contrib/clipper/clipper.hpp ../contrib/clipper/clipper.cpp ) SOURCE_GROUP( Clipper FILES ${Clipper_SRCS}) SET( Poly2Tri_SRCS ../contrib/poly2tri/poly2tri/common/shapes.cc ../contrib/poly2tri/poly2tri/common/shapes.h ../contrib/poly2tri/poly2tri/common/utils.h ../contrib/poly2tri/poly2tri/sweep/advancing_front.h ../contrib/poly2tri/poly2tri/sweep/advancing_front.cc ../contrib/poly2tri/poly2tri/sweep/cdt.cc ../contrib/poly2tri/poly2tri/sweep/cdt.h ../contrib/poly2tri/poly2tri/sweep/sweep.cc ../contrib/poly2tri/poly2tri/sweep/sweep.h ../contrib/poly2tri/poly2tri/sweep/sweep_context.cc ../contrib/poly2tri/poly2tri/sweep/sweep_context.h ) SOURCE_GROUP( Poly2Tri FILES ${Poly2Tri_SRCS}) SET( unzip_SRCS ../contrib/unzip/crypt.h ../contrib/unzip/ioapi.c ../contrib/unzip/ioapi.h ../contrib/unzip/unzip.c ../contrib/unzip/unzip.h ) SOURCE_GROUP( unzip FILES ${unzip_SRCS}) SET( ziplib_SRCS ../contrib/zip/src/miniz.h ../contrib/zip/src/zip.c ../contrib/zip/src/zip.h ) SOURCE_GROUP( ziplib FILES ${ziplib_SRCS} ) SET ( openddl_parser_SRCS ../contrib/openddlparser/code/OpenDDLParser.cpp ../contrib/openddlparser/code/DDLNode.cpp ../contrib/openddlparser/code/OpenDDLCommon.cpp ../contrib/openddlparser/code/OpenDDLExport.cpp ../contrib/openddlparser/code/Value.cpp ../contrib/openddlparser/code/OpenDDLStream.cpp ../contrib/openddlparser/include/openddlparser/OpenDDLParser.h ../contrib/openddlparser/include/openddlparser/OpenDDLParserUtils.h ../contrib/openddlparser/include/openddlparser/OpenDDLCommon.h ../contrib/openddlparser/include/openddlparser/OpenDDLExport.h ../contrib/openddlparser/include/openddlparser/OpenDDLStream.h ../contrib/openddlparser/include/openddlparser/DDLNode.h ../contrib/openddlparser/include/openddlparser/Value.h ) SOURCE_GROUP( openddl_parser FILES ${openddl_parser_SRCS}) SET ( open3dgc_SRCS ../contrib/Open3DGC/o3dgcAdjacencyInfo.h ../contrib/Open3DGC/o3dgcArithmeticCodec.cpp ../contrib/Open3DGC/o3dgcArithmeticCodec.h ../contrib/Open3DGC/o3dgcBinaryStream.h ../contrib/Open3DGC/o3dgcCommon.h ../contrib/Open3DGC/o3dgcDVEncodeParams.h ../contrib/Open3DGC/o3dgcDynamicVectorDecoder.cpp ../contrib/Open3DGC/o3dgcDynamicVectorDecoder.h ../contrib/Open3DGC/o3dgcDynamicVectorEncoder.cpp ../contrib/Open3DGC/o3dgcDynamicVectorEncoder.h ../contrib/Open3DGC/o3dgcDynamicVector.h ../contrib/Open3DGC/o3dgcFIFO.h ../contrib/Open3DGC/o3dgcIndexedFaceSet.h ../contrib/Open3DGC/o3dgcIndexedFaceSet.inl ../contrib/Open3DGC/o3dgcSC3DMCDecoder.h ../contrib/Open3DGC/o3dgcSC3DMCDecoder.inl ../contrib/Open3DGC/o3dgcSC3DMCEncodeParams.h ../contrib/Open3DGC/o3dgcSC3DMCEncoder.h ../contrib/Open3DGC/o3dgcSC3DMCEncoder.inl ../contrib/Open3DGC/o3dgcTimer.h ../contrib/Open3DGC/o3dgcTools.cpp ../contrib/Open3DGC/o3dgcTriangleFans.cpp ../contrib/Open3DGC/o3dgcTriangleFans.h ../contrib/Open3DGC/o3dgcTriangleListDecoder.h ../contrib/Open3DGC/o3dgcTriangleListDecoder.inl ../contrib/Open3DGC/o3dgcTriangleListEncoder.h ../contrib/Open3DGC/o3dgcTriangleListEncoder.inl ../contrib/Open3DGC/o3dgcVector.h ../contrib/Open3DGC/o3dgcVector.inl ) SOURCE_GROUP( open3dgc FILES ${open3dgc_SRCS}) # Check dependencies for glTF importer with Open3DGC-compression. # RT-extensions is used in "contrib/Open3DGC/o3dgcTimer.h" for collecting statistics. Pointed file # has implementation for different platforms: WIN32, __MACH__ and other ("else" block). FIND_PACKAGE(RT QUIET) IF (RT_FOUND OR MSVC) SET( ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC 1 ) ADD_DEFINITIONS( -DASSIMP_IMPORTER_GLTF_USE_OPEN3DGC=1 ) ELSE () SET (open3dgc_SRCS "") MESSAGE (INFO " RT-extension not found. glTF import/export will be built without Open3DGC-compression.") #!TODO: off course is better to remove statistics timers from o3dgc codec. Or propose to choose what to use. ENDIF () INCLUDE_DIRECTORIES( "../contrib/rapidjson/include" ) INCLUDE_DIRECTORIES( "../contrib" ) # VC2010 fixes if(MSVC10) option( VC10_STDINT_FIX "Fix for VC10 Compiler regarding pstdint.h redefinition errors" OFF ) if( VC10_STDINT_FIX ) ADD_DEFINITIONS( -D_STDINT ) endif( VC10_STDINT_FIX ) endif(MSVC10) ADD_DEFINITIONS( -DASSIMP_BUILD_DLL_EXPORT ) if ( MSVC ) ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS ) ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS ) endif ( MSVC ) if (UNZIP_FOUND) SET (unzip_compile_SRCS "") else (UNZIP_FOUND) SET (unzip_compile_SRCS ${unzip_SRCS}) INCLUDE_DIRECTORIES( "../contrib/unzip/" ) endif (UNZIP_FOUND) MESSAGE(STATUS "Enabled formats:${ASSIMP_IMPORTERS_ENABLED}") MESSAGE(STATUS "Disabled formats:${ASSIMP_IMPORTERS_DISABLED}") SET( assimp_src # Assimp Files ${Core_SRCS} ${Common_SRCS} ${Logging_SRCS} ${Exporter_SRCS} ${PostProcessing_SRCS} ${MaterialSystem_SRCS} ${STEPParser_SRCS} # ${Step_SRCS} check if we need a different approach # Model Support ${ASSIMP_LOADER_SRCS} # Third-party libraries ${IrrXML_SRCS} ${unzip_compile_SRCS} ${Poly2Tri_SRCS} ${Clipper_SRCS} ${openddl_parser_SRCS} ${open3dgc_SRCS} ${ziplib_SRCS} # Necessary to show the headers in the project when using the VC++ generator: ${PUBLIC_HEADERS} ${COMPILER_HEADERS} ) ADD_DEFINITIONS( -DOPENDDLPARSER_BUILD ) INCLUDE_DIRECTORIES( ${IRRXML_INCLUDE_DIR} ../contrib/openddlparser/include ) IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) SET( assimp_src ${assimp_src} ${C4D_SRCS}) INCLUDE_DIRECTORIES(${C4D_INCLUDES}) ENDIF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) ADD_LIBRARY( assimp ${assimp_src} ) ADD_LIBRARY(assimp::assimp ALIAS assimp) TARGET_INCLUDE_DIRECTORIES ( assimp PUBLIC $ $ $ ) TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES} ${OPENDDL_PARSER_LIBRARIES} ${IRRXML_LIBRARY} ) if(ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM) set(ASSIMP_ANDROID_JNIIOSYSTEM_PATH port/AndroidJNI) add_subdirectory(../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/ ../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/) target_link_libraries(assimp android_jniiosystem) endif(ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM) IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) TARGET_LINK_LIBRARIES(assimp optimized ${C4D_RELEASE_LIBRARIES}) TARGET_LINK_LIBRARIES(assimp debug ${C4D_DEBUG_LIBRARIES}) TARGET_LINK_LIBRARIES(assimp ${C4D_EXTRA_LIBRARIES}) ENDIF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) if( MSVC ) # in order to prevent DLL hell, each of the DLLs have to be suffixed with the major version and msvc prefix if( MSVC70 OR MSVC71 ) set(MSVC_PREFIX "vc70") elseif( MSVC80 ) set(MSVC_PREFIX "vc80") elseif( MSVC90 ) set(MSVC_PREFIX "vc90") elseif( MSVC10 ) set(MSVC_PREFIX "vc100") elseif( MSVC11 ) set(MSVC_PREFIX "vc110") elseif( MSVC12 ) set(MSVC_PREFIX "vc120") elseif( MSVC14 ) set(MSVC_PREFIX "vc140") else() set(MSVC_PREFIX "vc150") endif() set(LIBRARY_SUFFIX "${ASSIMP_LIBRARY_SUFFIX}-${MSVC_PREFIX}-mt" CACHE STRING "the suffix for the assimp windows library") endif() if (${CMAKE_SYSTEM_NAME} MATCHES "WindowsStore") set(WindowsStore TRUE) endif() SET_TARGET_PROPERTIES( assimp PROPERTIES VERSION ${ASSIMP_VERSION} SOVERSION ${ASSIMP_SOVERSION} # use full version OUTPUT_NAME assimp${LIBRARY_SUFFIX} ) if (APPLE) SET_TARGET_PROPERTIES( assimp PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${ASSIMP_LIB_INSTALL_DIR}" ) if (BUILD_FRAMEWORK) SET_TARGET_PROPERTIES( assimp PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION C MACOSX_FRAMEWORK_IDENTIFIER net.sf.assimp PUBLIC_HEADER "${PUBLIC_HEADERS}" ) # PUBLIC_HEADER option does not support directory structure creation # add ./Compiler/*.h to assimp.framework via copy command ADD_CUSTOM_COMMAND(TARGET assimp POST_BUILD COMMAND "${CMAKE_COMMAND}" -E copy_directory "../${HEADER_PATH}/Compiler" assimp.framework/Headers/Compiler COMMENT "Copying public ./Compiler/ header files to framework bundle's Headers/Compiler/") ENDIF(BUILD_FRAMEWORK) ENDIF(APPLE) # Build against external unzip, or add ../contrib/unzip so # assimp can #include "unzip.h" if (UNZIP_FOUND) INCLUDE_DIRECTORIES(${UNZIP_INCLUDE_DIRS}) TARGET_LINK_LIBRARIES(assimp ${UNZIP_LIBRARIES}) else (UNZIP_FOUND) INCLUDE_DIRECTORIES("../") endif (UNZIP_FOUND) # Add RT-extension library for glTF importer with Open3DGC-compression. IF (RT_FOUND AND ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC) TARGET_LINK_LIBRARIES(assimp ${RT_LIBRARY}) ENDIF (RT_FOUND AND ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC) INSTALL( TARGETS assimp LIBRARY DESTINATION ${ASSIMP_LIB_INSTALL_DIR} ARCHIVE DESTINATION ${ASSIMP_LIB_INSTALL_DIR} RUNTIME DESTINATION ${ASSIMP_BIN_INSTALL_DIR} FRAMEWORK DESTINATION ${ASSIMP_LIB_INSTALL_DIR} COMPONENT ${LIBASSIMP_COMPONENT}) INSTALL( FILES ${PUBLIC_HEADERS} DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp COMPONENT assimp-dev) INSTALL( FILES ${COMPILER_HEADERS} DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp/Compiler COMPONENT assimp-dev) if (ASSIMP_ANDROID_JNIIOSYSTEM) INSTALL(FILES ${HEADER_PATH}/${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/AndroidJNIIOSystem.h DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR} COMPONENT assimp-dev) ENDIF(ASSIMP_ANDROID_JNIIOSYSTEM) if(MSVC AND ASSIMP_INSTALL_PDB) IF(CMAKE_GENERATOR MATCHES "^Visual Studio") install(FILES ${Assimp_BINARY_DIR}/code/Debug/assimp${LIBRARY_SUFFIX}${CMAKE_DEBUG_POSTFIX}.pdb DESTINATION ${ASSIMP_LIB_INSTALL_DIR} CONFIGURATIONS Debug ) install(FILES ${Assimp_BINARY_DIR}/code/RelWithDebInfo/assimp${LIBRARY_SUFFIX}.pdb DESTINATION ${ASSIMP_LIB_INSTALL_DIR} CONFIGURATIONS RelWithDebInfo ) ELSE() install(FILES ${Assimp_BINARY_DIR}/code/assimp${LIBRARY_SUFFIX}${CMAKE_DEBUG_POSTFIX}.pdb DESTINATION ${ASSIMP_LIB_INSTALL_DIR} CONFIGURATIONS Debug ) install(FILES ${Assimp_BINARY_DIR}/code/assimp${LIBRARY_SUFFIX}.pdb DESTINATION ${ASSIMP_LIB_INSTALL_DIR} CONFIGURATIONS RelWithDebInfo ) ENDIF() ENDIF () if (ASSIMP_COVERALLS) include(Coveralls) set(COVERAGE_SRCS ${assimp_src} ${TEST_SRCS} ) # Create the coveralls target. coveralls_setup( "${COVERAGE_SRCS}" # The source files. ON # If we should upload. "${PROJECT_SOURCE_DIR}/cmake-modules/") # (Optional) Alternate project cmake module path. ENDIF()