mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +00:00
Added initial behavior for ImageAssets to hold a list of GFX resources of different texture profiles to avoid mem leaks with incorrect-typed usages Added function to ImageAsset to get best-fit asset, allowing for fallbacks if the requested assetID is not found Added function to ShapeAsset to get best-fit asset, allowing for fallbacks if the requested assetID is not found Disabled fields for dynamic and static shadowmap refresh rates Moved noShape model to core/rendering/shapes to place it in a more logical module position Added an include to avoid undefined type compile error and removed unneeded semicolon from zone code Added call to reload probe textures when a reloadTextures call is made Adjusted default directional light shadowmap settings to not be as extreme Added utility function to probe manager to allow any class to request a 'best fit' list of probes that would affect a given location, allowing other classes such as fog or particles to utilize IBL. Also updated probeManager's forward rendering to utilize same function to reduce code duplication. Shifted shape loader code to utilize assimp for loader consistency and testing Changed render bin used for SSAO postfx so it runs at the right time Made Core_Rendering module scan for assets Updated loose file references to a number of assets to follow proper formatting Refactored asset import code to follow a more consistent object heirarchy structure on importing assets, allowing more reliable cross-referencing between inbound items Updated asset import logic for materials/images so that they properly utilize ImageType. Images correctly save out the assigned image type, materials reference the images' type to know what map slot they should be used in. Importer logic also updated to better find-and-add associated images based on type. Cleaned up a bunch of old, outdated code in the asset importer Added initial handling for in-place importing of files without needing to process them through the UI. Added ability to edit module script from RMB context menu if torsion path is set Updated list field code for variable inspector to utilize correct ownerObject field
1318 lines
37 KiB
CMake
1318 lines
37 KiB
CMake
# Open Asset Import Library (assimp)
|
|
# ----------------------------------------------------------------------
|
|
#
|
|
# Copyright (c) 2006-2020, 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 3.0 )
|
|
SET( HEADER_PATH ../include/assimp )
|
|
|
|
if(NOT ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM)
|
|
message(WARNING "Requesting Android JNI I/O-System in non-Android toolchain. Resetting ASSIMP_ANDROID_JNIIOSYSTEM to OFF.")
|
|
set(ASSIMP_ANDROID_JNIIOSYSTEM OFF)
|
|
endif()
|
|
|
|
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}/aabb.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}/commonMetaData.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}/ZipArchiveIOSystem.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}/Exceptional.h
|
|
${HEADER_PATH}/ByteSwapper.h
|
|
)
|
|
|
|
SET( Core_SRCS
|
|
Common/Assimp.cpp
|
|
)
|
|
|
|
IF(MSVC)
|
|
list(APPEND Core_SRCS "res/assimp.rc")
|
|
ENDIF()
|
|
|
|
SET( Logging_SRCS
|
|
${HEADER_PATH}/DefaultLogger.hpp
|
|
${HEADER_PATH}/LogStream.hpp
|
|
${HEADER_PATH}/Logger.hpp
|
|
${HEADER_PATH}/NullLogger.hpp
|
|
Common/Win32DebugLogStream.h
|
|
Common/DefaultLogger.cpp
|
|
Common/FileLogStream.h
|
|
Common/StdOStreamLogStream.h
|
|
)
|
|
SOURCE_GROUP(Logging FILES ${Logging_SRCS})
|
|
|
|
SET( Common_SRCS
|
|
Common/BaseImporter.cpp
|
|
Common/BaseProcess.cpp
|
|
Common/BaseProcess.h
|
|
Common/Importer.h
|
|
Common/ScenePrivate.h
|
|
Common/PostStepRegistry.cpp
|
|
Common/ImporterRegistry.cpp
|
|
Common/DefaultProgressHandler.h
|
|
Common/DefaultIOStream.cpp
|
|
Common/DefaultIOSystem.cpp
|
|
Common/ZipArchiveIOSystem.cpp
|
|
Common/PolyTools.h
|
|
Common/Importer.cpp
|
|
Common/IFF.h
|
|
Common/SGSpatialSort.cpp
|
|
Common/VertexTriangleAdjacency.cpp
|
|
Common/VertexTriangleAdjacency.h
|
|
Common/SpatialSort.cpp
|
|
Common/SceneCombiner.cpp
|
|
Common/ScenePreprocessor.cpp
|
|
Common/ScenePreprocessor.h
|
|
Common/SkeletonMeshBuilder.cpp
|
|
Common/StandardShapes.cpp
|
|
Common/TargetAnimation.cpp
|
|
Common/TargetAnimation.h
|
|
Common/RemoveComments.cpp
|
|
Common/Subdivision.cpp
|
|
Common/scene.cpp
|
|
Common/Bitmap.cpp
|
|
Common/Version.cpp
|
|
Common/CreateAnimMesh.cpp
|
|
Common/simd.h
|
|
Common/simd.cpp
|
|
Common/material.cpp
|
|
)
|
|
SOURCE_GROUP(Common FILES ${Common_SRCS})
|
|
|
|
SET( CApi_SRCS
|
|
CApi/CInterfaceIOWrapper.cpp
|
|
CApi/CInterfaceIOWrapper.h
|
|
)
|
|
SOURCE_GROUP(CApi FILES ${CApi_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
|
|
C4D/C4DImporter.cpp
|
|
C4D/C4DImporter.h
|
|
)
|
|
SOURCE_GROUP( C4D FILES ${C4D_SRCS})
|
|
ENDIF ()
|
|
|
|
# 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 values" TRUE)
|
|
|
|
# macro to add the CMake Option ADD_ASSIMP_IMPORTER_<name> 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}")
|
|
SOURCE_GROUP(${name} FILES ${ARGN})
|
|
ELSE()
|
|
SET(${name}_SRC "")
|
|
SET(ASSIMP_IMPORTERS_DISABLED "${ASSIMP_IMPORTERS_DISABLED} ${name}")
|
|
add_definitions(-DASSIMP_BUILD_NO_${name}_IMPORTER)
|
|
ENDIF()
|
|
ENDMACRO()
|
|
|
|
if (NOT ASSIMP_NO_EXPORT)
|
|
|
|
# if this variable is set to TRUE, the user can manually disable exporters by setting
|
|
# ASSIMP_BUILD_XXX_EXPORTER to FALSE for each exporter
|
|
# if this variable is set to FALSE, the user can manually enable exporters by setting
|
|
# ASSIMP_BUILD_XXX_EXPORTER to TRUE for each exporter
|
|
OPTION(ASSIMP_BUILD_ALL_EXPORTERS_BY_DEFAULT "default value of all ASSIMP_BUILD_XXX_EXPORTER values" TRUE)
|
|
|
|
# macro to add the CMake Option ADD_ASSIMP_IMPORTER_<name> which enables compile of loader
|
|
# this way selective loaders can be compiled (reduces filesize + compile time)
|
|
MACRO(ADD_ASSIMP_EXPORTER name)
|
|
IF (ASSIMP_NO_EXPORT)
|
|
set(ASSIMP_EXPORTER_ENABLED FALSE)
|
|
ELSEIF (ASSIMP_BUILD_ALL_EXPORTERS_BY_DEFAULT)
|
|
set(ASSIMP_EXPORTER_ENABLED TRUE)
|
|
IF (DEFINED ASSIMP_BUILD_${name}_EXPORTER AND NOT ASSIMP_BUILD_${name}_EXPORTER)
|
|
set(ASSIMP_EXPORTER_ENABLED FALSE)
|
|
ENDIF ()
|
|
ELSE ()
|
|
set(ASSIMP_EXPORTER_ENABLED ${ASSIMP_BUILD_${name}_EXPORTER})
|
|
ENDIF ()
|
|
|
|
IF (ASSIMP_EXPORTER_ENABLED)
|
|
SET(ASSIMP_EXPORTERS_ENABLED "${ASSIMP_EXPORTERS_ENABLED} ${name}")
|
|
LIST(APPEND ASSIMP_EXPORTER_SRCS ${ARGN})
|
|
SOURCE_GROUP(${name}_EXPORTER FILES ${ARGN})
|
|
ELSE()
|
|
SET(ASSIMP_EXPORTERS_DISABLED "${ASSIMP_EXPORTERS_DISABLED} ${name}")
|
|
add_definitions(-DASSIMP_BUILD_NO_${name}_EXPORTER)
|
|
ENDIF()
|
|
ENDMACRO()
|
|
|
|
endif()
|
|
|
|
SET(ASSIMP_LOADER_SRCS "")
|
|
SET(ASSIMP_IMPORTERS_ENABLED "") # list of enabled importers
|
|
SET(ASSIMP_IMPORTERS_DISABLED "") # disabled importers list (used to print)
|
|
|
|
SET(ASSIMP_EXPORTER_SRCS "")
|
|
SET(ASSIMP_EXPORTERS_ENABLED "") # list of enabled exporters
|
|
SET(ASSIMP_EXPORTERS_DISABLED "") # disabled exporters list (used to print)
|
|
|
|
ADD_ASSIMP_IMPORTER( AMF
|
|
AMF/AMFImporter.hpp
|
|
AMF/AMFImporter_Macro.hpp
|
|
AMF/AMFImporter_Node.hpp
|
|
AMF/AMFImporter.cpp
|
|
AMF/AMFImporter_Geometry.cpp
|
|
AMF/AMFImporter_Material.cpp
|
|
AMF/AMFImporter_Postprocess.cpp
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( 3DS
|
|
3DS/3DSConverter.cpp
|
|
3DS/3DSHelper.h
|
|
3DS/3DSLoader.cpp
|
|
3DS/3DSLoader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( AC
|
|
AC/ACLoader.cpp
|
|
AC/ACLoader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( ASE
|
|
ASE/ASELoader.cpp
|
|
ASE/ASELoader.h
|
|
ASE/ASEParser.cpp
|
|
ASE/ASEParser.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( ASSBIN
|
|
Assbin/AssbinLoader.h
|
|
Assbin/AssbinLoader.cpp
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( B3D
|
|
B3D/B3DImporter.cpp
|
|
B3D/B3DImporter.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( BVH
|
|
BVH/BVHLoader.cpp
|
|
BVH/BVHLoader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( COLLADA
|
|
Collada/ColladaHelper.cpp
|
|
Collada/ColladaHelper.h
|
|
Collada/ColladaLoader.cpp
|
|
Collada/ColladaLoader.h
|
|
Collada/ColladaParser.cpp
|
|
Collada/ColladaParser.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( DXF
|
|
DXF/DXFLoader.cpp
|
|
DXF/DXFLoader.h
|
|
DXF/DXFHelper.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( CSM
|
|
CSM/CSMLoader.cpp
|
|
CSM/CSMLoader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( HMP
|
|
HMP/HMPFileData.h
|
|
HMP/HMPLoader.cpp
|
|
HMP/HMPLoader.h
|
|
HMP/HalfLifeFileData.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( IRRMESH
|
|
Irr/IRRMeshLoader.cpp
|
|
Irr/IRRMeshLoader.h
|
|
Irr/IRRShared.cpp
|
|
Irr/IRRShared.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( IRR
|
|
Irr/IRRLoader.cpp
|
|
Irr/IRRLoader.h
|
|
Irr/IRRShared.cpp
|
|
Irr/IRRShared.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( LWO
|
|
LWO/LWOAnimation.cpp
|
|
LWO/LWOAnimation.h
|
|
LWO/LWOBLoader.cpp
|
|
LWO/LWOFileData.h
|
|
LWO/LWOLoader.cpp
|
|
LWO/LWOLoader.h
|
|
LWO/LWOMaterial.cpp
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( LWS
|
|
LWS/LWSLoader.cpp
|
|
LWS/LWSLoader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( M3D
|
|
M3D/M3DMaterials.h
|
|
M3D/M3DImporter.h
|
|
M3D/M3DImporter.cpp
|
|
M3D/M3DWrapper.h
|
|
M3D/M3DWrapper.cpp
|
|
M3D/m3d.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( MD2
|
|
MD2/MD2FileData.h
|
|
MD2/MD2Loader.cpp
|
|
MD2/MD2Loader.h
|
|
MD2/MD2NormalTable.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( MD3
|
|
MD3/MD3FileData.h
|
|
MD3/MD3Loader.cpp
|
|
MD3/MD3Loader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( MD5
|
|
MD5/MD5Loader.cpp
|
|
MD5/MD5Loader.h
|
|
MD5/MD5Parser.cpp
|
|
MD5/MD5Parser.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( MDC
|
|
MDC/MDCFileData.h
|
|
MDC/MDCLoader.cpp
|
|
MDC/MDCLoader.h
|
|
MDC/MDCNormalTable.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( MDL
|
|
MDL/MDLDefaultColorMap.h
|
|
MDL/MDLFileData.h
|
|
MDL/MDLLoader.cpp
|
|
MDL/MDLLoader.h
|
|
MDL/MDLMaterialLoader.cpp
|
|
MDL/HalfLife/HalfLifeMDLBaseHeader.h
|
|
MDL/HalfLife/HL1FileData.h
|
|
MDL/HalfLife/HL1MDLLoader.cpp
|
|
MDL/HalfLife/HL1MDLLoader.h
|
|
MDL/HalfLife/HL1ImportDefinitions.h
|
|
MDL/HalfLife/HL1ImportSettings.h
|
|
MDL/HalfLife/HL1MeshTrivert.h
|
|
MDL/HalfLife/LogFunctions.h
|
|
MDL/HalfLife/UniqueNameGenerator.cpp
|
|
MDL/HalfLife/UniqueNameGenerator.h
|
|
)
|
|
|
|
SET( MaterialSystem_SRCS
|
|
Material/MaterialSystem.cpp
|
|
Material/MaterialSystem.h
|
|
)
|
|
SOURCE_GROUP( MaterialSystem FILES ${MaterialSystem_SRCS})
|
|
|
|
ADD_ASSIMP_IMPORTER( NFF
|
|
NFF/NFFLoader.cpp
|
|
NFF/NFFLoader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( NDO
|
|
NDO/NDOLoader.cpp
|
|
NDO/NDOLoader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( OFF
|
|
OFF/OFFLoader.cpp
|
|
OFF/OFFLoader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( OBJ
|
|
Obj/ObjFileData.h
|
|
Obj/ObjFileImporter.cpp
|
|
Obj/ObjFileImporter.h
|
|
Obj/ObjFileMtlImporter.cpp
|
|
Obj/ObjFileMtlImporter.h
|
|
Obj/ObjFileParser.cpp
|
|
Obj/ObjFileParser.h
|
|
Obj/ObjTools.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( OGRE
|
|
Ogre/OgreImporter.h
|
|
Ogre/OgreStructs.h
|
|
Ogre/OgreParsingUtils.h
|
|
Ogre/OgreBinarySerializer.h
|
|
Ogre/OgreXmlSerializer.h
|
|
Ogre/OgreImporter.cpp
|
|
Ogre/OgreStructs.cpp
|
|
Ogre/OgreBinarySerializer.cpp
|
|
Ogre/OgreXmlSerializer.cpp
|
|
Ogre/OgreMaterial.cpp
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( OPENGEX
|
|
OpenGEX/OpenGEXImporter.cpp
|
|
OpenGEX/OpenGEXImporter.h
|
|
OpenGEX/OpenGEXStructs.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( PLY
|
|
Ply/PlyLoader.cpp
|
|
Ply/PlyLoader.h
|
|
Ply/PlyParser.cpp
|
|
Ply/PlyParser.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( MS3D
|
|
MS3D/MS3DLoader.cpp
|
|
MS3D/MS3DLoader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( COB
|
|
COB/COBLoader.cpp
|
|
COB/COBLoader.h
|
|
COB/COBScene.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( BLEND
|
|
Blender/BlenderLoader.cpp
|
|
Blender/BlenderLoader.h
|
|
Blender/BlenderDNA.cpp
|
|
Blender/BlenderDNA.h
|
|
Blender/BlenderDNA.inl
|
|
Blender/BlenderScene.cpp
|
|
Blender/BlenderScene.h
|
|
Blender/BlenderSceneGen.h
|
|
Blender/BlenderIntermediate.h
|
|
Blender/BlenderModifier.h
|
|
Blender/BlenderModifier.cpp
|
|
Blender/BlenderBMesh.h
|
|
Blender/BlenderBMesh.cpp
|
|
Blender/BlenderTessellator.h
|
|
Blender/BlenderTessellator.cpp
|
|
Blender/BlenderCustomData.h
|
|
Blender/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 ()
|
|
|
|
ADD_ASSIMP_IMPORTER( XGL
|
|
XGL/XGLLoader.cpp
|
|
XGL/XGLLoader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( FBX
|
|
FBX/FBXImporter.cpp
|
|
FBX/FBXCompileConfig.h
|
|
FBX/FBXImporter.h
|
|
FBX/FBXParser.cpp
|
|
FBX/FBXParser.h
|
|
FBX/FBXTokenizer.cpp
|
|
FBX/FBXTokenizer.h
|
|
FBX/FBXImportSettings.h
|
|
FBX/FBXConverter.h
|
|
FBX/FBXConverter.cpp
|
|
FBX/FBXUtil.h
|
|
FBX/FBXUtil.cpp
|
|
FBX/FBXDocument.h
|
|
FBX/FBXDocument.cpp
|
|
FBX/FBXProperties.h
|
|
FBX/FBXProperties.cpp
|
|
FBX/FBXMeshGeometry.h
|
|
FBX/FBXMeshGeometry.cpp
|
|
FBX/FBXMaterial.cpp
|
|
FBX/FBXModel.cpp
|
|
FBX/FBXAnimation.cpp
|
|
FBX/FBXNodeAttribute.cpp
|
|
FBX/FBXDeformer.cpp
|
|
FBX/FBXBinaryTokenizer.cpp
|
|
FBX/FBXDocumentUtil.cpp
|
|
FBX/FBXCommon.h
|
|
)
|
|
|
|
if (NOT ASSIMP_NO_EXPORT)
|
|
|
|
ADD_ASSIMP_EXPORTER( OBJ
|
|
Obj/ObjExporter.h
|
|
Obj/ObjExporter.cpp)
|
|
|
|
ADD_ASSIMP_EXPORTER( OPENGEX
|
|
OpenGEX/OpenGEXExporter.cpp
|
|
OpenGEX/OpenGEXExporter.h)
|
|
|
|
ADD_ASSIMP_EXPORTER( PLY
|
|
Ply/PlyExporter.cpp
|
|
Ply/PlyExporter.h)
|
|
|
|
ADD_ASSIMP_EXPORTER( 3DS
|
|
3DS/3DSExporter.h
|
|
3DS/3DSExporter.cpp)
|
|
|
|
ADD_ASSIMP_EXPORTER( ASSBIN
|
|
Assbin/AssbinExporter.h
|
|
Assbin/AssbinExporter.cpp
|
|
Assbin/AssbinFileWriter.h
|
|
Assbin/AssbinFileWriter.cpp)
|
|
|
|
ADD_ASSIMP_EXPORTER( ASSXML
|
|
Assxml/AssxmlExporter.h
|
|
Assxml/AssxmlExporter.cpp
|
|
Assxml/AssxmlFileWriter.h
|
|
Assxml/AssxmlFileWriter.cpp)
|
|
|
|
ADD_ASSIMP_EXPORTER(M3D
|
|
M3D/M3DExporter.h
|
|
M3D/M3DExporter.cpp)
|
|
|
|
ADD_ASSIMP_EXPORTER(COLLADA
|
|
Collada/ColladaExporter.h
|
|
Collada/ColladaExporter.cpp)
|
|
|
|
ADD_ASSIMP_EXPORTER( FBX
|
|
FBX/FBXExporter.h
|
|
FBX/FBXExporter.cpp
|
|
FBX/FBXExportNode.h
|
|
FBX/FBXExportNode.cpp
|
|
FBX/FBXExportProperty.h
|
|
FBX/FBXExportProperty.cpp)
|
|
|
|
ADD_ASSIMP_EXPORTER( STL
|
|
STL/STLExporter.h
|
|
STL/STLExporter.cpp)
|
|
|
|
ADD_ASSIMP_EXPORTER( X
|
|
X/XFileExporter.h
|
|
X/XFileExporter.cpp)
|
|
|
|
ADD_ASSIMP_EXPORTER( X3D
|
|
X3D/X3DExporter.cpp
|
|
X3D/X3DExporter.hpp)
|
|
|
|
ADD_ASSIMP_EXPORTER( GLTF
|
|
glTF/glTFExporter.h
|
|
glTF/glTFExporter.cpp
|
|
glTF2/glTF2Exporter.h
|
|
glTF2/glTF2Exporter.cpp)
|
|
|
|
ADD_ASSIMP_EXPORTER( 3MF
|
|
3MF/D3MFExporter.h
|
|
3MF/D3MFExporter.cpp)
|
|
|
|
ADD_ASSIMP_EXPORTER( ASSJSON
|
|
Assjson/cencode.c
|
|
Assjson/cencode.h
|
|
Assjson/json_exporter.cpp
|
|
Assjson/mesh_splitter.cpp
|
|
Assjson/mesh_splitter.h)
|
|
|
|
ADD_ASSIMP_EXPORTER( STEP
|
|
Step/StepExporter.h
|
|
Step/StepExporter.cpp)
|
|
|
|
endif()
|
|
|
|
SET( PostProcessing_SRCS
|
|
PostProcessing/CalcTangentsProcess.cpp
|
|
PostProcessing/CalcTangentsProcess.h
|
|
PostProcessing/ComputeUVMappingProcess.cpp
|
|
PostProcessing/ComputeUVMappingProcess.h
|
|
PostProcessing/ConvertToLHProcess.cpp
|
|
PostProcessing/ConvertToLHProcess.h
|
|
PostProcessing/EmbedTexturesProcess.cpp
|
|
PostProcessing/EmbedTexturesProcess.h
|
|
PostProcessing/FindDegenerates.cpp
|
|
PostProcessing/FindDegenerates.h
|
|
PostProcessing/FindInstancesProcess.cpp
|
|
PostProcessing/FindInstancesProcess.h
|
|
PostProcessing/FindInvalidDataProcess.cpp
|
|
PostProcessing/FindInvalidDataProcess.h
|
|
PostProcessing/FixNormalsStep.cpp
|
|
PostProcessing/FixNormalsStep.h
|
|
PostProcessing/DropFaceNormalsProcess.cpp
|
|
PostProcessing/DropFaceNormalsProcess.h
|
|
PostProcessing/GenFaceNormalsProcess.cpp
|
|
PostProcessing/GenFaceNormalsProcess.h
|
|
PostProcessing/GenVertexNormalsProcess.cpp
|
|
PostProcessing/GenVertexNormalsProcess.h
|
|
PostProcessing/PretransformVertices.cpp
|
|
PostProcessing/PretransformVertices.h
|
|
PostProcessing/ImproveCacheLocality.cpp
|
|
PostProcessing/ImproveCacheLocality.h
|
|
PostProcessing/JoinVerticesProcess.cpp
|
|
PostProcessing/JoinVerticesProcess.h
|
|
PostProcessing/LimitBoneWeightsProcess.cpp
|
|
PostProcessing/LimitBoneWeightsProcess.h
|
|
PostProcessing/RemoveRedundantMaterials.cpp
|
|
PostProcessing/RemoveRedundantMaterials.h
|
|
PostProcessing/RemoveVCProcess.cpp
|
|
PostProcessing/RemoveVCProcess.h
|
|
PostProcessing/SortByPTypeProcess.cpp
|
|
PostProcessing/SortByPTypeProcess.h
|
|
PostProcessing/SplitLargeMeshes.cpp
|
|
PostProcessing/SplitLargeMeshes.h
|
|
PostProcessing/TextureTransform.cpp
|
|
PostProcessing/TextureTransform.h
|
|
PostProcessing/TriangulateProcess.cpp
|
|
PostProcessing/TriangulateProcess.h
|
|
PostProcessing/ValidateDataStructure.cpp
|
|
PostProcessing/ValidateDataStructure.h
|
|
PostProcessing/OptimizeGraph.cpp
|
|
PostProcessing/OptimizeGraph.h
|
|
PostProcessing/OptimizeMeshes.cpp
|
|
PostProcessing/OptimizeMeshes.h
|
|
PostProcessing/DeboneProcess.cpp
|
|
PostProcessing/DeboneProcess.h
|
|
PostProcessing/ProcessHelper.h
|
|
PostProcessing/ProcessHelper.cpp
|
|
PostProcessing/MakeVerboseFormat.cpp
|
|
PostProcessing/MakeVerboseFormat.h
|
|
PostProcessing/ScaleProcess.cpp
|
|
PostProcessing/ScaleProcess.h
|
|
PostProcessing/ArmaturePopulate.cpp
|
|
PostProcessing/ArmaturePopulate.h
|
|
PostProcessing/GenBoundingBoxesProcess.cpp
|
|
PostProcessing/GenBoundingBoxesProcess.h
|
|
PostProcessing/SplitByBoneCountProcess.cpp
|
|
PostProcessing/SplitByBoneCountProcess.h
|
|
)
|
|
SOURCE_GROUP( PostProcessing FILES ${PostProcessing_SRCS})
|
|
|
|
SET( IrrXML_SRCS ${HEADER_PATH}/irrXMLWrapper.h )
|
|
SOURCE_GROUP( IrrXML FILES ${IrrXML_SRCS})
|
|
|
|
ADD_ASSIMP_IMPORTER( Q3D
|
|
Q3D/Q3DLoader.cpp
|
|
Q3D/Q3DLoader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( Q3BSP
|
|
Q3BSP/Q3BSPFileData.h
|
|
Q3BSP/Q3BSPFileParser.h
|
|
Q3BSP/Q3BSPFileParser.cpp
|
|
Q3BSP/Q3BSPFileImporter.h
|
|
Q3BSP/Q3BSPFileImporter.cpp
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( RAW
|
|
Raw/RawLoader.cpp
|
|
Raw/RawLoader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( SIB
|
|
SIB/SIBImporter.cpp
|
|
SIB/SIBImporter.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( SMD
|
|
SMD/SMDLoader.cpp
|
|
SMD/SMDLoader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( STL
|
|
STL/STLLoader.cpp
|
|
STL/STLLoader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( TERRAGEN
|
|
Terragen/TerragenLoader.cpp
|
|
Terragen/TerragenLoader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( 3D
|
|
Unreal/UnrealLoader.cpp
|
|
Unreal/UnrealLoader.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( X
|
|
X/XFileHelper.h
|
|
X/XFileImporter.cpp
|
|
X/XFileImporter.h
|
|
X/XFileParser.cpp
|
|
X/XFileParser.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( X3D
|
|
X3D/X3DImporter.cpp
|
|
X3D/X3DImporter.hpp
|
|
X3D/X3DImporter_Geometry2D.cpp
|
|
X3D/X3DImporter_Geometry3D.cpp
|
|
X3D/X3DImporter_Group.cpp
|
|
X3D/X3DImporter_Light.cpp
|
|
X3D/X3DImporter_Macro.hpp
|
|
X3D/X3DImporter_Metadata.cpp
|
|
X3D/X3DImporter_Networking.cpp
|
|
X3D/X3DImporter_Node.hpp
|
|
X3D/X3DImporter_Postprocess.cpp
|
|
X3D/X3DImporter_Rendering.cpp
|
|
X3D/X3DImporter_Shape.cpp
|
|
X3D/X3DImporter_Texturing.cpp
|
|
X3D/FIReader.hpp
|
|
X3D/FIReader.cpp
|
|
X3D/X3DVocabulary.cpp
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( GLTF
|
|
glTF/glTFCommon.h
|
|
glTF/glTFCommon.cpp
|
|
glTF/glTFAsset.h
|
|
glTF/glTFAsset.inl
|
|
glTF/glTFAssetWriter.h
|
|
glTF/glTFAssetWriter.inl
|
|
glTF/glTFImporter.cpp
|
|
glTF/glTFImporter.h
|
|
glTF2/glTF2Asset.h
|
|
glTF2/glTF2Asset.inl
|
|
glTF2/glTF2AssetWriter.h
|
|
glTF2/glTF2AssetWriter.inl
|
|
glTF2/glTF2Importer.cpp
|
|
glTF2/glTF2Importer.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( 3MF
|
|
3MF/D3MFImporter.h
|
|
3MF/D3MFImporter.cpp
|
|
3MF/D3MFOpcPackage.h
|
|
3MF/D3MFOpcPackage.cpp
|
|
3MF/3MFXmlTags.h
|
|
)
|
|
|
|
ADD_ASSIMP_IMPORTER( MMD
|
|
MMD/MMDCpp14.h
|
|
MMD/MMDImporter.cpp
|
|
MMD/MMDImporter.h
|
|
MMD/MMDPmdParser.h
|
|
MMD/MMDPmxParser.h
|
|
MMD/MMDPmxParser.cpp
|
|
MMD/MMDVmdParser.h
|
|
)
|
|
|
|
# Workaround for issue #2406 - force problematic large file to be optimized to prevent string table overflow error
|
|
# Used -Os instead of -O2 as previous issues had mentioned, since -Os is roughly speaking -O2, excluding any
|
|
# optimizations that take up extra space. Given that the issue is a string table overflowing, -Os seemed appropriate
|
|
# Also, I'm not positive if both link & compile flags are needed, but this hopefully ensures that the issue should not
|
|
# recur for edge cases such as static builds.
|
|
if ((CMAKE_COMPILER_IS_MINGW) AND (CMAKE_BUILD_TYPE MATCHES Debug))
|
|
message("-- Applying MinGW StepFileGen1.cpp Debug Workaround")
|
|
SET_SOURCE_FILES_PROPERTIES(Importer/StepFile/StepFileGen1.cpp PROPERTIES COMPILE_FLAGS -Os )
|
|
SET_SOURCE_FILES_PROPERTIES(Importer/StepFile/StepFileGen1.cpp PROPERTIES LINK_FLAGS -Os )
|
|
SET_SOURCE_FILES_PROPERTIES(Importer/StepFile/StepFileGen1.cpp PROPERTIES STATIC_LIBRARY_FLAGS -Os )
|
|
endif()
|
|
|
|
ADD_ASSIMP_IMPORTER( STEP
|
|
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
|
|
)
|
|
|
|
if ((NOT ASSIMP_NO_EXPORT) OR (NOT ASSIMP_EXPORTERS_ENABLED STREQUAL ""))
|
|
SET( Exporter_SRCS
|
|
Common/Exporter.cpp
|
|
CApi/AssimpCExport.cpp
|
|
${HEADER_PATH}/BlobIOSystem.h
|
|
)
|
|
SOURCE_GROUP( Exporter FILES ${Exporter_SRCS})
|
|
endif()
|
|
|
|
SET( Extra_SRCS
|
|
MD4FileData.h
|
|
)
|
|
SOURCE_GROUP( Extra FILES ${Extra_SRCS})
|
|
|
|
# irrXML
|
|
IF(HUNTER_ENABLED)
|
|
hunter_add_package(irrXML)
|
|
find_package(irrXML CONFIG REQUIRED)
|
|
ELSE()
|
|
# irrXML already included in contrib directory by parent CMakeLists.txt.
|
|
ENDIF()
|
|
|
|
# utf8
|
|
IF(HUNTER_ENABLED)
|
|
hunter_add_package(utf8)
|
|
find_package(utf8 CONFIG REQUIRED)
|
|
ELSE()
|
|
# utf8 is header-only, so Assimp doesn't need to do anything.
|
|
ENDIF()
|
|
|
|
# polyclipping
|
|
IF(HUNTER_ENABLED)
|
|
hunter_add_package(polyclipping)
|
|
find_package(polyclipping CONFIG REQUIRED)
|
|
ELSE()
|
|
SET( Clipper_SRCS
|
|
../contrib/clipper/clipper.hpp
|
|
../contrib/clipper/clipper.cpp
|
|
)
|
|
SOURCE_GROUP( Contrib\\Clipper FILES ${Clipper_SRCS})
|
|
ENDIF()
|
|
|
|
# poly2tri
|
|
IF(HUNTER_ENABLED)
|
|
hunter_add_package(poly2tri)
|
|
find_package(poly2tri CONFIG REQUIRED)
|
|
ELSE()
|
|
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( Contrib\\Poly2Tri FILES ${Poly2Tri_SRCS})
|
|
ENDIF()
|
|
|
|
# minizip/unzip
|
|
IF(HUNTER_ENABLED)
|
|
hunter_add_package(minizip)
|
|
find_package(minizip CONFIG REQUIRED)
|
|
ELSE()
|
|
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(Contrib\\unzip FILES ${unzip_SRCS})
|
|
ENDIF()
|
|
|
|
# zip (https://github.com/kuba--/zip)
|
|
IF(HUNTER_ENABLED)
|
|
hunter_add_package(zip)
|
|
find_package(zip CONFIG REQUIRED)
|
|
ELSE()
|
|
SET( ziplib_SRCS
|
|
../contrib/zip/src/miniz.h
|
|
../contrib/zip/src/zip.c
|
|
../contrib/zip/src/zip.h
|
|
)
|
|
|
|
# TODO if cmake required version has been updated to >3.12.0, collapse this to the second case only
|
|
if(${CMAKE_VERSION} VERSION_LESS "3.12.0")
|
|
add_definitions(-DMINIZ_USE_UNALIGNED_LOADS_AND_STORES=0)
|
|
else()
|
|
add_compile_definitions(MINIZ_USE_UNALIGNED_LOADS_AND_STORES=0)
|
|
endif()
|
|
|
|
SOURCE_GROUP( ziplib FILES ${ziplib_SRCS} )
|
|
ENDIF()
|
|
|
|
# openddlparser
|
|
IF(HUNTER_ENABLED)
|
|
hunter_add_package(openddlparser)
|
|
find_package(openddlparser CONFIG REQUIRED)
|
|
ELSE()
|
|
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( Contrib\\openddl_parser FILES ${openddl_parser_SRCS})
|
|
ENDIF()
|
|
|
|
# Open3DGC
|
|
IF(HUNTER_ENABLED)
|
|
# Nothing to do, not available in Hunter yet.
|
|
ELSE()
|
|
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( Contrib\\open3dgc FILES ${open3dgc_SRCS})
|
|
ENDIF()
|
|
|
|
# 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 (NOT HUNTER_ENABLED AND (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 " Hunter enabled or 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 ()
|
|
|
|
# RapidJSON
|
|
IF(HUNTER_ENABLED)
|
|
hunter_add_package(RapidJSON)
|
|
find_package(RapidJSON CONFIG REQUIRED)
|
|
ELSE()
|
|
INCLUDE_DIRECTORIES( "../contrib/rapidjson/include" )
|
|
INCLUDE_DIRECTORIES( "../contrib" )
|
|
ENDIF()
|
|
|
|
# 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()
|
|
endif()
|
|
|
|
ADD_DEFINITIONS( -DASSIMP_BUILD_DLL_EXPORT )
|
|
|
|
if ( MSVC )
|
|
ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS )
|
|
ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS )
|
|
endif ()
|
|
|
|
IF(NOT HUNTER_ENABLED)
|
|
if (UNZIP_FOUND)
|
|
SET (unzip_compile_SRCS "")
|
|
else ()
|
|
SET (unzip_compile_SRCS ${unzip_SRCS})
|
|
INCLUDE_DIRECTORIES( "../contrib/unzip/" )
|
|
endif ()
|
|
ENDIF()
|
|
|
|
MESSAGE(STATUS "Enabled importer formats:${ASSIMP_IMPORTERS_ENABLED}")
|
|
MESSAGE(STATUS "Disabled importer formats:${ASSIMP_IMPORTERS_DISABLED}")
|
|
|
|
if (NOT ASSIMP_NO_EXPORT)
|
|
MESSAGE(STATUS "Enabled exporter formats:${ASSIMP_EXPORTERS_ENABLED}")
|
|
MESSAGE(STATUS "Disabled exporter formats:${ASSIMP_EXPORTERS_DISABLED}")
|
|
endif()
|
|
|
|
SOURCE_GROUP( include\\assimp FILES ${PUBLIC_HEADERS} )
|
|
|
|
SET( assimp_src
|
|
# Assimp Files
|
|
${Core_SRCS}
|
|
${CApi_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}
|
|
${ASSIMP_EXPORTER_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 )
|
|
|
|
IF(NOT HUNTER_ENABLED)
|
|
INCLUDE_DIRECTORIES(
|
|
${IRRXML_INCLUDE_DIR}
|
|
../contrib/openddlparser/include
|
|
)
|
|
ENDIF()
|
|
|
|
IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
|
|
SET( assimp_src ${assimp_src} ${C4D_SRCS})
|
|
INCLUDE_DIRECTORIES(${C4D_INCLUDES})
|
|
ENDIF ()
|
|
|
|
ADD_LIBRARY( assimp ${assimp_src} )
|
|
ADD_LIBRARY(assimp::assimp ALIAS assimp)
|
|
|
|
TARGET_INCLUDE_DIRECTORIES ( assimp PUBLIC
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/../include>
|
|
$<INSTALL_INTERFACE:include>
|
|
)
|
|
|
|
IF(HUNTER_ENABLED)
|
|
TARGET_LINK_LIBRARIES(assimp
|
|
PUBLIC
|
|
polyclipping::polyclipping
|
|
irrXML::irrXML
|
|
openddlparser::openddl_parser
|
|
poly2tri::poly2tri
|
|
minizip::minizip
|
|
ZLIB::zlib
|
|
RapidJSON::rapidjson
|
|
utf8::utf8
|
|
zip::zip
|
|
)
|
|
ELSE()
|
|
TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES} ${OPENDDL_PARSER_LIBRARIES} ${IRRXML_LIBRARY} )
|
|
ENDIF()
|
|
|
|
if(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()
|
|
|
|
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 ()
|
|
|
|
if( MSVC )
|
|
# in order to prevent DLL hell, each of the DLLs have to be suffixed with the major version and msvc prefix
|
|
# CMake 3.12 added a variable for this
|
|
if(MSVC_TOOLSET_VERSION)
|
|
set(MSVC_PREFIX "vc${MSVC_TOOLSET_VERSION}")
|
|
else()
|
|
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( MSVC_VERSION LESS 1910)
|
|
set(MSVC_PREFIX "vc140")
|
|
elseif( MSVC_VERSION LESS 1920)
|
|
set(MSVC_PREFIX "vc141")
|
|
elseif( MSVC_VERSION LESS 1930)
|
|
set(MSVC_PREFIX "vc142")
|
|
else()
|
|
MESSAGE(WARNING "unknown msvc version ${MSVC_VERSION}")
|
|
set(MSVC_PREFIX "vc150")
|
|
endif()
|
|
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")
|
|
target_compile_definitions(assimp PUBLIC WindowsStore)
|
|
TARGET_LINK_LIBRARIES(assimp advapi32)
|
|
#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)
|
|
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()
|
|
ENDIF()
|
|
|
|
# Build against external unzip, or add ../contrib/unzip so
|
|
# assimp can #include "unzip.h"
|
|
IF(NOT HUNTER_ENABLED)
|
|
if (UNZIP_FOUND)
|
|
INCLUDE_DIRECTORIES(${UNZIP_INCLUDE_DIRS})
|
|
TARGET_LINK_LIBRARIES(assimp ${UNZIP_LIBRARIES})
|
|
else ()
|
|
INCLUDE_DIRECTORIES("../")
|
|
endif ()
|
|
ENDIF()
|
|
|
|
# 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 ()
|
|
|
|
IF(HUNTER_ENABLED)
|
|
INSTALL( TARGETS assimp
|
|
EXPORT "${TARGETS_EXPORT_NAME}"
|
|
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}
|
|
INCLUDES DESTINATION "include")
|
|
ELSE()
|
|
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})
|
|
ENDIF()
|
|
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()
|
|
|
|
if(MSVC AND ASSIMP_INSTALL_PDB)
|
|
# When only the static library is built, these properties must
|
|
# be set to ensure the static lib .pdb is staged for installation.
|
|
IF(NOT BUILD_SHARED_LIBS)
|
|
SET_TARGET_PROPERTIES( assimp PROPERTIES
|
|
COMPILE_PDB_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
|
COMPILE_PDB_NAME assimp${LIBRARY_SUFFIX}
|
|
COMPILE_PDB_NAME_DEBUG assimp${LIBRARY_SUFFIX}${CMAKE_DEBUG_POSTFIX}
|
|
)
|
|
ENDIF()
|
|
|
|
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()
|