project(ProducerConsumerExample)

# ========================================
# Basic Definitions
# ========================================
set(${PROJECT_NAME}_VERSION_MAJOR 0)
set(${PROJECT_NAME}_VERSION_MINOR 1)

create_export(EXPORT_HDR ${PROJECT_NAME})
pacpus_plugin(PLUGIN_CPP PLUGIN_H ${PROJECT_NAME})

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

# ========================================
# Include directories
# ========================================
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
)

# ========================================
# List of sources
# ========================================
set(PROJECT_HDRS
    ProducerExample.h
    ConsumerExample.h
    ${PROJECT_NAME}.xml
    ${EXPORT_HDR}
)
set(PROJECT_SRCS
    ${PLUGIN_CPP}
    ProducerExample.cpp
    ConsumerExample.cpp
)

# ========================================
# Files to MOC
# ========================================
set(FILES_TO_MOC
    ${PLUGIN_H}
    ProducerExample.h
    ConsumerExample.h
)

set(UI_FILES
)

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

qt_wrap_ui(
    PROJECT_UI_SRCS
    ${UI_FILES}
)

# ========================================
# Build a library
# ========================================
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
)
if(WIN32)
    list(APPEND PACPUS_LIBRARIES
        optimized road_time debug road_time_d
    )
endif()
#message("\${PACPUS_LIBRARIES} = ${PACPUS_LIBRARIES}")
#message("\${PACPUS_DEPENDENCIES_LIB} = ${PACPUS_DEPENDENCIES_LIB}")

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

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

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

# ========================================
# Folder
# ========================================
pacpus_folder(${PROJECT_NAME} "examples")
