Skip to content

Commit 396bf15

Browse files
Fix CMakeLists.txt + remove warnings due to ros.
1 parent f8f3aaa commit 396bf15

File tree

11 files changed

+181
-74
lines changed

11 files changed

+181
-74
lines changed

CMakeLists.txt

Lines changed: 149 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -17,46 +17,58 @@
1717

1818
# Catkin part
1919

20-
2120
cmake_minimum_required(VERSION 2.4.6)
2221

22+
if(COMMAND cmake_policy)
23+
cmake_policy(SET CMP0003 NEW)
24+
endif(COMMAND cmake_policy)
25+
26+
SET(PROJECT_ORG stack-of-tasks)
27+
set(PROJECT_DESCRIPTION "Dynamic graph bridge library")
28+
set(PROJECT_NAME dynamic_graph_bridge)
29+
set(PROJECT_URL "https://github.com/stack-of-tasks/dynamic_graph_bridge")
30+
set(PROJECT_SUFFIX "-v3")
31+
32+
# Export CMake Target
33+
SET(PROJECT_USE_CMAKE_EXPORT TRUE)
34+
35+
# Disable failing compilation when a compilation error appears
36+
set(CXX_DISABLE_WERROR False)
37+
38+
# Make sure that every header is generated in dynamic-graph
39+
SET(CUSTOM_HEADER_DIR ${PROJECT_NAME})
40+
2341
include(cmake/base.cmake)
42+
43+
# Specify the project.
44+
cmake_policy(SET CMP0048 NEW)
45+
PROJECT(${PROJECT_NAME}
46+
LANGUAGES
47+
CXX
48+
VERSION
49+
${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}
50+
)
51+
52+
2453
INCLUDE(cmake/boost.cmake)
2554
INCLUDE(cmake/eigen.cmake)
2655
include(cmake/ros.cmake)
2756
include(cmake/GNUInstallDirs.cmake)
2857
include(cmake/python.cmake)
2958
include(cmake/test.cmake)
3059

31-
project(dynamic_graph_bridge)
32-
33-
SET(CATKIN_REQUIRED_COMPONENTS roscpp std_msgs message_generation std_srvs geometry_msgs sensor_msgs tf)
60+
SET(CATKIN_REQUIRED_COMPONENTS
61+
roscpp std_msgs message_generation std_srvs geometry_msgs sensor_msgs
62+
tf tf2_bullet)
3463
SET(CATKIN_DEPENDS_LIBRARIES ros_bridge sot_loader)
3564

3665
## LAAS cmake submodule part
37-
set(PROJECT_DESCRIPTION "Dynamic graph bridge library")
38-
set(PROJECT_NAME dynamic_graph_bridge)
39-
set(PROJECT_URL "https://github.com/stack-of-tasks/dynamic_graph_bridge")
40-
set(PROJECT_SUFFIX "-v3")
4166

4267
SET(DOXYGEN_USE_MATHJAX YES)
4368

69+
# Add option build python interface
4470
OPTION (BUILD_PYTHON_INTERFACE "Build the python binding" ON)
45-
IF(BUILD_PYTHON_INTERFACE)
46-
FINDPYTHON()
47-
STRING(REGEX REPLACE "-" "_" PY_NAME ${PROJECT_NAME})
48-
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS})
49-
ADD_REQUIRED_DEPENDENCY("dynamic-graph-python >= 3.0.0")
50-
SET(CATKIN_REQUIRED_COMPONENTS ${CATKIN_REQUIRED_COMPONENTS} rospy)
51-
SET(CATKIN_DEPENDS_LIBRARIES ${CATKIN_DEPENDS_LIBRARIES} ros_interpreter)
52-
ENDIF(BUILD_PYTHON_INTERFACE)
53-
54-
SET(CATKIN_ENABLE_TESTING OFF)
55-
56-
find_package(catkin REQUIRED COMPONENTS ${CATKIN_REQUIRED_COMPONENTS})
57-
find_package(realtime_tools)
5871

59-
set(CXX_DISABLE_WERROR False)
6072
set(CUSTOM_HEADER_DIR dynamic_graph_bridge)
6173
set(${PROJECT_NAME}_HEADERS
6274
include/dynamic_graph_bridge/ros_init.hh
@@ -69,10 +81,28 @@ IF(BUILD_PYTHON_INTERFACE)
6981
include/dynamic_graph_bridge/ros_interpreter.hh )
7082
ENDIF(BUILD_PYTHON_INTERFACE)
7183

84+
IF(BUILD_PYTHON_INTERFACE)
85+
FINDPYTHON()
86+
STRING(REGEX REPLACE "-" "_" PY_NAME ${PROJECT_NAME})
87+
88+
ADD_PROJECT_DEPENDENCY(dynamic-graph-python REQUIRED )
89+
SET(CATKIN_REQUIRED_COMPONENTS ${CATKIN_REQUIRED_COMPONENTS} rospy)
90+
SET(CATKIN_DEPENDS_LIBRARIES ${CATKIN_DEPENDS_LIBRARIES} ros_interpreter)
91+
ENDIF(BUILD_PYTHON_INTERFACE)
92+
93+
SET(CATKIN_ENABLE_TESTING OFF)
94+
95+
MESSAGE(STATUS "CATKIN_REQUIRED_COMPONENTS: ${CATKIN_REQUIRED_COMPONENTS}")
96+
# Add catkin components
97+
find_package(catkin REQUIRED
98+
COMPONENTS ${CATKIN_REQUIRED_COMPONENTS})
99+
find_package(realtime_tools)
100+
101+
72102
SEARCH_FOR_EIGEN()
73103
SEARCH_FOR_BOOST()
74104

75-
SETUP_PROJECT()
105+
SETUP_PROJECT_PACKAGE_FINALIZE()
76106

77107
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
78108
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
@@ -88,15 +118,13 @@ set(PKG_CONFIG_ADDITIONAL_VARIABLES
88118
SET(SOT_PKGNAMES
89119
dynamic_graph_bridge_msgs)
90120

91-
add_required_dependency(roscpp)
92-
add_required_dependency(tf)
93-
add_required_dependency("realtime_tools >= 1.8")
94-
add_required_dependency(tf2_bullet)
121+
#add_project_dependency(realtime_tools 1.8 REQUIRED)
122+
95123

96-
ADD_REQUIRED_DEPENDENCY("dynamic-graph >= 3.0.0")
97-
ADD_REQUIRED_DEPENDENCY("sot-core >= 3.0.0")
124+
ADD_PROJECT_DEPENDENCY(dynamic-graph 3.0.0 REQUIRED)
125+
ADD_PROJECT_DEPENDENCY(sot-core REQUIRED)
98126

99-
add_required_dependency(dynamic_graph_bridge_msgs)
127+
ADD_PROJECT_dependency(dynamic_graph_bridge_msgs)
100128

101129
foreach(sot_pkgname ${SOT_PKGNAMES})
102130
add_required_dependency(${sot_pkgname})
@@ -110,13 +138,36 @@ add_library(ros_bridge
110138
include/dynamic_graph_bridge/ros_init.hh src/ros_init.cpp
111139
src/sot_to_ros.hh src/sot_to_ros.cpp
112140
)
113-
pkg_config_use_dependency(ros_bridge tf2_bullet)
114-
pkg_config_use_dependency(ros_bridge dynamic_graph_bridge_msgs)
115-
install(TARGETS ros_bridge DESTINATION lib)
116141

117-
# Add ros_bridge in the dynamic-graph-bridge pkg-config file.
142+
MESSAGE(STATUS "catkin_INCLUDE_DIRS: ${catkin_INCLUDE_DIRS}")
143+
144+
include_directories(${catkin_INCLUDE_DIRS})
145+
146+
target_include_directories(ros_bridge
147+
PUBLIC
148+
$<BUILD_INTERFACE:${CMAKE_BUILD_DIR}/include>
149+
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
150+
$<BUILD_INTERFACE:${EIGEN3_INCLUDE_DIR}>
151+
$<BUILD_INTERFACE:${PYTHON_INCLUDE_DIRS}>
152+
INTERFACE ${EIGEN3_INCLUDE_DIR}
153+
$<INSTALL_INTERFACE:include>
154+
)
118155

156+
#target_link_libraries(ros_bridge tf2_bullet)
157+
target_link_libraries(ros_bridge
158+
dynamic-graph::dynamic-graph)
159+
target_link_libraries(ros_bridge
160+
dynamic-graph::dynamic-graph)
119161

162+
MESSAGE(STATUS "catkin_LIBRARIES: ${catkin_LIBRARIES}")
163+
target_link_libraries(ros_bridge
164+
${catkin_LIBRARIES} )
165+
166+
install(TARGETS ros_bridge
167+
EXPORT ${TARGETS_EXPORT_NAME}
168+
DESTINATION lib)
169+
170+
# Add ros_bridge in the dynamic-graph-bridge pkg-config file.
120171
# Make sure rpath are preserved during the install as ROS dependencies
121172
# are not installed.
122173
set_target_properties(ros_bridge PROPERTIES BUILD_WITH_INSTALL_RPATH True
@@ -126,9 +177,22 @@ macro(compile_plugin NAME)
126177
message(lib path ${LIBRARY_OUTPUT_PATH})
127178
file(MAKE_DIRECTORY "${LIBRARY_OUTPUT_PATH}/dynamic_graph/ros/${NAME}")
128179
add_library(${NAME} SHARED src/${NAME}.cpp src/${NAME}.hh)
129-
pkg_config_use_dependency(${NAME} dynamic-graph)
130-
pkg_config_use_dependency(${NAME} sot-core)
131-
pkg_config_use_dependency(${NAME} dynamic_graph_bridge_msgs)
180+
181+
# Headers
182+
target_include_directories(${NAME}
183+
PUBLIC
184+
$<BUILD_INTERFACE:${CMAKE_BUILD_DIR}/include>
185+
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
186+
$<BUILD_INTERFACE:${EIGEN3_INCLUDE_DIR}>
187+
$<BUILD_INTERFACE:${PYTHON_INCLUDE_DIRS}>
188+
INTERFACE ${EIGEN3_INCLUDE_DIR}
189+
$<INSTALL_INTERFACE:include>
190+
)
191+
192+
# Libraries
193+
target_link_libraries(${NAME} dynamic-graph::dynamic-graph)
194+
target_link_libraries(${NAME} sot-core::sot-core)
195+
target_link_libraries(${NAME} ${CATKIN_DEPENDS_LIBRARIES})
132196
add_dependencies(${NAME} ros_bridge)
133197
target_link_libraries(${NAME} ros_bridge)
134198
set_target_properties(${NAME} PROPERTIES BUILD_WITH_INSTALL_RPATH True)
@@ -137,7 +201,8 @@ macro(compile_plugin NAME)
137201
endmacro()
138202

139203
# Build Sot Entities
140-
set(listplugins ros_publish ros_subscribe ros_queued_subscribe ros_tf_listener ros_time)
204+
set(listplugins
205+
ros_publish ros_subscribe ros_queued_subscribe ros_tf_listener ros_time)
141206

142207
foreach(aplugin ${listplugins})
143208
compile_plugin(${aplugin})
@@ -152,22 +217,29 @@ IF(BUILD_PYTHON_INTERFACE)
152217
ros/${NAME}/wrap
153218
)
154219

155-
PKG_CONFIG_USE_DEPENDENCY(ros/${NAME}/wrap realtime_tools)
156-
PKG_CONFIG_USE_DEPENDENCY(ros/${NAME}/wrap dynamic_graph)
157-
PKG_CONFIG_USE_DEPENDENCY(ros/${NAME}/wrap sot-core)
220+
#PKG_CONFIG_USE_DEPENDENCY(ros/${NAME}/wrap realtime_tools)
221+
#PKG_CONFIG_USE_DEPENDENCY(ros/${NAME}/wrap dynamic_graph)
222+
#PKG_CONFIG_USE_DEPENDENCY(ros/${NAME}/wrap sot-core)
158223
PKG_CONFIG_USE_DEPENDENCY(ros/${NAME}/wrap dynamic_graph_bridge_msgs)
159224
endforeach()
160225

161226
# ros_interperter library.
162227

163228
add_library(ros_interpreter src/ros_interpreter.cpp)
164-
pkg_config_use_dependency(ros_interpreter dynamic-graph)
165-
pkg_config_use_dependency(ros_interpreter sot-core)
166-
pkg_config_use_dependency(ros_interpreter roscpp)
229+
#pkg_config_use_dependency(ros_interpreter dynamic-graph)
230+
#pkg_config_use_dependency(ros_interpreter sot-core)
231+
#pkg_config_use_dependency(ros_interpreter roscpp)
167232
pkg_config_use_dependency(ros_interpreter dynamic_graph_bridge_msgs)
168-
pkg_config_use_dependency(ros_interpreter dynamic-graph-python)
233+
#pkg_config_use_dependency(ros_interpreter dynamic-graph-python)
169234

170235
add_dependencies(ros_interpreter ros_bridge)
236+
target_link_libraries(ros_interpreter roscpp)
237+
target_link_libraries(ros_interpreter
238+
dynamic-graph::dynamic-graph)
239+
target_link_libraries(ros_interpreter sot-core::sot-core)
240+
target_link_libraries(ros_interpreter
241+
dynamic-graph-python::dynamic-graph-python)
242+
target_link_libraries(ros_interpreter realtime_tools)
171243
target_link_libraries(ros_interpreter ros_bridge)
172244
set_target_properties(ros_interpreter PROPERTIES BUILD_WITH_INSTALL_RPATH True
173245
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
@@ -176,18 +248,21 @@ IF(BUILD_PYTHON_INTERFACE)
176248

177249
ENDIF(BUILD_PYTHON_INTERFACE)
178250

251+
MESSAGE(STATUS "CATKIN_DEPENDS_LIBRARIES: ${CATKIN_DEPENDS_LIBRARIES}")
252+
179253
# Stand alone embedded intepreter with a robot controller.
180-
add_executable(geometric_simu src/geometric_simu.cpp src/sot_loader.cpp src/sot_loader_basic.cpp)
181-
pkg_config_use_dependency(geometric_simu tf)
182-
pkg_config_use_dependency(geometric_simu roscpp)
183-
pkg_config_use_dependency(geometric_simu dynamic-graph)
184-
target_link_libraries(geometric_simu ros_bridge tf ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
254+
add_executable(geometric_simu src/geometric_simu.cpp
255+
src/sot_loader.cpp src/sot_loader_basic.cpp)
256+
target_link_libraries(geometric_simu dynamic-graph::dynamic-graph)
257+
target_link_libraries(geometric_simu ros_bridge tf ${Boost_LIBRARIES}
258+
${CMAKE_DL_LIBS})
259+
target_link_libraries(geometric_simu ${CATKIN_DEPENDS_LIBRARIES})
185260

186261
# Sot loader library
187262
add_library(sot_loader src/sot_loader.cpp src/sot_loader_basic.cpp)
188-
pkg_config_use_dependency(sot_loader dynamic-graph)
189-
pkg_config_use_dependency(sot_loader sot-core)
190-
target_link_libraries(sot_loader ${Boost_LIBRARIES} roscpp ros_bridge tf)
263+
target_link_libraries(sot_loader dynamic-graph::dynamic-graph)
264+
target_link_libraries(sot_loader sot-core::sot-core)
265+
target_link_libraries(sot_loader ${Boost_LIBRARIES} )
191266
install(TARGETS sot_loader DESTINATION lib)
192267

193268
add_subdirectory(src)
@@ -197,16 +272,18 @@ add_subdirectory(tests)
197272
add_service_files( FILES RunPythonFile.srv )
198273
generate_messages( DEPENDENCIES std_msgs )
199274

200-
201-
# This is necessary so that the pc file generated by catking is similar to the on
202-
# done directly by jrl-cmake-modules
203-
catkin_package(CATKIN_DEPENDS message_runtime roscpp realtime_tools tf2_bullet ${SOT_PKGNAMES} tf
275+
# This is necessary so that the pc file generated by catking is similar to
276+
# the on done directly by jrl-cmake-modules
277+
catkin_package(INCLUDE_DIRS include
278+
CATKIN_DEPENDS
279+
message_runtime roscpp realtime_tools tf2_bullet ${SOT_PKGNAMES} tf
204280
LIBRARIES ${CATKIN_DEPENDS_LIBRARIES}
205281
)
206282

207283
# Add libraries in pc file generated by cmake submodule
208284
PKG_CONFIG_APPEND_LIBS(ros_bridge sot_loader)
209285

286+
# In the python interface needs to be build.
210287
IF(BUILD_PYTHON_INTERFACE)
211288
PKG_CONFIG_APPEND_LIBS(ros_interpreter)
212289

@@ -219,13 +296,24 @@ IF(BUILD_PYTHON_INTERFACE)
219296
)
220297

221298
# Service file.
222-
install(FILES ./srv/RunPythonFile.srv DESTINATION ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/srv)
299+
install(FILES ./srv/RunPythonFile.srv
300+
DESTINATION
301+
${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/srv)
223302

224303
ENDIF(BUILD_PYTHON_INTERFACE)
225304

226305
message(cmake_install_bindir " is ${CMAKE_INSTALL_BINDIR} ")
227-
install(TARGETS geometric_simu DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
228-
install(FILES manifest.xml DESTINATION ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/)
306+
307+
# Install the geometrical simulation node
308+
install(TARGETS geometric_simu
309+
EXPORT ${TARGETS_EXPORT_NAME}
310+
DESTINATION
311+
${CATKIN_PACKAGE_SHARE_DESTINATION})
312+
313+
# Install package information
314+
install(FILES manifest.xml
315+
DESTINATION
316+
${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/)
229317

230318

231-
SETUP_PROJECT_FINALIZE()
319+
SETUP_PROJECT_PACKAGE_FINALIZE()

include/dynamic_graph_bridge/ros_init.hh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
#ifndef ROS_INIT_HH
22
#define ROS_INIT_HH
3+
4+
#pragma GCC diagnostic push
5+
#pragma GCC system_header
36
#include <ros/ros.h>
7+
#pragma GCC diagnostic pop
48

59
namespace dynamicgraph {
610
ros::NodeHandle& rosInit(bool createAsyncSpinner = false,

include/dynamic_graph_bridge/sot_loader.hh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,11 @@
3636
#include <boost/thread/thread.hpp>
3737

3838
// ROS includes
39+
#pragma GCC diagnostic push
40+
#pragma GCC system_header
3941
#include "ros/ros.h"
42+
#pragma GCC diagnostic pop
43+
4044
#include "std_srvs/Empty.h"
4145
#include <sensor_msgs/JointState.h>
4246
#include <tf/transform_broadcaster.h>

package.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
<build_depend>message_generation</build_depend>
2929
<build_depend>message_runtime</build_depend>
3030
<build_depend>tf2_bullet</build_depend>
31-
<build_depend>dynamic-graph</build_depend>
32-
<build_depend>dynamic-graph-python</build_depend>
33-
<build_depend>sot-core</build_depend>
31+
<build_depend>dynamic_graph</build_depend>
32+
<build_depend>dynamic_graph_python</build_depend>
33+
<build_depend>sot_core</build_depend>
3434
<build_depend>sot-dynamic-pinocchio</build_depend>
3535
<build_depend>dynamic_graph_bridge_msgs</build_depend>
3636

@@ -44,8 +44,8 @@
4444
<exec_depend>message_generation</exec_depend>
4545
<exec_depend>message_runtime</exec_depend>
4646
<exec_depend>tf2_bullet</exec_depend>
47-
<exec_depend>dynamic-graph</exec_depend>
48-
<exec_depend>dynamic-graph-python</exec_depend>
47+
<exec_depend>dynamic_graph</exec_depend>
48+
<exec_depend>dynamic_graph_python</exec_depend>
4949
<exec_depend>sot-core</exec_depend>
5050
<exec_depend>sot-dynamic-pinocchio</exec_depend>
5151
<exec_depend>dynamic_graph_bridge_msgs</exec_depend>

src/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ IF(BUILD_PYTHON_INTERFACE)
66
DESTINATION "${PYTHON_SITELIB}/dynamic_graph/ros"
77
)
88
ENDIF(BUILD_PYTHON_INTERFACE)
9+

src/robot_model.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66
#include <pinocchio/multibody/model.hpp>
77

88
#include "dynamic_graph_bridge/ros_init.hh"
9-
9+
#pragma GCC diagnostic push
10+
#pragma GCC system_header
1011
#include <ros/package.h>
12+
#pragma GCC diagnostic pop
1113

1214
namespace dynamicgraph {
1315

0 commit comments

Comments
 (0)