# $Id: CMakeLists.txt,v 1.26 2014/04/27 19:27:47 hupereir Exp $
########### Qt configuration #########
IF( USE_QT5 )

  FIND_PACKAGE( Qt5Widgets REQUIRED )

ELSE()

  FIND_PACKAGE( Qt4 REQUIRED )
  SET( QT_USE_QTXML TRUE )
  SET( QT_USE_QTNETWORK TRUE )
  INCLUDE( ${QT_USE_FILE} )
  ADD_DEFINITIONS( ${QT_DEFINITIONS} )

ENDIF()

########### X11 #########
IF( UNIX AND NOT APPLE )

  FIND_PACKAGE( X11 )
  IF( X11_FOUND )
    FIND_PACKAGE(XCB REQUIRED COMPONENTS XCB)
  ENDIF()

  ADD_DEFINITIONS( -DHAVE_X11=${X11_FOUND} )

ENDIF()

########### includes #########
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} )
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/base )
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/base-qt )
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/base-server )

########### configuration files ###############
CONFIGURE_FILE( Config.h.cmake Config.h )

########### next target ###############
SET( Top_SOURCES
  Application.cpp
  ConfigurationDialog.cpp
  HistogramWidget.cpp
  Job.cpp
  JobCommand.cpp
  JobInformationDialog.cpp
  JobInterface.cpp
  JobManager.cpp
  JobManagerFrame.cpp
  JobModel.cpp
  JobRecord.cpp
  JobThread.cpp
  MainWindow.cpp
  Menu.cpp
  NewFrameDialog.cpp
  RecordHistogram.cpp
  SignalMenu.cpp
  SignalJobsDialog.cpp
  SummaryFrame.cpp
  ToolTipWidget.cpp
  UserSet.cpp
  XcbInterface.cpp
  main.cpp
)

SET( Top_RESOURCES pixmaps.qrc )

IF( USE_QT5 )

  QT5_ADD_RESOURCES( Top_RESOURCES_RCC ${Top_RESOURCES} )

ELSE()

  QT4_ADD_RESOURCES( Top_RESOURCES_RCC ${Top_RESOURCES} )

ENDIF()

ADD_APPLICATION_ICON( Top_SOURCES ${CMAKE_SOURCE_DIR}/Top )
ADD_DESKTOP_FILE( ${CMAKE_SOURCE_DIR}/Top )
ADD_UNIX_EXECUTABLE( Top
  ${Top_SOURCES}
  ${Top_RESOURCES_RCC}
)

TARGET_LINK_LIBRARIES( Top ${XCB_LIBRARIES} )
TARGET_LINK_LIBRARIES( Top ${QT_LIBRARIES} )
TARGET_LINK_LIBRARIES( Top base base-qt base-server )

INSTALL( TARGETS Top DESTINATION ${BIN_INSTALL_DIR} )

IF( USE_QT5 )

  QT5_USE_MODULES( Top Network Widgets Xml )

ENDIF()
