project(VislabComponent)

add_definitions( -DVISLAB_COMPONENT_EXPORTS )

set(${PROJECT_NAME}_VERSION_MAJOR 0)
set(${PROJECT_NAME}_VERSION_MINOR 1)
# Create a DLL

find_package(OpenCV REQUIRED)

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

################################################################################
create_export(EXPORT_HDR ${PROJECT_NAME})
pacpus_plugin(PLUGIN_CPP PLUGIN_HDR ${PROJECT_NAME})
add_definitions (${QT_DEFINITIONS})

################################################################################
# DIRECTORIES
include_directories(
    ${PROJECT_BINARY_DIR}
    ${QT_INCLUDE_DIR}
    ${PACPUS_INCLUDE_DIR}
    ${PACPUS_INCLUDE_DIR}/Pacpus/ 
	"C:/Program Files (x86)/lib3dv/include/lib3dv"
)

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

################################################################################
# FILES
set(PROJECT_HDRS
    ${EXPORT_HDR}
    VislabComponent.hpp
    VislabCamera.hpp
    DiskWriter.h
    Display.h
    VislabImageProcessor.h
	Outputter.h
)
set(PROJECT_SRCS
    ${PLUGIN_CPP}
    VislabComponent.cpp
    VislabCamera.cpp
    DiskWriter.cpp
    Display.cpp
    VislabImageProcessor.cpp
	Outputter.cpp
)


set(FILES_TO_MOC
    ${PLUGIN_HDR}
    VislabComponent.hpp
    Display.h
)

set(UI_FILES
)

################################################################################
# Qt: call moc, uic
qt_wrap_cpp(PROJECT_MOC_SRCS
    ${FILES_TO_MOC}
)

qt_wrap_ui(PROJECT_UI_SRCS
    ${UI_FILES}
)

################################################################################
# BUILD and LINK
pacpus_add_library(${PROJECT_NAME} SHARED
    ${PROJECT_HDRS}
    ${PROJECT_SRCS}
    ${PROJECT_MOC_SRCS}
    ${PROJECT_UI_SRCS}
)


# ========================================
# Libraries
# ========================================
set(LIBS
    optimized FileLib debug FileLib_d
    optimized PacpusLib debug PacpusLib_d
    optimized PacpusTools debug PacpusTools_d
)
if (WIN32)
    list(APPEND LIBS
        optimized ROAD_TIME debug ROAD_TIME_d
    )
endif()
# LINK
target_link_libraries(${PROJECT_NAME}
                      ${PACPUS_LIBRARIES}
                      ${PACPUS_DEPENDENCIES_LIB}
                      ${LIBS}
                      ${QT_LIBRARIES}
                      ${OpenCV_LIBS}
                      "C:/Program Files (x86)/lib3dv/lib/3dv.lib"
                     )
################################################################################
# FOLDERS
pacpus_folder(${PROJECT_NAME} "components")
################################################################################
# INSTALL
pacpus_install(${PROJECT_NAME})
