cmake_minimum_required(VERSION 2.8)
project(caf_unit_tests CXX)

add_custom_target(all_unit_tests)

include_directories(${LIBCAF_INCLUDE_DIRS})

macro(add_unit_test name)
  add_executable(test_${name} test_${name}.cpp test.cpp ${ARGN})
  target_link_libraries(test_${name}
                        ${LD_FLAGS}
                        ${LIBCAF_LIBRARIES}
                        ${PTHREAD_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(variant)
add_unit_test(atom)
add_unit_test(metaprogramming)
#add_unit_test(intrusive_containers)
add_unit_test(match)
add_unit_test(message)
add_unit_test(serialization)
add_unit_test(uniform_type)
add_unit_test(fixed_vector)
add_unit_test(intrusive_ptr)
add_unit_test(spawn ping_pong.cpp)
add_unit_test(simple_reply_response)
add_unit_test(serial_reply)
add_unit_test(or_else)
add_unit_test(either)
add_unit_test(constructor_attach)
add_unit_test(custom_exception_handler)
add_unit_test(typed_spawn)
add_unit_test(actor_lifetime)
add_unit_test(message_lifetime)
add_unit_test(local_group)
add_unit_test(sync_send)
add_unit_test(broker)
add_unit_test(remote_actor ping_pong.cpp)
add_unit_test(typed_remote_actor)
add_unit_test(unpublish)
add_unit_test(optional)
add_unit_test(fixed_stack_actor)
add_unit_test(actor_pool)
if (NOT WIN32)
  add_unit_test(profiled_coordinator)
endif ()
