project(OpencvVideo)
################################################################################

# Create a DLL
add_definitions(-DCVWEBCAM_COMPONENT_EXPORTS)
add_definitions( -DVIDEO_EXPORTS )

find_package(OpenCV REQUIRED)

# Check for OpenCV
if(NOT OpenCV_FOUND)
    message(FATAL_ERROR "Project ${PROJECT_NAME} requires OpenCV library")
endif()

# ========================================
# Configure qt4
# ========================================
if(QT4_FOUND)
  set(QT_USE_QTXML true)
  set(QT_USE_QTNETWORK true)
  include(${QT_USE_FILE})
else()
  message(ERROR "Qt4 needed")
endif()

# ========================================
# Compiler definitions
# ========================================
add_definitions(
  ${QT_DEFINITIONS}
)

# ========================================
# Include directories
# ========================================
include_directories(
  ${PROJECT_BINARY_DIR}
  ${QT_INCLUDE_DIR}
)

# ========================================
# Link directories
# ========================================
link_directories( ${PACPUS_LIB_DIR} )

message (STATUS ${PACPUS_LIB_DIR})

pacpus_plugin(PLUGIN_CPP PLUGIN_H ${PROJECT_NAME} )

# ========================================
# List of sources
# ========================================
if (UNIX)
	set(
		PROJECT_SRCS
		${PLUGIN_CPP}
	)
endif()

if(WIN32) 
	set(
		PROJECT_SRCS
		${PLUGIN_CPP}
	)
	if(OpenCV_FOUND)
		list(APPEND PROJECT_SRCS CVWebcamComponent.cpp WebcamWorker.cpp)
	endif()
endif()


# ========================================
# Files to MOC
# ========================================
set(
    FILES_TO_MOC
	${PLUGIN_H}
	 CVWebcamComponent.hpp
	 WebcamWorker.hpp
)

set(
    UI_FILES

)

# ========================================
# Call MOC
# ========================================
qt4_wrap_cpp(
    PROJECT_MOC_SRCS
    ${FILES_TO_MOC}
)

qt4_wrap_ui(
    PROJECT_UI_SRCS
    ${UI_FILES}
)

# ========================================
# Build a library
# ========================================
pacpus_add_library(
    ${PROJECT_NAME} SHARED
    ${PROJECT_SRCS}
    ${PROJECT_MOC_SRCS}
    ${PROJECT_UI_SRCS}
)

message(STATUS  ${PACPUS_DEPENDENCIES_LIB} ) 

# ========================================
# Libraries
# ========================================
# All the platform
target_link_libraries(
    ${PROJECT_NAME}
    ${PACPUS_LIBRARIES}
    ${QT_LIBRARIES}
	${PACPUS_DEPENDENCIES_LIB}
	${OpenCV_LIBS}
	PacpusTools
)

# ========================================
# Install
# ========================================
pacpus_install(${PROJECT_NAME})

