
INSOURCE_MAKEFILE() # create an in source makefile for us

INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} )

################################################################################

MIRA_ADD_TEST(AbstractClassesTest
	SOURCE
		AbstractClassesTest.C
	LINK_LIBS
		MIRABase
)

################################################################################

MIRA_ADD_TEST(AssuredTypeTest
	SOURCE
		AssuredTypeTest.C
	LINK_LIBS
		MIRABase
)

################################################################################

MIRA_ADD_TEST(ClassTest
	SOURCE
		ClassTest.C
	LINK_LIBS
		MIRABase
)

################################################################################

MIRA_ADD_TEST(ClassNameTest
	SOURCE
		ClassNameTest.C
	LINK_LIBS
		MIRABase
)

################################################################################

MIRA_ADD_TEST(ClassProxyTest
	SOURCE
		ClassProxyTest.C
	LINK_LIBS
		MIRABase
		TestLib
)
SET_TESTS_PROPERTIES(ClassProxyTest PROPERTIES DEPENDS ManifestSaveTest)

################################################################################

MIRA_ADD_TEST(ConstructionTest
	SOURCE
		ConstructionTest.C
	LINK_LIBS
		MIRABase
)

################################################################################

MIRA_ADD_TEST(DiamondStructureTest
	SOURCE
		DiamondStructureTest.C
	LINK_LIBS
		MIRABase
)

################################################################################

MIRA_ADD_TEST(LinkedLibraryTest
	SOURCE
		LinkedLibraryTest.C
	LINK_LIBS
		MIRABase
		TestDepLib
)
SET_TARGET_PROPERTIES(LinkedLibraryTest PROPERTIES LINK_FLAGS "-Wl,--no-as-needed")

################################################################################

MIRA_ADD_TEST(ManifestLoadTest
	SOURCE
		ManifestLoadTest.C
	LINK_LIBS
		MIRABase
)
SET_TESTS_PROPERTIES ( ManifestLoadTest PROPERTIES DEPENDS ManifestSaveTest)

################################################################################

MIRA_ADD_TEST(ManifestSaveTest
	SOURCE
		ManifestSaveTest.C
	LINK_LIBS
		MIRABase
)

################################################################################

MIRA_ADD_TEST(MetaInfoTest
	SOURCE
		MetaInfoTest.C
	LINK_LIBS
		MIRABase
)

################################################################################

MIRA_ADD_TEST(ParameterConstructionTest
	SOURCE
		ParameterConstructionTest.C
	LINK_LIBS
		MIRABase
)

################################################################################

MIRA_ADD_TEST(RegistrationTest
	SOURCE
		RegistrationTest.C
	LINK_LIBS
		MIRABase
)

################################################################################

MIRA_ADD_TEST(TemplateClassTest
	SOURCE
		TemplateClassTest.C
	LINK_LIBS
		MIRABase
)

################################################################################

MIRA_ADD_TEST(TemplateLibClassTest
	SOURCE
		TemplateLibClassTest.C
	LINK_LIBS
		MIRABase
)

SET_TESTS_PROPERTIES ( TemplateLibClassTest PROPERTIES DEPENDS ManifestSaveTest)

################################################################################

ADD_SOURCES(TestLibSources
	testLib/TestLib.C
)

ADD_LIBRARY(TestLib SHARED
	${TestLibSources}
)

TARGET_LINK_LIBRARIES(TestLib
	MIRABase
)

DEFINE_EXPORT_SYMBOL(TestLib)

################################################################################

ADD_SOURCES(TestDepLibSources
	testDepLib/TestDepLib.C
)

ADD_LIBRARY(TestDepLib SHARED
	${TestDepLibSources}
)

TARGET_LINK_LIBRARIES(TestDepLib
	TestLib
	${BOOST_PROGRAM_OPTIONS_LIBRARY}
)

DEFINE_EXPORT_SYMBOL(TestDepLib)

################################################################################

ADD_SOURCES(TestTplLibSources
	testTplLib/TestTplLib.C
)

ADD_LIBRARY(TestTplLib SHARED
	${TestTplLibSources}
)

TARGET_LINK_LIBRARIES(TestTplLib
	MIRABase
)

DEFINE_EXPORT_SYMBOL(TestTplLib)

################################################################################

MIRA_ADD_TEST(LibraryRegistryTest
	SOURCE
		LibraryRegistryTest.C
	LINK_LIBS
		MIRABase
)

