forked from xqms/rosmon
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
144 lines (120 loc) · 2.53 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
cmake_minimum_required(VERSION 2.8)
project(rosmon)
find_package(catkin REQUIRED COMPONENTS
roscpp
cmake_modules
roslib
message_generation
rospack
rqt_gui
rqt_gui_cpp
)
add_message_files(FILES
NodeState.msg
State.msg
)
add_service_files(FILES
StartStop.srv
)
generate_messages(DEPENDENCIES
std_msgs
)
catkin_package()
find_package(TinyXML REQUIRED)
find_package(Curses REQUIRED)
include_directories(${CURSES_INCLUDE_DIRS})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Werror")
add_executable(rosmon
src/main.cpp
src/launch/node.cpp
src/launch/launch_config.cpp
src/monitor/node_monitor.cpp
src/monitor/monitor.cpp
src/ui.cpp
src/husl/husl.c
src/ros_interface.cpp
src/package_registry.cpp
src/fd_watcher.cpp
src/logger.cpp
src/terminal.cpp
)
target_link_libraries(rosmon
${catkin_LIBRARIES}
${TinyXML_LIBRARIES}
${CURSES_LIBRARIES}
yaml-cpp
util
)
add_dependencies(rosmon
${PROJECT_NAME}_generate_messages_cpp
)
# GUI
# Decide on a Qt version
if("${qt_gui_cpp_USE_QT_MAJOR_VERSION} " STREQUAL "5 ")
set(USE_QT5 true)
else()
set(USE_QT5 false)
endif()
# Find Qt
if(USE_QT5)
find_package(Qt5Widgets REQUIRED)
set(QT_FOUND ${Qt5Widgets_FOUND})
set(QT_LIBRARIES ${Qt5Widgets_LIBRARIES})
else()
find_package(Qt4 COMPONENTS QtCore QtGui REQUIRED)
include(${QT_USE_FILE})
endif()
find_package(rqt_gui_cpp)
if(QT_FOUND AND rqt_gui_cpp_FOUND)
include_directories(${rqt_gui_cpp_INCLUDE_DIRS})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
set(UI_FILES
src/gui/mon_gui.ui
)
set(H_FILES
src/gui/mon_gui.h
src/gui/mon_model.h
)
if(USE_QT5)
qt5_wrap_ui(UIC_FILES ${UI_FILES})
qt5_wrap_cpp(MOC_FILES ${H_FILES})
else()
qt4_wrap_ui(UIC_FILES ${UI_FILES})
qt4_wrap_cpp(MOC_FILES ${H_FILES})
endif()
add_library(rosmon_gui
${UIC_FILES}
${MOC_FILES}
src/gui/mon_gui.cpp
src/gui/mon_model.cpp
)
target_link_libraries(rosmon_gui
${catkin_LIBRARIES}
${rqt_gui_cpp_LIBRARIES}
${QT_LIBRARIES}
)
add_dependencies(rosmon_gui
${PROJECT_NAME}_generate_messages_cpp
)
endif()
# Utils
add_executable(abort
src/util/abort.cpp
)
add_executable(abort_really_long_executable
src/util/abort.cpp
)
# Register unit tests
if(CATKIN_ENABLE_TESTING)
find_package(rostest REQUIRED)
add_rostest(test/basic.test)
endif()
# Version 1.4 (increment this comment to trigger a CMake update)
catkin_add_env_hooks(50-rosmon
SHELLS bash zsh
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/env-hooks
)
install(TARGETS rosmon
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)