project(ProducerConsumerExample)

set(${PROJECT_NAME}_VERSION_MAJOR 0)
set(${PROJECT_NAME}_VERSION_MINOR 1)

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

################################################################################
# INCLUDES
include_directories(
    ${PACPUSCITYVIP_INCLUDE_DIR}
    ${PROJECT_BINARY_DIR}
    ${QT_INCLUDE_DIR}
)

################################################################################
# Link directories
set(SRC_BINARY_DIR "${PROJECT_BINARY_DIR}/../../src")
get_filename_component(SRC_BINARY_DIR "${SRC_BINARY_DIR}" ABSOLUTE)
#message("\${SRC_BINARY_DIR} = ${SRC_BINARY_DIR}")
link_directories(
    ${SRC_BINARY_DIR}/PacpusLib
    ${SRC_BINARY_DIR}/PacpusTools
	${SRC_BINARY_DIR}/RoadTime
)

################################################################################
# FILES
set(PROJECT_HDRS
    ${EXPORT_HDR}
    ProducerExample.h
    ConsumerExample.h
    XML/${PROJECT_NAME}.xml
    XML/${PROJECT_NAME}_d.xml
)
set(PROJECT_SRCS
    ${PLUGIN_CPP}
    ProducerExample.cpp
    ConsumerExample.cpp
)

set(FILES_TO_MOC
    ${PLUGIN_HDR}
    ProducerExample.h
    ConsumerExample.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}
)

list(APPEND PACPUS_LIBRARIES
    optimized PacpusLib debug PacpusLib_d
)
message(STATUS "\${PACPUS_LIBRARIES} = ${PACPUS_LIBRARIES}")
message(STATUS "\${PACPUS_DEPENDENCIES_LIB} = ${PACPUS_DEPENDENCIES_LIB}")
# LIBS
set(LIBS
    ${PACPUS_LIBRARIES}
	${PACPUS_DEPENDENCIES_LIB}
    #${OpenCV_LIBRARIES}
    ${QT_LIBRARIES}
)

# LINK
target_link_libraries(${PROJECT_NAME} ${LIBS})

################################################################################
# FOLDERS
pacpus_folder(${PROJECT_NAME} "examples")

################################################################################
# INSTALL
pacpus_install(${PROJECT_NAME})

# Installation of the headers
#install(DIRECTORY ${PACPUSCITYVIP_INCLUDE_DIR} DESTINATION "${PACPUS_ROOT}")
