#
# 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)
#

# Modified by Lasse Oorni and Yao Wei Tjong for Urho3D

if (MINGW)
    # The IFCReaderGen.cpp.obj has too many sections in DEBUG configuration build
    # Since GCC does not support /bigobj compiler flags as in MSVC, we use optimization flags to reduce the object file size
    set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O1")
    set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O1")
endif ()

INCLUDE_DIRECTORIES( include )
INCLUDE_DIRECTORIES( code/BoostWorkaround )
INCLUDE_DIRECTORIES( contrib/unzip )
ADD_DEFINITIONS( -DASSIMP_BUILD_BOOST_WORKAROUND )

SET( HEADER_PATH include/assimp )

SET( COMPILER_HEADERS
	${HEADER_PATH}/Compiler/pushpack1.h
	${HEADER_PATH}/Compiler/poppack1.h
	code/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
	${HEADER_PATH}/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}/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
)

SET( Core_SRCS
	code/Assimp.cpp
	code/AssimpPCH.cpp
	code/AssimpPCH.h
)

SET( Boost_SRCS
	code/BoostWorkaround/boost/math/common_factor_rt.hpp
	code/BoostWorkaround/boost/foreach.hpp
	code/BoostWorkaround/boost/format.hpp
	code/BoostWorkaround/boost/scoped_array.hpp
	code/BoostWorkaround/boost/scoped_ptr.hpp
	code/BoostWorkaround/boost/shared_array.hpp
	code/BoostWorkaround/boost/shared_ptr.hpp
	code/BoostWorkaround/boost/make_shared.hpp
	code/BoostWorkaround/boost/static_assert.hpp
	code/BoostWorkaround/boost/tuple/tuple.hpp
)
SOURCE_GROUP(Boost FILES ${Boost_SRCS})

SET( Logging_SRCS
	${HEADER_PATH}/DefaultLogger.hpp
	${HEADER_PATH}/IOStream.hpp
	${HEADER_PATH}/LogStream.hpp
	${HEADER_PATH}/Logger.hpp
	${HEADER_PATH}/NullLogger.hpp
	code/Win32DebugLogStream.h
	code/DefaultLogger.cpp
	code/FileLogStream.h
)
SOURCE_GROUP(Logging FILES ${Logging_SRCS})

SET( Common_SRCS
	code/fast_atof.h
	code/qnan.h
	code/BaseImporter.cpp
	code/BaseImporter.h
	code/BaseProcess.cpp
	code/BaseProcess.h
	code/Importer.h
	code/ScenePrivate.h
	code/PostStepRegistry.cpp
	code/ImporterRegistry.cpp
	code/ByteSwap.h
	code/DefaultProgressHandler.h
	code/DefaultIOStream.cpp
	code/DefaultIOStream.h
	code/DefaultIOSystem.cpp
	code/DefaultIOSystem.h
	code/CInterfaceIOWrapper.h
	code/Hash.h
	code/Importer.cpp
	code/IFF.h
	code/ParsingUtils.h
	code/StdOStreamLogStream.h
	code/StreamReader.h
	code/StringComparison.h
	code/SGSpatialSort.cpp
	code/SGSpatialSort.h
	code/VertexTriangleAdjacency.cpp
	code/VertexTriangleAdjacency.h
	code/GenericProperty.h
	code/SpatialSort.cpp
	code/SpatialSort.h
	code/SceneCombiner.cpp
	code/SceneCombiner.h
	code/ScenePreprocessor.cpp
	code/ScenePreprocessor.h
	code/SkeletonMeshBuilder.cpp
	code/SkeletonMeshBuilder.h
	code/SplitByBoneCountProcess.cpp
	code/SplitByBoneCountProcess.h
	code/SmoothingGroups.h
	code/StandardShapes.cpp
	code/StandardShapes.h
	code/TargetAnimation.cpp
	code/TargetAnimation.h
	code/RemoveComments.cpp
	code/RemoveComments.h
	code/Subdivision.cpp
	code/Subdivision.h
	code/Vertex.h
	code/LineSplitter.h
	code/TinyFormatter.h
	code/Profiler.h
	code/LogAux.h
	code/Bitmap.cpp
	code/Bitmap.h
)
SOURCE_GROUP(Common FILES ${Common_SRCS})

SET( 3DS_SRCS
	code/3DSConverter.cpp
	code/3DSHelper.h
	code/3DSLoader.cpp
	code/3DSLoader.h
)
SOURCE_GROUP(3DS FILES ${3DS_SRCS})

SET( AC_SRCS
	code/ACLoader.cpp
	code/ACLoader.h
)
SOURCE_GROUP( AC FILES ${AC_SRCS})

SET( ASE_SRCS
	code/ASELoader.cpp
	code/ASELoader.h
	code/ASEParser.cpp
	code/ASEParser.h
)
SOURCE_GROUP( ASE FILES ${ASE_SRCS})

SET( B3D_SRCS
	code/B3DImporter.cpp
	code/B3DImporter.h
)
SOURCE_GROUP( B3D FILES ${B3D_SRCS})

SET( BVH_SRCS
	code/BVHLoader.cpp
	code/BVHLoader.h
)
SOURCE_GROUP( BVH FILES ${BVH_SRCS})

SET( Collada_SRCS
	code/ColladaHelper.h
	code/ColladaLoader.cpp
	code/ColladaLoader.h
	code/ColladaParser.cpp
	code/ColladaParser.h
	code/ColladaExporter.h
	code/ColladaExporter.cpp
)
SOURCE_GROUP( Collada FILES ${Collada_SRCS})

SET( DXF_SRCS
	code/DXFLoader.cpp
	code/DXFLoader.h
	code/DXFHelper.h
)
SOURCE_GROUP( DXF FILES ${DXF_SRCS})

SET( CSM_SRCS
	code/CSMLoader.cpp
	code/CSMLoader.h
)
SOURCE_GROUP( CSM FILES ${CSM_SRCS})

SET( HMP_SRCS
	code/HMPFileData.h
	code/HMPLoader.cpp
	code/HMPLoader.h
	code/HalfLifeFileData.h
)
SOURCE_GROUP( HMP FILES ${HMP_SRCS})

SET( Irr_SRCS
	code/IRRLoader.cpp
	code/IRRLoader.h
	code/IRRMeshLoader.cpp
	code/IRRMeshLoader.h
	code/IRRShared.cpp
	code/IRRShared.h
)
SOURCE_GROUP( Irr FILES ${Irr_SRCS})

SET( LWO_SRCS
	code/LWOAnimation.cpp
	code/LWOAnimation.h
	code/LWOBLoader.cpp
	code/LWOFileData.h
	code/LWOLoader.cpp
	code/LWOLoader.h
	code/LWOMaterial.cpp
)
SOURCE_GROUP( LWO FILES ${LWO_SRCS})

SET( LWS_SRCS
	code/LWSLoader.cpp
	code/LWSLoader.h
)
SOURCE_GROUP( LWS FILES ${LWS_SRCS})

SET ( M3_SRCS
	code/M3Importer.cpp
	code/M3Importer.h
)
SOURCE_GROUP( M3 FILES ${M3_SRCS} )

SET( MD2_SRCS
	code/MD2FileData.h
	code/MD2Loader.cpp
	code/MD2Loader.h
	code/MD2NormalTable.h
)
SOURCE_GROUP( MD2 FILES ${MD2_SRCS})

SET( MD3_SRCS
	code/MD3FileData.h
	code/MD3Loader.cpp
	code/MD3Loader.h
)
SOURCE_GROUP( MD3 FILES ${MD3_SRCS})

SET( MD5_SRCS
	code/MD5Loader.cpp
	code/MD5Loader.h
	code/MD5Parser.cpp
	code/MD5Parser.h
)
SOURCE_GROUP( MD5 FILES ${MD5_SRCS})

SET( MDC_SRCS
	code/MDCFileData.h
	code/MDCLoader.cpp
	code/MDCLoader.h
	code/MDCNormalTable.h
)
SOURCE_GROUP( MDC FILES ${MDC_SRCS})

SET( MDL_SRCS
	code/MDLDefaultColorMap.h
	code/MDLFileData.h
	code/MDLLoader.cpp
	code/MDLLoader.h
	code/MDLMaterialLoader.cpp
)
SOURCE_GROUP( MDL FILES ${MDL_SRCS})

SET( MaterialSystem_SRCS
	code/MaterialSystem.cpp
	code/MaterialSystem.h
)
SOURCE_GROUP( MaterialSystem FILES ${MaterialSystem_SRCS})

SET( NFF_SRCS
	code/NFFLoader.cpp
	code/NFFLoader.h
)
SOURCE_GROUP( NFF FILES ${NFF_SRCS})

SET( NDO_SRCS
	code/NDOLoader.cpp
	code/NDOLoader.h
)
SOURCE_GROUP( NDO FILES ${NDO_SRCS})

SET( OFFFormat_SRCS
	code/OFFLoader.cpp
	code/OFFLoader.h
)
SOURCE_GROUP( OFFFormat FILES ${OFFFormat_SRCS})

SET( Obj_SRCS
	code/ObjFileData.h
	code/ObjFileImporter.cpp
	code/ObjFileImporter.h
	code/ObjFileMtlImporter.cpp
	code/ObjFileMtlImporter.h
	code/ObjFileParser.cpp
	code/ObjFileParser.h
	code/ObjTools.h
	code/ObjExporter.h
	code/ObjExporter.cpp
)
SOURCE_GROUP( Obj FILES ${Obj_SRCS})

SET( Ogre_SRCS
	code/OgreImporter.h
	code/OgreStructs.h
	code/OgreParsingUtils.h
	code/OgreBinarySerializer.h
	code/OgreXmlSerializer.h
	code/OgreImporter.cpp
	code/OgreStructs.cpp
	code/OgreBinarySerializer.cpp
	code/OgreXmlSerializer.cpp
	code/OgreMaterial.cpp
)
SOURCE_GROUP( Ogre FILES ${Ogre_SRCS})

SET( Ply_SRCS
	code/PlyLoader.cpp
	code/PlyLoader.h
	code/PlyParser.cpp
	code/PlyParser.h
	code/PlyExporter.cpp
	code/PlyExporter.h
)
SOURCE_GROUP( Ply FILES ${Ply_SRCS})

SET(MS3D_SRCS
	code/MS3DLoader.cpp
	code/MS3DLoader.h
)
SOURCE_GROUP( MS3D FILES ${MS3D_SRCS})

SET(COB_SRCS
	code/COBLoader.cpp
	code/COBLoader.h
	code/COBScene.h
)
SOURCE_GROUP( COB FILES ${COB_SRCS})

SET(BLENDER_SRCS
	code/BlenderBMesh.cpp
	code/BlenderBMesh.h
	code/BlenderLoader.cpp
	code/BlenderLoader.h
	code/BlenderDNA.cpp
	code/BlenderDNA.h
	code/BlenderDNA.inl
	code/BlenderScene.cpp
	code/BlenderScene.h
	code/BlenderSceneGen.h
	code/BlenderTessellator.cpp
	code/BlenderTessellator.h
	code/BlenderIntermediate.h
	code/BlenderModifier.h
	code/BlenderModifier.cpp
)
SOURCE_GROUP( BLENDER FILES ${BLENDER_SRCS})

SET(IFC_SRCS
	code/IFCLoader.cpp
	code/IFCLoader.h
	code/IFCReaderGen.cpp
	code/IFCReaderGen.h
	code/IFCUtil.h
	code/IFCUtil.cpp
	code/IFCGeometry.cpp
	code/IFCMaterial.cpp
	code/IFCProfile.cpp
	code/IFCCurve.cpp
	code/IFCBoolean.cpp
	code/IFCOpenings.cpp
	code/STEPFile.h
	code/STEPFileReader.h
	code/STEPFileReader.cpp
	code/STEPFileEncoding.h
	code/STEPFileEncoding.cpp
)
SOURCE_GROUP( IFC FILES ${IFC_SRCS})

SET( XGL_SRCS
	code/XGLLoader.cpp
	code/XGLLoader.h
)
SOURCE_GROUP( XGL FILES ${XGL_SRCS})

SET(FBX_SRCS
	code/FBXImporter.cpp
	code/FBXCompileConfig.h
	code/FBXImporter.h
	code/FBXParser.cpp
	code/FBXParser.h
	code/FBXTokenizer.cpp
	code/FBXTokenizer.h
	code/FBXImportSettings.h
	code/FBXConverter.h
	code/FBXConverter.cpp
	code/FBXUtil.h
	code/FBXUtil.cpp
	code/FBXDocument.h
	code/FBXDocument.cpp
	code/FBXProperties.h
	code/FBXProperties.cpp
	code/FBXMeshGeometry.cpp
	code/FBXMaterial.cpp
	code/FBXModel.cpp
	code/FBXAnimation.cpp
	code/FBXNodeAttribute.cpp
	code/FBXDeformer.cpp
	code/FBXBinaryTokenizer.cpp
	code/FBXDocumentUtil.cpp
)
SOURCE_GROUP( FBX FILES ${FBX_SRCS})

SET( PostProcessing_SRCS
	code/CalcTangentsProcess.cpp
	code/CalcTangentsProcess.h
	code/ComputeUVMappingProcess.cpp
	code/ComputeUVMappingProcess.h
	code/ConvertToLHProcess.cpp
	code/ConvertToLHProcess.h
	code/FindDegenerates.cpp
	code/FindDegenerates.h
	code/FindInstancesProcess.cpp
	code/FindInstancesProcess.h
	code/FindInvalidDataProcess.cpp
	code/FindInvalidDataProcess.h
	code/FixNormalsStep.cpp
	code/FixNormalsStep.h
	code/GenFaceNormalsProcess.cpp
	code/GenFaceNormalsProcess.h
	code/GenVertexNormalsProcess.cpp
	code/GenVertexNormalsProcess.h
	code/PretransformVertices.cpp
	code/PretransformVertices.h
	code/ImproveCacheLocality.cpp
	code/ImproveCacheLocality.h
	code/JoinVerticesProcess.cpp
	code/JoinVerticesProcess.h
	code/LimitBoneWeightsProcess.cpp
	code/LimitBoneWeightsProcess.h
	code/RemoveRedundantMaterials.cpp
	code/RemoveRedundantMaterials.h
	code/RemoveVCProcess.cpp
	code/RemoveVCProcess.h
	code/SortByPTypeProcess.cpp
	code/SortByPTypeProcess.h
	code/SplitLargeMeshes.cpp
	code/SplitLargeMeshes.h
	code/TerragenLoader.cpp
	code/TerragenLoader.h
	code/TextureTransform.cpp
	code/TextureTransform.h
	code/TriangulateProcess.cpp
	code/TriangulateProcess.h
	code/ValidateDataStructure.cpp
	code/ValidateDataStructure.h
	code/OptimizeGraph.cpp
	code/OptimizeGraph.h
	code/OptimizeMeshes.cpp
	code/OptimizeMeshes.h
	code/DeboneProcess.cpp
	code/DeboneProcess.h
	code/ProcessHelper.h
	code/ProcessHelper.cpp
	code/PolyTools.h
	code/MakeVerboseFormat.cpp
	code/MakeVerboseFormat.h
)
SOURCE_GROUP( PostProcessing FILES ${PostProcessing_SRCS})

SET( Q3D_SRCS
	code/Q3DLoader.cpp
	code/Q3DLoader.h
)
SOURCE_GROUP( Q3D FILES ${Q3D_SRCS})

SET( Q3BSP_SRCS
	code/Q3BSPFileData.h
	code/Q3BSPFileParser.h
	code/Q3BSPFileParser.cpp
	code/Q3BSPFileImporter.h
	code/Q3BSPFileImporter.cpp
	code/Q3BSPZipArchive.h
	code/Q3BSPZipArchive.cpp
)
SOURCE_GROUP( Q3BSP FILES ${Q3BSP_SRCS})

SET( Raw_SRCS
	code/RawLoader.cpp
	code/RawLoader.h
)
SOURCE_GROUP( Raw FILES ${Raw_SRCS})

SET( SMD_SRCS
	code/SMDLoader.cpp
	code/SMDLoader.h
)
SOURCE_GROUP( SMD FILES ${SMD_SRCS})

SET( STL_SRCS
	code/STLLoader.cpp
	code/STLLoader.h
	code/STLExporter.h
	code/STLExporter.cpp
)
SOURCE_GROUP( STL FILES ${STL_SRCS})

SET( Unreal_SRCS
	code/UnrealLoader.cpp
	code/UnrealLoader.h
)
SOURCE_GROUP( Unreal FILES ${Unreal_SRCS})

SET( XFile_SRCS
	code/XFileHelper.h
	code/XFileImporter.cpp
	code/XFileImporter.h
	code/XFileParser.cpp
	code/XFileParser.h
)
SOURCE_GROUP( XFile FILES ${XFile_SRCS})

SET( Exporter_SRCS
	code/Exporter.cpp
	code/AssimpCExport.cpp
	code/BlobIOSystem.h
)
SOURCE_GROUP( Exporter FILES ${Exporter_SRCS})

SET( Extra_SRCS
	code/MD4FileData.h
)
SOURCE_GROUP( Extra FILES ${Extra_SRCS})

SET( IrrXML_SRCS
	code/irrXMLWrapper.h
	contrib/irrXML/CXMLReaderImpl.h
	contrib/irrXML/heapsort.h
	contrib/irrXML/irrArray.h
	contrib/irrXML/irrString.h
	contrib/irrXML/irrTypes.h
	contrib/irrXML/irrXML.cpp
	contrib/irrXML/irrXML.h
)
SOURCE_GROUP( IrrXML FILES ${IrrXML_SRCS})

SET( ConvertUTF_SRCS
	contrib/ConvertUTF/ConvertUTF.h
	contrib/ConvertUTF/ConvertUTF.c
)
SOURCE_GROUP( ConvertUTF FILES ${ConvertUTF_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( zlib_SRCS
	contrib/zlib/adler32.c
	contrib/zlib/compress.c
	contrib/zlib/crc32.c
	contrib/zlib/crc32.h
	contrib/zlib/deflate.c
	contrib/zlib/deflate.h
#	contrib/zlib/gzclose.c
#	contrib/zlib/gzguts.h
#	contrib/zlib/gzlib.c
#	contrib/zlib/gzread.c
#	contrib/zlib/gzwrite.c
	contrib/zlib/infback.c
	contrib/zlib/inffast.c
	contrib/zlib/inffast.h
	contrib/zlib/inffixed.h
	contrib/zlib/inflate.c
	contrib/zlib/inflate.h
	contrib/zlib/inftrees.c
	contrib/zlib/inftrees.h
	contrib/zlib/trees.c
	contrib/zlib/trees.h
	contrib/zlib/zconf.h
	contrib/zlib/zlib.h
	contrib/zlib/zutil.c
	contrib/zlib/zutil.h
)
SOURCE_GROUP( zlib FILES ${zlib_SRCS})

if ( MSVC80 OR MSVC90 OR MSVC10 )
	ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS )
	ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS )
endif ( MSVC80 OR MSVC90 OR MSVC10 )

SET( SOURCE_FILES
	# Assimp Files
	${Core_SRCS}
	${Common_SRCS}
	${Logging_SRCS}
	${Exporter_SRCS}
	${PostProcessing_SRCS}

	# Model Support
	${3DS_SRCS}
	${AC_SRCS}
	${ASE_SRCS}
	${B3D_SRCS}
	${BVH_SRCS}
	${Collada_SRCS}
	${DXF_SRCS}
	${CSM_SRCS}
	${HMP_SRCS}
	${Irr_SRCS}
	${LWO_SRCS}
	${LWS_SRCS}
	${M3_SRCS}
	${MD2_SRCS}
	${MD3_SRCS}
	${MD5_SRCS}
	${MDC_SRCS}
	${MDL_SRCS}
	${MaterialSystem_SRCS}
	${NFF_SRCS}
	${OFFFormat_SRCS}
	${Obj_SRCS}
	${Ogre_SRCS}
	${Ply_SRCS}
	${Q3D_SRCS}
	${Q3BSP_SRCS}
	${Raw_SRCS}
	${SMD_SRCS}
	${STL_SRCS}
	${Unreal_SRCS}
	${XFile_SRCS}
	${Extra_SRCS}
	${MS3D_SRCS}
	${COB_SRCS}
	${BLENDER_SRCS}
	${NDO_SRCS}
	${IFC_SRCS}
	${XGL_SRCS}
	${FBX_SRCS}
)

SET( CONTRIB_FILES
	# Third-party libraries
	${IrrXML_SRCS}
	${ConvertUTF_SRCS}
	${unzip_SRCS}
	${zlib_SRCS}
	${Poly2Tri_SRCS}
	${Clipper_SRCS}
	# Necessary to show the headers in the project when using the VC++ generator:
	${Boost_SRCS}
)

if (MSVC)
    foreach(FILE ${SOURCE_FILES})
        if (${FILE} MATCHES "[A-Za-z0-9 _/]*[.]cpp")
            if (${FILE} MATCHES "AssimpPCH.cpp$")
                set_source_files_properties(${FILE} PROPERTIES COMPILE_FLAGS "/YcAssimpPCH.h")
            else ()
                set_source_files_properties(${FILE} PROPERTIES COMPILE_FLAGS "/YuAssimpPCH.h")
            endif ()
        endif ()
    endforeach ()
endif ()

set (TARGET_NAME Assimp)
list (APPEND SOURCE_FILES ${CONTRIB_FILES} ${PUBLIC_HEADERS} ${COMPILER_HEADERS})
setup_library ()
