cmake_minimum_required(VERSION 2.8.3)
project(gauges)

# Use C++11
set(CMAKE_CXX_FLAGS "-std=c++0x ${CMAKE_CXX_FLAGS}")

find_package(catkin REQUIRED COMPONENTS
  roscpp
  std_msgs
)

catkin_package(
  CATKIN_DEPENDS roscpp std_msgs
)

#############################
# Qt Stuff
# See: https://wiki.qt.io/Using_CMake_build_system
#############################
set ( SOURCES
 src/gauges.cpp
 src/mainwindow.cpp
 src/qcgaugewidget.cpp
)

set ( MOC_HEADERS
 include/mainwindow.h
 include/qcgaugewidget.h
)

set ( UIS
 resources/mainwindow.ui
)

# Next lines needed for building all Qt projects
find_package( Qt4 REQUIRED )
include( ${QT_USE_FILE} )
add_definitions( ${QT_DEFINITIONS} )
include_directories( ${CMAKE_BINARY_DIR} include ${catkin_INCLUDE_DIRS} )


# Next, using precompiler, compiler and linker

# using Qt meta-system (precompiler)
QT4_ADD_RESOURCES( RES_SOURCES ${RESOURCES} )
QT4_WRAP_UI( UI_HEADERS ${UIS} )
QT4_WRAP_CPP( MOC_SRCS ${MOC_HEADERS} )

# compile
add_executable( gauges ${QT_SOURCES} ${SOURCES} ${MOC_SRCS} ${RES_SOURCES} ${UI_HEADERS} )

# link libraries
target_link_libraries( gauges ${QT_LIBRARIES} ${catkin_LIBRARIES} )

# For installing the debian
install(TARGETS ${PROJECT_NAME}
  ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

# Install the cpp header files
install(DIRECTORY include/
  DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
  FILES_MATCHING PATTERN "*.h"
)

# Install the launch files
install(DIRECTORY launch/
  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch
)
