110 lines
2.7 KiB
CMake
Executable File
110 lines
2.7 KiB
CMake
Executable File
cmake_minimum_required(VERSION 2.8.3)
|
|
project(gazebo_ros)
|
|
|
|
find_package(catkin REQUIRED COMPONENTS
|
|
gazebo_dev
|
|
cmake_modules
|
|
roslib
|
|
roscpp
|
|
geometry_msgs
|
|
std_srvs
|
|
tf
|
|
rosgraph_msgs
|
|
dynamic_reconfigure
|
|
std_msgs
|
|
gazebo_msgs
|
|
)
|
|
|
|
include (FindPkgConfig)
|
|
if (PKG_CONFIG_FOUND)
|
|
pkg_check_modules(XML libxml-2.0)
|
|
else()
|
|
message(FATAL_ERROR "pkg-config is required; please install it")
|
|
endif()
|
|
|
|
find_package(Boost REQUIRED COMPONENTS thread)
|
|
|
|
find_package(TinyXML REQUIRED)
|
|
|
|
catkin_python_setup()
|
|
|
|
generate_dynamic_reconfigure_options(cfg/Physics.cfg)
|
|
|
|
catkin_package(
|
|
LIBRARIES
|
|
gazebo_ros_api_plugin
|
|
gazebo_ros_paths_plugin
|
|
|
|
CATKIN_DEPENDS
|
|
roslib
|
|
roscpp
|
|
geometry_msgs
|
|
std_srvs
|
|
tf
|
|
rosgraph_msgs
|
|
dynamic_reconfigure
|
|
std_msgs
|
|
gazebo_msgs
|
|
|
|
DEPENDS
|
|
TinyXML
|
|
)
|
|
|
|
include_directories(
|
|
include
|
|
${Boost_INCLUDE_DIRS}
|
|
${catkin_INCLUDE_DIRS}
|
|
${TinyXML_INCLUDE_DIRS})
|
|
|
|
link_directories(${catkin_LIBRARY_DIRS})
|
|
|
|
set(cxx_flags)
|
|
foreach (item ${GAZEBO_CFLAGS})
|
|
set(cxx_flags "${cxx_flags} ${item}")
|
|
endforeach ()
|
|
|
|
set(ld_flags)
|
|
foreach (item ${GAZEBO_LDFLAGS})
|
|
set(ld_flags "${ld_flags} ${item}")
|
|
endforeach ()
|
|
|
|
## Plugins
|
|
add_library(gazebo_ros_api_plugin src/gazebo_ros_api_plugin.cpp)
|
|
add_dependencies(gazebo_ros_api_plugin ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
|
|
set_target_properties(gazebo_ros_api_plugin PROPERTIES LINK_FLAGS "${ld_flags}")
|
|
set_target_properties(gazebo_ros_api_plugin PROPERTIES COMPILE_FLAGS "${cxx_flags}")
|
|
target_link_libraries(gazebo_ros_api_plugin ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${TinyXML_LIBRARIES})
|
|
|
|
add_library(gazebo_ros_paths_plugin src/gazebo_ros_paths_plugin.cpp)
|
|
add_dependencies(gazebo_ros_paths_plugin ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
|
|
set_target_properties(gazebo_ros_paths_plugin PROPERTIES COMPILE_FLAGS "${cxx_flags}")
|
|
set_target_properties(gazebo_ros_paths_plugin PROPERTIES LINK_FLAGS "${ld_flags}")
|
|
target_link_libraries(gazebo_ros_paths_plugin ${catkin_LIBRARIES} ${Boost_LIBRARIES})
|
|
|
|
# Install Gazebo System Plugins
|
|
install(TARGETS gazebo_ros_api_plugin gazebo_ros_paths_plugin
|
|
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
|
|
)
|
|
|
|
# Install Gazebo Scripts
|
|
install(PROGRAMS scripts/gazebo
|
|
scripts/debug
|
|
scripts/gzclient
|
|
scripts/gzserver
|
|
scripts/gdbrun
|
|
scripts/perf
|
|
scripts/libcommon.sh
|
|
DESTINATION
|
|
${CATKIN_PACKAGE_BIN_DESTINATION}
|
|
)
|
|
|
|
# This one is a Python program, not a shell script, so install it separately
|
|
catkin_install_python(PROGRAMS scripts/spawn_model
|
|
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
|
|
)
|
|
|
|
# Install Gazebo launch files
|
|
install(DIRECTORY launch/
|
|
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch
|
|
)
|