#################################################
#   ___________    ____ ______  __ __  _____    #
#   \____ \__  \ _/ ___\\____ \|  |  \/  ___/   #
#   |  |_> > __ \\  \___|  |_> >  |  /\___ \    #
#   |   __(____  /\___  >   __/|____//____  >   #
#   |__|       \/     \/|__|              \/    #
#                                               #
#################################################
project(PacpusLib)

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

# ========================================
# Compiler definitions
# ========================================
add_definitions(
  -DPACPUSLIB_EXPORTS
  -DQT_NO_KEYWORDS
  ${QT_DEFINITIONS}
)

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

# ========================================
# List of sources
# ========================================
set(
  PROJECT_SRCS
  ${PACPUS_INCLUDE_DIR}/kernel/cstdint.h
  ${PACPUS_INCLUDE_DIR}/kernel/ComponentBase.h
  ${PACPUS_INCLUDE_DIR}/kernel/ComponentFactory.h
  ${PACPUS_INCLUDE_DIR}/kernel/ComponentFactoryBase.h
  ${PACPUS_INCLUDE_DIR}/kernel/ComponentManager.h
  ${PACPUS_INCLUDE_DIR}/kernel/Log.h
  ${PACPUS_INCLUDE_DIR}/kernel/pacpus.h
  ${PACPUS_INCLUDE_DIR}/kernel/road_time.h
  ${PACPUS_INCLUDE_DIR}/kernel/XmlComponentConfig.h
  ${PACPUS_INCLUDE_DIR}/kernel/XmlConfigFile.h
  ./ComponentBase.cpp
  ./ComponentFactoryBase.cpp
  ./ComponentManager.cpp
  ./Log.cpp
  ./XmlComponentConfig.cpp
  ./XmlConfigFile.cpp
)

# ========================================
# Build a library
# ========================================
add_library(
  ${PROJECT_NAME} SHARED
  ${PROJECT_SRCS}
)

# ========================================
# Libraries
# ========================================
target_link_libraries(
  ${PROJECT_NAME}
  ${QT_LIBRARIES}
  ${PACPUS_DEPENDENCIES_LIB}
)

# ========================================
# Properties
# ========================================
set_target_properties(
  ${PROJECT_NAME}
  PROPERTIES DEBUG_POSTFIX "_d"
)

# ========================================
# Install directories
# ========================================
install(
  TARGETS ${PROJECT_NAME}
  RUNTIME DESTINATION ${PACPUS_INSTALL_DIR}/bin
  LIBRARY DESTINATION ${PACPUS_INSTALL_DIR}/lib
  ARCHIVE DESTINATION ${PACPUS_INSTALL_DIR}/lib
)
