# Open Asset Import Library (assimp) # ---------------------------------------------------------------------- # # Copyright (c) 2006-2017, 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}/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}/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 ) 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 fast_atof.h qnan.h BaseImporter.cpp BaseImporter.h BaseProcess.cpp BaseProcess.h Importer.h ScenePrivate.h PostStepRegistry.cpp ImporterRegistry.cpp ByteSwapper.h DefaultProgressHandler.h DefaultIOStream.cpp DefaultIOSystem.cpp CInterfaceIOWrapper.cpp CInterfaceIOWrapper.h Hash.h Importer.cpp IFF.h MemoryIOWrapper.h ParsingUtils.h StreamReader.h StreamWriter.h StringComparison.h StringUtils.h SGSpatialSort.cpp SGSpatialSort.h VertexTriangleAdjacency.cpp VertexTriangleAdjacency.h GenericProperty.h SpatialSort.cpp SpatialSort.h SceneCombiner.cpp ScenePreprocessor.cpp ScenePreprocessor.h SkeletonMeshBuilder.cpp SkeletonMeshBuilder.h SplitByBoneCountProcess.cpp SplitByBoneCountProcess.h SmoothingGroups.h StandardShapes.cpp StandardShapes.h TargetAnimation.cpp TargetAnimation.h RemoveComments.cpp RemoveComments.h Subdivision.cpp Subdivision.h scene.cpp Vertex.h LineSplitter.h TinyFormatter.h Profiler.h LogAux.h Bitmap.cpp Bitmap.h XMLTools.h Version.cpp IOStreamBuffer.h CreateAnimMesh.h CreateAnimMesh.cpp ) SOURCE_GROUP(Common FILES ${Common_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) OPTION(ASSIMP_BUILD_${name}_IMPORTER "build the ${name} importer" ${ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT}) IF(ASSIMP_BUILD_${name}_IMPORTER) 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 ) ADD_ASSIMP_IMPORTER( IFC IFCLoader.cpp IFCLoader.h IFCReaderGen1.cpp IFCReaderGen2.cpp IFCReaderGen.h IFCUtil.h IFCUtil.cpp IFCGeometry.cpp IFCMaterial.cpp IFCProfile.cpp IFCCurve.cpp IFCBoolean.cpp IFCOpenings.cpp STEPFile.h STEPFileReader.h STEPFileReader.cpp STEPFileEncoding.cpp STEPFileEncoding.h ) if (ASSIMP_BUILD_IFC_IMPORTER) if (MSVC) set_source_files_properties(IFCReaderGen1.cpp IFCReaderGen2.cpp PROPERTIES COMPILE_FLAGS "/bigobj") elseif(CMAKE_COMPILER_IS_MINGW) set_source_files_properties(IFCReaderGen1.cpp IFCReaderGen2.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 ) SET( PostProcessing_SRCS CalcTangentsProcess.cpp CalcTangentsProcess.h ComputeUVMappingProcess.cpp ComputeUVMappingProcess.h ConvertToLHProcess.cpp ConvertToLHProcess.h FindDegenerates.cpp FindDegenerates.h FindInstancesProcess.cpp FindInstancesProcess.h FindInvalidDataProcess.cpp FindInvalidDataProcess.h FixNormalsStep.cpp FixNormalsStep.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 ) SOURCE_GROUP( PostProcessing FILES ${PostProcessing_SRCS}) SET( IrrXML_SRCS 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 ) ADD_ASSIMP_IMPORTER( GLTF glTFAsset.h glTFAsset.inl glTFAssetWriter.h glTFAssetWriter.inl glTFImporter.cpp glTFImporter.h glTFExporter.h glTFExporter.cpp ) ADD_ASSIMP_IMPORTER( 3MF D3MFImporter.h D3MFImporter.cpp D3MFOpcPackage.h D3MFOpcPackage.cpp ) ADD_ASSIMP_IMPORTER( MMD MMDCpp14.h MMDImporter.cpp MMDImporter.h MMDPmdParser.h MMDPmxParser.h MMDPmxParser.cpp MMDVmdParser.h ) SET( Step_SRCS StepExporter.h StepExporter.cpp ) SOURCE_GROUP( Step FILES ${Step_SRCS}) SET( Exporter_SRCS Exporter.cpp AssimpCExport.cpp 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 ( 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} ${Step_SRCS} # Model Support ${ASSIMP_LOADER_SRCS} # Third-party libraries ${IrrXML_SRCS} ${unzip_compile_SRCS} ${Poly2Tri_SRCS} ${Clipper_SRCS} ${openddl_parser_SRCS} ${open3dgc_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} ) 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() 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}") endif() # 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} 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) 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 ) 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()