set(THREADS_PREFER_PTHREAD_FLAG ON)

find_package( OpenCV REQUIRED )
find_package(Threads REQUIRED)

include_directories( ${OpenCV_INCLUDE_DIRS}
    ${Input_SOURCE_DIRS}
    ${Processing_SOURCE_DIRS}
    ${ControlModule_SOURCE_DIRS}
    ${Interpreter_SOURCE_DIRS}
    ${IntersectionHandler_SOURCE_DIRS}
    ${Utils_SOURCE_DIRS}
)

link_directories( ${Input_SOURCE_DIRS} 
    ${Processing_SOURCE_DIRS}
    ${ControlModule_SOURCE_DIRS}
    ${Interpreter_SOURCE_DIRS}
    ${IntersectionHandler_SOURCE_DIRS}
    ${Utils_SOURCE_DIRS}
)


target_include_directories(Input PRIVATE .)
target_include_directories(Processing PRIVATE .)
target_include_directories(ControlModule PRIVATE .)
target_include_directories(Interpreter PRIVATE .)
target_include_directories(IntersectionHandler PRIVATE .)
target_include_directories(Utils PRIVATE .)

add_executable(spielwiese spielwiese.cpp)

target_link_libraries( spielwiese ${OpenCV_LIBS} Input Processing ControlModule Interpreter IntersectionHandler Utils Threads::Threads)

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)