cmake_minimum_required(VERSION 2.8.4)
SET(CMAKE_VERBOSE_MAKEFILE OFF)

project(ShakeFive)

if(CMAKE_BUILD_TYPE MATCHES Release)
    if(CMAKE_COMPILER_IS_GNUCC)
        add_definitions(-O3)
    endif()
    add_definitions(-DNDEBUG)
elseif(CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
    if(CMAKE_COMPILER_IS_GNUCC)
        add_definitions(-O3)
    endif()
    add_definitions(-g3)
    add_definitions(-DDEBUG)
else()
	SET(CMAKE_BUILD_TYPE Debug)
    if(CMAKE_COMPILER_IS_GNUCC)
        add_definitions(-O0)
    endif()
    add_definitions(-g3)
    add_definitions(-DDEBUG)
endif()
message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})

add_definitions(-std=c++11)
find_package(OpenCV 2.4.6 REQUIRED)

#set the default path for built executables to the BUILD_TYPE directory ("Release" or "Debug")
if(WIN32)
    set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/)
    MESSAGE ( STATUS "Bin output in: " ${EXECUTABLE_OUTPUT_PATH} ${CMAKE_BUILD_TYPE} )
else()
    file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/${CMAKE_BUILD_TYPE})
    set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/${CMAKE_BUILD_TYPE})
    MESSAGE ( STATUS "Bin output in: " ${EXECUTABLE_OUTPUT_PATH} )
endif()

add_executable(${CMAKE_PROJECT_NAME}
    viewer/Skeleton.cpp
    viewer/Frame.cpp
    viewer/Video.cpp
    viewer/ShakeFive.cpp
)

target_link_libraries (${CMAKE_PROJECT_NAME} ${OpenCV_LIBS})
