cmake_minimum_required(VERSION 2.6)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/tools")
project(clasp)
include(CheckIncludeFileCXX)
find_package(TBB)
include_directories (libclasp libprogram_opts)

if(NOT TBB_FOUND)
	MESSAGE (STATUS "TBB not found. Building without threads.")
	add_definitions( -DWITH_THREADS=0 )
else(NOT TBB_FOUND)
	MESSAGE (STATUS "TBB found. Building with threads.")
	add_definitions( -DWITH_THREADS=1 )
	link_directories(${TBB_LIBRARY_DIRS})
endif(NOT TBB_FOUND)

add_subdirectory(libclasp)
add_subdirectory(libprogram_opts)
add_subdirectory(app)

check_include_file_cxx("cppunit/Test.h" has_cpp_unit)
if (has_cpp_unit)
	enable_testing ()
	file(GLOB LIBCLASP_TEST libclasp/tests/*.cpp)
	add_definitions(-DWITH_TEST_CLI)
	add_executable(claspTest ${LIBCLASP_TEST})
	target_link_libraries(claspTest libclasp libprogram_opts cppunit)
	if(TBB_FOUND)
		target_link_libraries(claspTest tbb)
	endif()
	add_test (NAME ClaspTest COMMAND claspTest)
else()
	message(STATUS "cppunit not found - skipping tests")
endif()
