# Macros to create "check" target
set(_test_executable_list "")

macro(add_test_executable _executable)
    add_test(${_executable} ${_executable})
    set(_test_executable_list "${_test_executable_list};${_executable}")
    add_executable(${_executable} ${ARGN})
endmacro(add_test_executable)

# Call this at the end
macro(create_check_target)
    add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --verbose
        DEPENDS ${_test_executable_list})
endmacro(create_check_target)


include_directories(
    ${CMAKE_SOURCE_DIR}/src
    ${CMAKE_CURRENT_BINARY_DIR}
    ${QT_QTTEST_INCLUDE_DIR}
    )

set(test_LIBRARIES
    ${QT_QTGUI_LIBRARIES}
    ${QT_QTCORE_LIBRARIES}
    ${QT_QTTEST_LIBRARIES}
    indicate-qt
    ${INDICATE_LIBRARIES}
    )

enable_testing()

# servertest
set(servertest_SRCS
    servertest.cpp
    )

qt4_automoc(${servertest_SRCS})

add_test_executable(servertest ${servertest_SRCS})

target_link_libraries(servertest
    ${test_LIBRARIES}
    )

# indicatortest
set(indicatortest_SRCS
    indicatortest.cpp
    )

qt4_automoc(${indicatortest_SRCS})

add_test_executable(indicatortest ${indicatortest_SRCS})

target_link_libraries(indicatortest
    ${test_LIBRARIES}
    )

# listenertest
set(listenertest_SRCS
    listenertest.cpp
    )

qt4_automoc(${listenertest_SRCS})

add_test_executable(listenertest ${listenertest_SRCS})

target_link_libraries(listenertest
    ${test_LIBRARIES}
    )

# communicationtest
set(communicationtest_SRCS
    communicationtest.cpp
    )

qt4_automoc(${communicationtest_SRCS})

add_test_executable(communicationtest ${communicationtest_SRCS})

target_link_libraries(communicationtest
    ${test_LIBRARIES}
    )

# decodetest
set(decodetest_SRCS
    decodetest.cpp
    )

qt4_automoc(${decodetest_SRCS})

add_test_executable(decodetest ${decodetest_SRCS})

target_link_libraries(decodetest
    ${test_LIBRARIES}
    )

# Keep this at the end
create_check_target()
