cmake_minimum_required( VERSION 2.6 )

INCLUDE_DIRECTORIES(
	${Assimp_SOURCE_DIR}/include
	${Assimp_SOURCE_DIR}/code
	${Assimp_SOURCE_DIR}/contrib/cppunit-1.12.1/include
)

# Add the temporary output directories to the library path to make sure the
# Assimp library can be found, even if it is not installed system-wide yet.
LINK_DIRECTORIES( ${Assimp_BINARY_DIR} ${AssetImporter_BINARY_DIR}/lib )

SOURCE_GROUP( unit FILES 
	unit/CCompilerTest.c
	unit/BoostWorkaround/tupletest.cpp
)

if(WIN32)
SET( CPPUNIT_SRCS
	../contrib/cppunit-1.12.1/src/cppunit/AdditionalMessage.cpp
	../contrib/cppunit-1.12.1/src/cppunit/Asserter.cpp
	../contrib/cppunit-1.12.1/src/cppunit/BeOsDynamicLibraryManager.cpp
	../contrib/cppunit-1.12.1/src/cppunit/BriefTestProgressListener.cpp
	../contrib/cppunit-1.12.1/src/cppunit/CompilerOutputter.cpp
	../contrib/cppunit-1.12.1/src/cppunit/DefaultProtector.cpp
	../contrib/cppunit-1.12.1/src/cppunit/DefaultProtector.h
	../contrib/cppunit-1.12.1/src/cppunit/DllMain.cpp
	../contrib/cppunit-1.12.1/src/cppunit/DynamicLibraryManager.cpp
	../contrib/cppunit-1.12.1/src/cppunit/DynamicLibraryManagerException.cpp
	../contrib/cppunit-1.12.1/src/cppunit/Exception.cpp
	../contrib/cppunit-1.12.1/src/cppunit/Message.cpp
	../contrib/cppunit-1.12.1/src/cppunit/PlugInManager.cpp
	../contrib/cppunit-1.12.1/src/cppunit/PlugInParameters.cpp
	../contrib/cppunit-1.12.1/src/cppunit/Protector.cpp
	../contrib/cppunit-1.12.1/src/cppunit/ProtectorChain.cpp
	../contrib/cppunit-1.12.1/src/cppunit/ProtectorChain.h
	../contrib/cppunit-1.12.1/src/cppunit/ProtectorContext.h
	../contrib/cppunit-1.12.1/src/cppunit/RepeatedTest.cpp
	../contrib/cppunit-1.12.1/src/cppunit/ShlDynamicLibraryManager.cpp
	../contrib/cppunit-1.12.1/src/cppunit/SourceLine.cpp
	../contrib/cppunit-1.12.1/src/cppunit/StringTools.cpp
	../contrib/cppunit-1.12.1/src/cppunit/SynchronizedObject.cpp
	../contrib/cppunit-1.12.1/src/cppunit/Test.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestAssert.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestCase.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestCaseDecorator.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestComposite.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestDecorator.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestFactoryRegistry.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestFailure.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestLeaf.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestNamer.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestPath.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestPlugInDefaultImpl.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestResult.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestResultCollector.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestRunner.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestSetUp.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestSuccessListener.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestSuite.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TestSuiteBuilderContext.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TextOutputter.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TextTestProgressListener.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TextTestResult.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TextTestRunner.cpp
	../contrib/cppunit-1.12.1/src/cppunit/TypeInfoHelper.cpp
	../contrib/cppunit-1.12.1/src/cppunit/UnixDynamicLibraryManager.cpp
	../contrib/cppunit-1.12.1/src/cppunit/Win32DynamicLibraryManager.cpp
	../contrib/cppunit-1.12.1/src/cppunit/XmlDocument.cpp
	../contrib/cppunit-1.12.1/src/cppunit/XmlElement.cpp
	../contrib/cppunit-1.12.1/src/cppunit/XmlOutputter.cpp
	../contrib/cppunit-1.12.1/src/cppunit/XmlOutputterHook.cpp
)
SOURCE_GROUP(cppunit FILES  ${CPPUNIT_SRCS})
else()
	find_library(CPPUNIT_LIBRARY cppunit)
endif()

SET( TEST_SRCS
	unit/utFindDegenerates.cpp
	unit/utFindDegenerates.h
	unit/utFindInvalidData.cpp
	unit/utFindInvalidData.h
	unit/utFixInfacingNormals.cpp
	unit/utGenNormals.cpp
	unit/utGenNormals.h
	unit/utImporter.cpp
	unit/utImporter.h
	unit/utImproveCacheLocality.cpp
	unit/utJoinVertices.cpp
	unit/utJoinVertices.h
	unit/utLimitBoneWeights.cpp
	unit/utLimitBoneWeights.h
	unit/utMaterialSystem.cpp
	unit/utMaterialSystem.h
	unit/utPretransformVertices.cpp
	unit/utPretransformVertices.h
	unit/utRemoveComments.cpp
	unit/utRemoveComments.h
	unit/utRemoveComponent.cpp
	unit/utRemoveComponent.h
	unit/utRemoveRedundantMaterials.cpp
	unit/utRemoveRedundantMaterials.h
	unit/utScenePreprocessor.cpp
	unit/utScenePreprocessor.h
	unit/utSharedPPData.cpp
	unit/utSharedPPData.h
	unit/utSortByPType.cpp
	unit/utSortByPType.h
	unit/utSplitLargeMeshes.cpp
	unit/utSplitLargeMeshes.h
	unit/utTargetAnimation.cpp
	unit/utTargetAnimation.h
	unit/utTextureTransform.cpp
	unit/utTriangulate.cpp
	unit/utTriangulate.h
	unit/utVertexTriangleAdjacency.cpp
	unit/utVertexTriangleAdjacency.h
	unit/utNoBoostTest.cpp
	unit/utNoBoostTest.h
	unit/BoostWorkaround/tupletest.cpp	
)

SOURCE_GROUP(tests FILES  ${TEST_SRCS})


add_executable(  unit
	unit/CCompilerTest.c
	unit/Main.cpp
	unit/UnitTestPCH.cpp
	unit/UnitTestPCH.h
	${TEST_SRCS}
	${CPPUNIT_SRCS}
)

SET_PROPERTY(TARGET assimp PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX})

target_link_libraries ( unit assimp ${CPPUNIT_LIBRARY} )
