ADD_LIBRARY(testPlugin SHARED TestPlugin.cpp)
SET_TARGET_PROPERTIES(testPlugin 
   PROPERTIES
   PREFIX "")
TARGET_LINK_LIBRARIES(testPlugin ${LibTulipCoreName})

ADD_LIBRARY(testPlugin2 SHARED TestPlugin2.cpp)
SET_TARGET_PROPERTIES(testPlugin2
   PROPERTIES
   PREFIX "")
TARGET_LINK_LIBRARIES(testPlugin2 ${LibTulipCoreName})

ADD_CUSTOM_TARGET(copyTestData ALL ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/DATA ${CMAKE_CURRENT_BINARY_DIR}/DATA VERBATIM)
ADD_CUSTOM_TARGET(copyScript ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/tulip_tests.sh ${CMAKE_CURRENT_BINARY_DIR}/tulip_tests.sh VERBATIM)

# disable MSVC warning 'potential divide by 0' for DoublePropertyTest
IF(MSVC)
  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4723")
ENDIF(MSVC)

UNIT_TEST(ImportExportTest ImportExportTest.cpp tuliplibtest.cpp)
UNIT_TEST(ExistEdgeTest ExistEdgeTest.cpp tuliplibtest.cpp)
UNIT_TEST(ExtendedClusterOperationTest ExtendedClusterOperationTest.cpp tuliplibtest.cpp)
UNIT_TEST(VectorTest VectorTest.cpp tuliplibtest.cpp)
UNIT_TEST(MatrixTest MatrixTest.cpp tuliplibtest.cpp)
UNIT_TEST(TestAlgorithmTest TestAlgorithmTest.cpp tuliplibtest.cpp)
UNIT_TEST(BooleanPropertyTest BooleanPropertyTest.cpp tuliplibtest.cpp)
UNIT_TEST(GraphPropertyTest GraphPropertyTest.cpp tuliplibtest.cpp)
UNIT_TEST(SuperGraphTest SuperGraphTest.cpp tuliplibtest.cpp)
UNIT_TEST(TlpImportExportTest TlpImportExportTest.cpp tuliplibtest.cpp)
UNIT_TEST(IdManagerTest IdManagerTest.cpp tuliplibtest.cpp)
UNIT_TEST(DataSetTest DataSetTest.cpp tuliplibtest.cpp)
UNIT_TEST(ObservablePropertyTest ObservablePropertyTest.cpp tuliplibtest.cpp)
UNIT_TEST(MutableContainerTest MutableContainerTest.cpp tuliplibtest.cpp)
UNIT_TEST(ObservableGraphTest ObservableGraphTest.cpp tuliplibtest.cpp)
UNIT_TEST(PushPopTest PushPopTest.cpp tuliplibtest.cpp)
UNIT_TEST(IntegerPropertyMinMaxSubgraphTest IntegerPropertyMinMaxSubgraphTest.cpp tuliplibtest.cpp)
UNIT_TEST(IntegerPropertyMinMaxUptodateTest IntegerPropertyMinMaxUptodateTest.cpp tuliplibtest.cpp)
UNIT_TEST(TestPropertiesMinMaxAfterAddNode TestPropertiesMinMaxAfterAddNode.cpp tuliplibtest.cpp)
UNIT_TEST(IsMetaEdgeTest IsMetaEdgeTest.cpp tuliplibtest.cpp)
UNIT_TEST(StringPropertyTest StringPropertyTest.cpp tuliplibtest.cpp)
UNIT_TEST(DoublePropertyTest DoublePropertyTest.cpp tuliplibtest.cpp)
UNIT_TEST(PlanarityTestTest PlanarityTestTest.cpp tuliplibtest.cpp)
UNIT_TEST(VectorGraphTest VectorGraphTest.cpp tuliplibtest.cpp)
UNIT_TEST(WithParameterTest WithParameterTest.cpp tuliplibtest.cpp)
UNIT_TEST(FaceIteratorTest FaceIteratorTest.cpp tuliplibtest.cpp)
UNIT_TEST(PluginsTest PluginsTest.cpp tuliplibtest.cpp)
UNIT_TEST(IteratorTest IteratorTest.cpp tuliplibtest.cpp)
UNIT_TEST(ParallelToolsTest ParallelToolsTest.cpp tuliplibtest.cpp)
UNIT_TEST(PropertyArraySubscriptTest PropertyArraySubscriptTest.cpp tuliplibtest.cpp)
SET_TESTS_PROPERTIES(PluginsTest PROPERTIES DEPENDS copyTestData)
