1*2f083884Ss.makeev_localcmake_minimum_required(VERSION 2.8.1)
2*2f083884Ss.makeev_localproject(UnitTest++)
3*2f083884Ss.makeev_local
4*2f083884Ss.makeev_localoption(UTPP_USE_PLUS_SIGN "Set this to OFF is you with to use '-cpp' instead of '++' in lib/include paths" ON)
5*2f083884Ss.makeev_local
6*2f083884Ss.makeev_local# get the main sources
7*2f083884Ss.makeev_localfile(GLOB headers_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} UnitTest++/*.h)
8*2f083884Ss.makeev_localfile(GLOB sources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} UnitTest++/*.cpp)
9*2f083884Ss.makeev_localsource_group("" FILES ${headers_} ${sources_})
10*2f083884Ss.makeev_local
11*2f083884Ss.makeev_local# get platform specific sources
12*2f083884Ss.makeev_localif (WIN32)
13*2f083884Ss.makeev_local    add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
14*2f083884Ss.makeev_local    set(platformDir_ Win32)
15*2f083884Ss.makeev_localelse()
16*2f083884Ss.makeev_local    set(platformDir_ Posix)
17*2f083884Ss.makeev_localendif(WIN32)
18*2f083884Ss.makeev_local
19*2f083884Ss.makeev_localfile(GLOB platformHeaders_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} UnitTest++/${platformDir_}/*.h)
20*2f083884Ss.makeev_localfile(GLOB platformSources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} UnitTest++/${platformDir_}/*.cpp)
21*2f083884Ss.makeev_localsource_group(${platformDir_} FILES ${platformHeaders_} ${platformSources_})
22*2f083884Ss.makeev_local
23*2f083884Ss.makeev_local# create the lib
24*2f083884Ss.makeev_localadd_library(UnitTest++ STATIC ${headers_} ${sources_} ${platformHeaders_} ${platformSources_})
25*2f083884Ss.makeev_local
26*2f083884Ss.makeev_localif(${UTPP_USE_PLUS_SIGN})
27*2f083884Ss.makeev_local	set_target_properties(UnitTest++ PROPERTIES OUTPUT_NAME UnitTest++)
28*2f083884Ss.makeev_localendif()
29*2f083884Ss.makeev_local
30*2f083884Ss.makeev_local
31*2f083884Ss.makeev_local# build the test runner
32*2f083884Ss.makeev_localfile(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} tests/*.cpp tests/*.h)
33*2f083884Ss.makeev_localsource_group( "" FILES ${TEST_SRCS})
34*2f083884Ss.makeev_localadd_executable(TestUnitTest++ ${TEST_SRCS})
35*2f083884Ss.makeev_localinclude_directories(.)
36*2f083884Ss.makeev_local
37*2f083884Ss.makeev_localif(${UTPP_USE_PLUS_SIGN})
38*2f083884Ss.makeev_local	set_target_properties(TestUnitTest++ PROPERTIES OUTPUT_NAME TestUnitTest++)
39*2f083884Ss.makeev_localendif()
40*2f083884Ss.makeev_local
41*2f083884Ss.makeev_localtarget_link_libraries(TestUnitTest++ UnitTest++)
42*2f083884Ss.makeev_local
43*2f083884Ss.makeev_local# turn on testing
44*2f083884Ss.makeev_localenable_testing()
45*2f083884Ss.makeev_localadd_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -V)
46*2f083884Ss.makeev_local
47*2f083884Ss.makeev_local# add the test runner as a test
48*2f083884Ss.makeev_localadd_test(NAME TestUnitTest++ COMMAND TestUnitTest++ ${CONFIG_PATH} ${CONFIG_TASKS_PATH} ${SOUND_LOG_PATH})
49*2f083884Ss.makeev_localadd_dependencies(check TestUnitTest++)
50*2f083884Ss.makeev_local
51*2f083884Ss.makeev_local
52*2f083884Ss.makeev_local# add install targets
53*2f083884Ss.makeev_local# need a custom install path?
54*2f083884Ss.makeev_local# define CMAKE_INSTALL_PREFIX to change root folder
55*2f083884Ss.makeev_localif(${UTPP_USE_PLUS_SIGN})
56*2f083884Ss.makeev_local	set (UTPP_INSTALL_DESTINATION "include/UnitTest++")
57*2f083884Ss.makeev_localelse()
58*2f083884Ss.makeev_local	set (UTPP_INSTALL_DESTINATION "include/UnitTestPP")
59*2f083884Ss.makeev_localendif()
60*2f083884Ss.makeev_local
61*2f083884Ss.makeev_localinstall(TARGETS UnitTest++ DESTINATION lib)
62*2f083884Ss.makeev_localinstall(FILES ${headers_} DESTINATION ${UTPP_INSTALL_DESTINATION})
63*2f083884Ss.makeev_localinstall(FILES ${platformHeaders_} DESTINATION ${UTPP_INSTALL_DESTINATION}/${platformDir_})