|
1 | 1 | cmake_minimum_required(VERSION 2.8.3)
|
2 | 2 | project(rqt_gps_rtk_plugin)
|
3 | 3 |
|
4 |
| -# Set compiler flags |
5 |
| -set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}") |
| 4 | +## Use C++11 |
| 5 | +## By adding -Wall and -Werror, the compiler does not ignore warnings anymore, |
| 6 | +## enforcing cleaner code. |
| 7 | +add_definitions(-std=c++11 -Wall -Werror) |
6 | 8 |
|
| 9 | +# Load catkin and all dependencies required for this package |
7 | 10 | find_package(catkin REQUIRED COMPONENTS
|
8 |
| - any_worker |
9 |
| - rqt_gui |
10 |
| - rqt_gui_cpp |
11 |
| - piksi_rtk_msgs |
12 |
| - sensor_msgs |
| 11 | + rqt_gui |
| 12 | + rqt_gui_cpp |
| 13 | + any_worker |
| 14 | + piksi_rtk_msgs |
| 15 | + sensor_msgs |
| 16 | + |
13 | 17 | )
|
14 | 18 |
|
15 |
| -if("${qt_gui_cpp_USE_QT_MAJOR_VERSION} " STREQUAL "5 ") |
| 19 | +if ("${qt_gui_cpp_USE_QT_MAJOR_VERSION} " STREQUAL "5 ") |
16 | 20 | find_package(Qt5Widgets REQUIRED)
|
17 | 21 | else()
|
18 |
| - find_package(Qt4 COMPONENTS QtCore QtGui REQUIRED) |
| 22 | + find_package(Qt4 COMPONENTS QtCore QtGui QtOpenGL REQUIRED) |
19 | 23 | include(${QT_USE_FILE})
|
20 | 24 | endif()
|
21 | 25 |
|
22 |
| -catkin_python_setup() |
| 26 | +# Flags |
| 27 | +SET(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}") |
23 | 28 |
|
24 |
| -########### |
25 |
| -# sources # |
26 |
| -########### |
27 |
| -set(rqt_gps_rtk_plugin_SRCS |
28 |
| - src/rqt_gps_rtk_plugin/GpsRtkPlugin.cpp |
| 29 | +set(${PROJECT_NAME}_SRCS |
| 30 | + src/${PROJECT_NAME}/GpsRtkPlugin.cpp |
29 | 31 | )
|
30 |
| -########### |
31 |
| - |
32 |
| - |
33 | 32 |
|
34 |
| -########### |
35 |
| -# headers # |
36 |
| -########### |
37 |
| -set(rqt_gps_rtk_plugin_HDRS |
38 |
| - include/rqt_gps_rtk_plugin/GpsRtkPlugin.hpp |
| 33 | +set(${PROJECT_NAME}_HDRS |
| 34 | + include/${PROJECT_NAME}/GpsRtkPlugin.hpp |
39 | 35 | )
|
40 |
| -########### |
41 |
| - |
42 | 36 |
|
| 37 | +set(${PROJECT_NAME}_UIS |
| 38 | + resource/gps_rtk_plugin.ui |
| 39 | +) |
43 | 40 |
|
44 |
| -############ |
45 |
| -# ui files # |
46 |
| -############ |
47 |
| -set(rqt_gps_rtk_plugin_UIS |
48 |
| - resource/gps_rtk_plugin.ui |
| 41 | +set(ui_INCLUDE_DIR |
| 42 | + "${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_INCLUDE_DESTINATION}/${PROJECT_NAME}" |
49 | 43 | )
|
50 |
| -############ |
51 | 44 |
|
52 |
| -set(rqt_gps_rtk_plugin_INCLUDE_DIRECTORIES |
53 |
| - include |
54 |
| - ${CMAKE_CURRENT_BINARY_DIR} |
| 45 | +set(${PROJECT_NAME}_INCLUDE_DIRECTORIES |
| 46 | + include |
| 47 | + ${ui_INCLUDE_DIR}/.. |
55 | 48 | )
|
56 | 49 |
|
| 50 | +if(NOT EXISTS ${ui_INCLUDE_DIR}) |
| 51 | + file(MAKE_DIRECTORY ${ui_INCLUDE_DIR}) |
| 52 | +endif() |
| 53 | + |
57 | 54 | catkin_package(
|
| 55 | + INCLUDE_DIRS |
| 56 | + ${${PROJECT_NAME}_INCLUDE_DIRECTORIES} |
58 | 57 | LIBRARIES ${PROJECT_NAME}
|
59 | 58 | CATKIN_DEPENDS
|
60 |
| - any_worker |
61 | 59 | rqt_gui
|
62 | 60 | rqt_gui_cpp
|
| 61 | + any_worker |
63 | 62 | piksi_rtk_msgs
|
64 | 63 | sensor_msgs
|
65 |
| - DEPENDS |
| 64 | + |
66 | 65 | )
|
67 | 66 |
|
68 |
| -if("${qt_gui_cpp_USE_QT_MAJOR_VERSION} " STREQUAL "5 ") |
69 |
| - qt5_wrap_cpp(rqt_gps_rtk_plugin_MOCS ${rqt_gps_rtk_plugin_HDRS}) |
70 |
| - qt5_wrap_ui(rqt_gps_rtk_plugin_UIS_H ${rqt_gps_rtk_plugin_UIS}) |
| 67 | +# include directories before wrap cpp |
| 68 | +include_directories(${${PROJECT_NAME}_INCLUDE_DIRECTORIES} |
| 69 | + ${${PROJECT_NAME}_INCLUDE_DIRECTORIES} |
| 70 | + ${catkin_INCLUDE_DIRS} |
| 71 | +) |
| 72 | + |
| 73 | +if ("${qt_gui_cpp_USE_QT_MAJOR_VERSION} " STREQUAL "5 ") |
| 74 | + include_directories(${Qt5Widgets_INCLUDE_DIRS}) |
| 75 | + add_definitions(${Qt5Widgets_DEFINITIONS}) |
| 76 | + qt5_wrap_cpp(${PROJECT_NAME}_MOCS ${${PROJECT_NAME}_HDRS}) |
| 77 | + #qt5_add_resources(${PROJECT_NAME}_RCC ${${PROJECT_NAME}_QRC}) |
71 | 78 | else()
|
72 |
| - qt4_wrap_cpp(rqt_gps_rtk_plugin_MOCS ${rqt_gps_rtk_plugin_HDRS}) |
73 |
| - qt4_wrap_ui(rqt_gps_rtk_plugin_UIS_H ${rqt_gps_rtk_plugin_UIS}) |
| 79 | + qt4_wrap_cpp(${PROJECT_NAME}_MOCS ${${PROJECT_NAME}_HDRS}) |
| 80 | + #qt4_add_resources(${PROJECT_NAME}_RCC ${${PROJECT_NAME}_QRC}) |
74 | 81 | endif()
|
75 | 82 |
|
76 |
| -include_directories( |
77 |
| - ${rqt_gps_rtk_plugin_INCLUDE_DIRECTORIES} |
78 |
| - ${catkin_INCLUDE_DIRS} |
79 |
| -) |
80 |
| - |
| 83 | +# ensure generated header files are being created in the devel space |
| 84 | +set(_cmake_current_binary_dir "${CMAKE_CURRENT_BINARY_DIR}") |
| 85 | +set(CMAKE_CURRENT_BINARY_DIR ${ui_INCLUDE_DIR}) |
| 86 | +if("${qt_gui_cpp_USE_QT_MAJOR_VERSION} " STREQUAL "5 ") |
| 87 | + qt5_wrap_ui(${PROJECT_NAME}_UIS_H ${${PROJECT_NAME}_UIS}) |
| 88 | +else() |
| 89 | + qt4_wrap_ui(${PROJECT_NAME}_UIS_H ${${PROJECT_NAME}_UIS}) |
| 90 | +endif() |
| 91 | +set(CMAKE_CURRENT_BINARY_DIR "${_cmake_current_binary_dir}") |
81 | 92 |
|
82 |
| -add_library(rqt_gps_rtk_plugin |
83 |
| - ${rqt_gps_rtk_plugin_SRCS} |
84 |
| - ${rqt_gps_rtk_plugin_MOCS} |
85 |
| - ${rqt_gps_rtk_plugin_UIS_H} |
| 93 | +add_library(${PROJECT_NAME} |
| 94 | + ${${PROJECT_NAME}_SRCS} |
| 95 | + ${${PROJECT_NAME}_HDRS} |
| 96 | + ${${PROJECT_NAME}_MOCS} |
| 97 | + ${${PROJECT_NAME}_UIS_H} |
86 | 98 | )
|
87 | 99 |
|
88 |
| -target_link_libraries(rqt_gps_rtk_plugin |
89 |
| - ${catkin_LIBRARIES} |
| 100 | +target_link_libraries(${PROJECT_NAME} |
| 101 | + ${catkin_LIBRARIES} |
90 | 102 | )
|
91 | 103 |
|
92 |
| -if("${qt_gui_cpp_USE_QT_MAJOR_VERSION} " STREQUAL "5 ") |
| 104 | +if ("${qt_gui_cpp_USE_QT_MAJOR_VERSION} " STREQUAL "5 ") |
93 | 105 | target_link_libraries(${PROJECT_NAME} Qt5::Widgets)
|
94 | 106 | else()
|
95 | 107 | target_link_libraries(${PROJECT_NAME} ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY})
|
96 | 108 | endif()
|
97 | 109 |
|
| 110 | +add_dependencies(${PROJECT_NAME} |
| 111 | + ${catkin_EXPORTED_TARGETS} |
| 112 | +) |
98 | 113 |
|
99 | 114 | find_package(class_loader)
|
100 |
| -class_loader_hide_library_symbols(rqt_gps_rtk_plugin) |
101 |
| - |
| 115 | +class_loader_hide_library_symbols(${PROJECT_NAME}) |
102 | 116 |
|
103 | 117 | install(FILES plugin.xml
|
104 |
| - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} |
| 118 | + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} |
105 | 119 | )
|
106 | 120 |
|
107 |
| -install(TARGETS rqt_gps_rtk_plugin |
108 |
| - ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} |
109 |
| - LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} |
110 |
| - RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} |
| 121 | +install(TARGETS ${PROJECT_NAME} |
| 122 | + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} |
| 123 | + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} |
| 124 | + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} |
111 | 125 | )
|
112 | 126 |
|
113 |
| -install(PROGRAMS scripts/rqt_gps_rtk_plugin |
114 |
| - DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} |
| 127 | +install(PROGRAMS scripts/${PROJECT_NAME} |
| 128 | + DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} |
115 | 129 | )
|
116 | 130 |
|
117 | 131 | install(DIRECTORY include/${PROJECT_NAME}/
|
118 |
| - DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} |
| 132 | + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} |
| 133 | +) |
| 134 | + |
| 135 | +# uncomment, if this widget will be used by any other QObject (e.g., a widget) |
| 136 | +install(DIRECTORY ${ui_INCLUDE_DIR}/ |
| 137 | + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} |
| 138 | +) |
| 139 | + |
| 140 | +install( |
| 141 | + DIRECTORY resource |
| 142 | + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} |
| 143 | +# FILES_MATCHING |
| 144 | +# PATTERN "*.png" |
| 145 | +# PATTERN "*.svg" |
119 | 146 | )
|
0 commit comments