cmake_minimum_required(VERSION 2.8)
project(cppa_unit_tests CXX)

add_custom_target(all_unit_tests)

macro(add_unit_test name)
  add_executable(test_${name} test_${name}.cpp test.cpp ${ARGN})
  target_link_libraries(test_${name} ${CMAKE_DL_LIBS} ${CPPA_LIBRARY} ${PTHREAD_LIBRARIES} ${OPENCL_LIBRARIES})
  add_test(${name} ${EXECUTABLE_OUTPUT_PATH}/test_${name})
  add_dependencies(test_${name} all_unit_tests)
endmacro()

add_unit_test(ripemd_160)
add_unit_test(atom)
add_unit_test(optional_variant)
add_unit_test(metaprogramming)
add_unit_test(intrusive_containers)
add_unit_test(serialization)
add_unit_test(uniform_type)
add_unit_test(fixed_vector)
add_unit_test(intrusive_ptr)
add_unit_test(match)
add_unit_test(primitive_variant)
add_unit_test(yield_interface)
add_unit_test(tuple)
add_unit_test(spawn ping_pong.cpp)
add_unit_test(typed_spawn)
add_unit_test(local_group)
add_unit_test(sync_send)
add_unit_test(remote_actor ping_pong.cpp)
add_unit_test(broker)

if (ENABLE_OPENCL)
  add_unit_test(opencl)
endif ()
