if (USE_INCLUDED_LIBZIP)
	file(GLOB LIBZIP_FILES ./Source/Libraries/libzip/*.c)
endif()

if (USE_INCLUDED_ZLIB)
	file(GLOB ZLIB_FILES ./Source/Libraries/zlib/*.c)
endif()

if(NMR_COM_NATIVE)
	# sources for native COM implementation
	set(SRCS_COM
	${LIBZIP_FILES}
	./Source/Common/Platform/NMR_Platform_COM.cpp
	./Source/Common/Platform/NMR_ExportStream_COM.cpp
	./Source/Common/Platform/NMR_ImportStream_COM.cpp
	)
else()
	# sources for COM emulation
	set(SRCS_COM
	${LIBZIP_FILES}
	./Source/Model/COM/NMR_COMInterface_GCC.cpp
	./Source/Common/Platform/NMR_Platform_GCC.cpp
	./Source/Common/Platform/NMR_ImportStream_GCC_Native.cpp
	./Source/Common/Platform/NMR_ImportStream_GCC_Win32.cpp
	./Source/Common/Platform/NMR_ExportStream_GCC_Native.cpp
	./Source/Common/Platform/NMR_ExportStream_GCC_Win32.cpp
	./Source/Common/Platform/NMR_ExportStream_ZIP.cpp
	)
endif()

set(SRCS_WIN_MAIN
./Source/Main/dllmain.cpp
)

set(SRCS_UNIX_MAIN
./Source/Main/main.cpp
)


set(SRCS_COMMON
${SRCS_COM}
./Source/Common/3MF_ProgressMonitor.cpp
./Source/Model/Reader/NMR_ModelReader_InstructionElement.cpp
./Source/Common/Math/NMR_Matrix.cpp
./Source/Common/Math/NMR_PairMatchingTree.cpp
./Source/Common/Math/NMR_Vector.cpp
./Source/Common/Math/NMR_VectorTree.cpp
./Source/Common/MeshExport/NMR_MeshExporter.cpp
./Source/Common/MeshExport/NMR_MeshExporter_STL.cpp
./Source/Common/MeshImport/NMR_MeshImporter.cpp
./Source/Common/MeshImport/NMR_MeshImporter_STL.cpp
./Source/Common/MeshInformation/NMR_MeshInformation.cpp
./Source/Common/MeshInformation/NMR_MeshInformationContainer.cpp
./Source/Common/MeshInformation/NMR_MeshInformationFactory.cpp
./Source/Common/MeshInformation/NMR_MeshInformationHandler.cpp
./Source/Common/MeshInformation/NMR_MeshInformation_BaseMaterials.cpp
./Source/Common/MeshInformation/NMR_MeshInformation_NodeColors.cpp
./Source/Common/MeshInformation/NMR_MeshInformation_TexCoords.cpp
./Source/Common/Mesh/NMR_Mesh.cpp
./Source/Common/Mesh/NMR_BeamLattice.cpp
./Source/Common/Mesh/NMR_MeshBuilder.cpp
./Source/Common/NMR_Exception.cpp
./Source/Common/NMR_Exception_Windows.cpp
./Source/Common/NMR_StringUtils.cpp
./Source/Common/NMR_UUID.cpp
./Source/Common/OPC/NMR_OpcPackagePart.cpp
./Source/Common/OPC/NMR_OpcPackageRelationship.cpp
./Source/Common/OPC/NMR_OpcPackageReader.cpp
./Source/Common/OPC/NMR_OpcPackageContentTypesReader.cpp
./Source/Common/OPC/NMR_OpcPackageRelationshipReader.cpp
./Source/Common/OPC/NMR_OpcPackageWriter.cpp
./Source/Common/Platform/NMR_XmlReader_Native.cpp
./Source/Model/Reader/NMR_ModelReader_3MF_Native.cpp
./Source/Common/Platform/NMR_ExportStream.cpp
./Source/Common/Platform/NMR_ExportStream_Callback.cpp
./Source/Common/Platform/NMR_ExportStream_Memory.cpp
./Source/Common/Platform/NMR_ExportStream_Dummy.cpp
./Source/Common/Platform/NMR_ExportStream_ZIP.cpp
./Source/Common/Platform/NMR_ImportStream_Callback.cpp
./Source/Common/Platform/NMR_ImportStream_Memory.cpp
./Source/Common/Platform/NMR_ImportStream_ZIP.cpp
./Source/Common/Platform/NMR_PortableZIPWriter.cpp
./Source/Common/Platform/NMR_PortableZIPWriterEntry.cpp
./Source/Common/Platform/NMR_Time.cpp
./Source/Common/Platform/NMR_XmlReader.cpp
./Source/Common/Platform/NMR_XmlWriter.cpp
./Source/Common/Platform/NMR_XmlWriter_Native.cpp
${ZLIB_FILES}
./Source/Model/Classes/NMR_PackageResourceID.cpp
./Source/Model/Classes/NMR_Model.cpp
./Source/Model/Classes/NMR_ModelAttachment.cpp
./Source/Model/Classes/NMR_ModelBaseMaterial.cpp
./Source/Model/Classes/NMR_ModelBaseMaterials.cpp
./Source/Model/Classes/NMR_ModelBuildItem.cpp
./Source/Model/Classes/NMR_ModelComponent.cpp
./Source/Model/Classes/NMR_ModelComponentsObject.cpp
./Source/Model/Classes/NMR_ModelDefaultProperty.cpp
./Source/Model/Classes/NMR_ModelDefaultProperty_BaseMaterial.cpp
./Source/Model/Classes/NMR_ModelDefaultProperty_Color.cpp
./Source/Model/Classes/NMR_ModelDefaultProperty_TexCoord2D.cpp
./Source/Model/Classes/NMR_ModelMeshBeamLatticeAttributes.cpp
./Source/Model/Classes/NMR_ModelMeshObject.cpp
./Source/Model/Classes/NMR_ModelMetaData.cpp
./Source/Model/Classes/NMR_ModelObject.cpp
./Source/Model/Classes/NMR_ModelResource.cpp
./Source/Model/Classes/NMR_ModelTexture2D.cpp
./Source/Model/Classes/NMR_ModelSliceStackResource.cpp
./Source/Model/COM/NMR_COMInterface_Model.cpp
./Source/Model/COM/NMR_COMInterface_ModelAttachment.cpp
./Source/Model/COM/NMR_COMInterface_ModelBaseMaterial.cpp
./Source/Model/COM/NMR_COMInterface_ModelBuildItem.cpp
./Source/Model/COM/NMR_COMInterface_ModelBuildItemIterator.cpp
./Source/Model/COM/NMR_COMInterface_ModelComponent.cpp
./Source/Model/COM/NMR_COMInterface_ModelComponentsObject.cpp
./Source/Model/COM/NMR_COMInterface_ModelDefaultPropertyHandler.cpp
./Source/Model/COM/NMR_COMInterface_ModelFactory.cpp
./Source/Model/COM/NMR_COMInterface_ModelMeshObject.cpp
./Source/Model/COM/NMR_COMInterface_ModelMeshBeamSet.cpp
./Source/Model/COM/NMR_COMInterface_ModelPropertyHandler.cpp
./Source/Model/COM/NMR_COMInterface_ModelReader.cpp
./Source/Model/COM/NMR_COMInterface_ModelResourceFactory.cpp
./Source/Model/COM/NMR_COMInterface_ModelResourceIterator.cpp
./Source/Model/COM/NMR_COMInterface_ModelTexture2D.cpp
./Source/Model/COM/NMR_COMInterface_ModelWriter.cpp
./Source/Model/COM/NMR_COMInterface_Slice.cpp
./Source/Model/COM/NMR_DLLInterfaces.cpp
./Source/Model/Reader/BeamLattice1702/NMR_ModelReaderNode_BeamLattice1702_Beam.cpp
./Source/Model/Reader/BeamLattice1702/NMR_ModelReaderNode_BeamLattice1702_Beams.cpp
./Source/Model/Reader/BeamLattice1702/NMR_ModelReaderNode_BeamLattice1702_BeamLattice.cpp
./Source/Model/Reader/BeamLattice1702/NMR_ModelReaderNode_BeamLattice1702_BeamSet.cpp
./Source/Model/Reader/BeamLattice1702/NMR_ModelReaderNode_BeamLattice1702_BeamSets.cpp
./Source/Model/Reader/BeamLattice1702/NMR_ModelReaderNode_BeamLattice1702_Ref.cpp
./Source/Model/Reader/NMR_ModelReader.cpp
./Source/Model/Reader/NMR_ModelReaderNode.cpp
./Source/Model/Reader/NMR_ModelReaderNode_Model.cpp
./Source/Model/Reader/NMR_ModelReaderWarnings.cpp
./Source/Model/Reader/NMR_ModelReader_3MF.cpp
./Source/Model/Reader/NMR_ModelReader_ColorMapping.cpp
./Source/Model/Reader/NMR_ModelReader_STL.cpp
./Source/Model/Reader/NMR_ModelReader_TexCoordMapping.cpp
./Source/Model/Reader/v093/NMR_ModelReaderNode093_Build.cpp
./Source/Model/Reader/v093/NMR_ModelReaderNode093_BuildItem.cpp
./Source/Model/Reader/v093/NMR_ModelReaderNode093_Color.cpp
./Source/Model/Reader/v093/NMR_ModelReaderNode093_Component.cpp
./Source/Model/Reader/v093/NMR_ModelReaderNode093_Components.cpp
./Source/Model/Reader/v093/NMR_ModelReaderNode093_Material.cpp
./Source/Model/Reader/v093/NMR_ModelReaderNode093_Mesh.cpp
./Source/Model/Reader/v093/NMR_ModelReaderNode093_Object.cpp
./Source/Model/Reader/v093/NMR_ModelReaderNode093_Resources.cpp
./Source/Model/Reader/v093/NMR_ModelReaderNode093_Texture.cpp
./Source/Model/Reader/v093/NMR_ModelReaderNode093_TextureVertex.cpp
./Source/Model/Reader/v093/NMR_ModelReaderNode093_TextureVertices.cpp
./Source/Model/Reader/v093/NMR_ModelReaderNode093_Triangle.cpp
./Source/Model/Reader/v093/NMR_ModelReaderNode093_Triangles.cpp
./Source/Model/Reader/v093/NMR_ModelReaderNode093_Vertex.cpp
./Source/Model/Reader/v093/NMR_ModelReaderNode093_Vertices.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_BaseMaterial.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_BaseMaterials.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_Build.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_BuildItem.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_Color.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_Colors.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_Component.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_Components.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_Mesh.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_MetaData.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_Object.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_Resources.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_Tex2Coord.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_Tex2DGroup.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_Texture2D.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_Triangle.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_Triangles.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_Vertex.cpp
./Source/Model/Reader/v100/NMR_ModelReaderNode100_Vertices.cpp
./Source/Model/Reader/Slice1507/NMR_ModelReader_Slice1507_Polygon.cpp
./Source/Model/Reader/Slice1507/NMR_ModelReader_Slice1507_Segment.cpp
./Source/Model/Reader/Slice1507/NMR_ModelReader_Slice1507_Slice.cpp
./Source/Model/Reader/Slice1507/NMR_ModelReader_Slice1507_SliceRef.cpp
./Source/Model/Reader/Slice1507/NMR_ModelReader_Slice1507_SliceRefModel.cpp
./Source/Model/Reader/Slice1507/NMR_ModelReader_Slice1507_SliceRefResources.cpp
./Source/Model/Reader/Slice1507/NMR_ModelReader_Slice1507_SliceStack.cpp
./Source/Model/Reader/Slice1507/NMR_ModelReader_Slice1507_Vertex.cpp
./Source/Model/Reader/Slice1507/NMR_ModelReader_Slice1507_Vertices.cpp
./Source/Model/Writer/NMR_ModelWriter.cpp
./Source/Model/Writer/NMR_ModelWriterNode.cpp
./Source/Model/Writer/NMR_ModelWriter_3MF.cpp
./Source/Model/Writer/NMR_ModelWriter_3MF_Native.cpp
./Source/Model/Writer/NMR_ModelWriter_ColorMapping.cpp
./Source/Model/Writer/NMR_ModelWriter_STL.cpp
./Source/Model/Writer/NMR_ModelWriter_TexCoordMapping.cpp
./Source/Model/Writer/NMR_ModelWriter_TexCoordMappingContainer.cpp
./Source/Model/Writer/v100/NMR_ModelWriterNode100_Mesh.cpp
./Source/Model/Writer/v100/NMR_ModelWriterNode100_Model.cpp
)
