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_})