139 lines
5.4 KiB
CMake
139 lines
5.4 KiB
CMake
if (@PKG_NAME@_CONFIG_INCLUDED)
|
|
return()
|
|
endif()
|
|
set(@PKG_NAME@_CONFIG_INCLUDED TRUE)
|
|
set(@PKG_NAME@_VERSION @GAZEBO_VERSION@)
|
|
set(@PKG_NAME@_MAJOR_VERSION @GAZEBO_MAJOR_VERSION@)
|
|
|
|
set(@PKG_NAME@_PLUGIN_PATH "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/gazebo-@GAZEBO_MAJOR_VERSION@/plugins")
|
|
|
|
# The media path contains the location on disk where images,
|
|
# materials scripts, shaders, and other related resources are stored.
|
|
set(@PKG_NAME@_MEDIA_PATH "@CMAKE_INSTALL_PREFIX@/share/gazebo-@GAZEBO_MAJOR_VERSION@/media")
|
|
|
|
#################################################
|
|
# @PKG_NAME@_PROTO_PATH, @PKG_NAME@_PROTO_INCLUDE_DIRS, and
|
|
# @PKG_NAME@_PROTO_LIBRARIES
|
|
#
|
|
# These three variables allow Gazebo messages to be used in other projects.
|
|
#
|
|
# The following examples are for demonstration purposes and are
|
|
# incomplete. The first example shows how to use a Gazebo message in a
|
|
# custom proto file. The second example shows how to run 'protoc' against
|
|
# custom proto files that make use Gazebo message definitions. The third
|
|
# example shows how to include the correct directory when compiling a library
|
|
# or executable that uses your custom messages.
|
|
#
|
|
# 1. Use a Gazebo message in a custom proto file:
|
|
#
|
|
# package my.msgs;
|
|
# import "vector3d.proto";
|
|
#
|
|
# message MyMessage
|
|
# {
|
|
# required gazebo.msgs.Vector3d p = 1;
|
|
# }
|
|
#
|
|
# 2. Run protoc from a CMakeLists.txt to generate your message's
|
|
# header and source files:
|
|
#
|
|
# add_custom_command(
|
|
# OUTPUT
|
|
# "${proto_filename}.pb.cc"
|
|
# "${proto_filename}.pb.h"
|
|
# COMMAND protoc
|
|
# ARGS --proto_path ${GAZEBO_PROTO_PATH} ${proto_file_out}
|
|
# COMMENT "Running C++ protocol buffer compiler on ${proto_filename}"
|
|
# VERBATIM)
|
|
#
|
|
# 3. When compiling your library or executable, make sure to use the following
|
|
# in the CMakeLists.txt file:
|
|
#
|
|
# include_directories(@PKG_NAME@_PROTO_INCLUDE_DIRS)
|
|
# target_link_libraries(your_package @PKG_NAME@_PROTO_LIBRARIES)
|
|
#
|
|
set(@PKG_NAME@_PROTO_PATH
|
|
"@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@/gazebo-@GAZEBO_MAJOR_VERSION@/gazebo/msgs/proto")
|
|
find_library(gazebo_proto_msgs_lib gazebo_msgs
|
|
PATHS "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@" NO_DEFAULT_PATH)
|
|
list(APPEND @PKG_NAME@_PROTO_LIBRARIES ${gazebo_proto_msgs_lib})
|
|
list(APPEND @PKG_NAME@_PROTO_INCLUDE_DIRS
|
|
"@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@/gazebo-@GAZEBO_MAJOR_VERSION@/gazebo/msgs")
|
|
# End @PKG_NAME@_PROTO_PATH, @PKG_NAME@_PROTO_INCLUDE_DIRS, and
|
|
# @PKG_NAME@_PROTO_LIBRARIES
|
|
|
|
list(APPEND @PKG_NAME@_INCLUDE_DIRS @CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@)
|
|
list(APPEND @PKG_NAME@_INCLUDE_DIRS @CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@/gazebo-@GAZEBO_MAJOR_VERSION@)
|
|
|
|
list(APPEND @PKG_NAME@_LIBRARY_DIRS @CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@)
|
|
list(APPEND @PKG_NAME@_LIBRARY_DIRS @CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/gazebo-@GAZEBO_MAJOR_VERSION@/plugins)
|
|
|
|
list(APPEND @PKG_NAME@_CFLAGS -I@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@)
|
|
list(APPEND @PKG_NAME@_CFLAGS -I@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@/gazebo-@GAZEBO_MAJOR_VERSION@)
|
|
|
|
# Visual Studio enables c++11 support by default
|
|
if (NOT MSVC)
|
|
list(APPEND @PKG_NAME@_CXX_FLAGS -std=c++11)
|
|
endif()
|
|
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" AND
|
|
"${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
|
|
set(@PKG_NAME@_CXX_FLAGS "${@PKG_NAME@_CXX_FLAGS} -stdlib=libc++")
|
|
endif ()
|
|
|
|
foreach(lib @PKG_LIBRARIES@)
|
|
set(onelib "${lib}-NOTFOUND")
|
|
find_library(onelib ${lib}
|
|
PATHS "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@"
|
|
NO_DEFAULT_PATH
|
|
)
|
|
if(NOT onelib)
|
|
message(FATAL_ERROR "Library '${lib}' in package @PKG_NAME@ is not installed properly")
|
|
endif()
|
|
list(APPEND @PKG_NAME@_LIBRARIES ${onelib})
|
|
endforeach()
|
|
|
|
# Get the install prefix for OGRE
|
|
execute_process(COMMAND pkg-config --variable=prefix OGRE
|
|
OUTPUT_VARIABLE OGRE_INSTALL_PREFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
|
# Add the OGRE cmake path to CMAKE_MODULE_PATH
|
|
set(CMAKE_MODULE_PATH
|
|
"${OGRE_INSTALL_PREFIX}/share/OGRE/cmake/modules;${OGRE_INSTALL_PREFIX}/lib/OGRE/cmake;${OGRE_INSTALL_PREFIX}/CMake;${CMAKE_MODULE_PATH}")
|
|
|
|
foreach(dep @PKG_DEPENDS@)
|
|
if(NOT ${dep}_FOUND)
|
|
if (${dep} MATCHES "Boost")
|
|
find_package(Boost @MIN_BOOST_VERSION@ REQUIRED thread signals system filesystem program_options regex iostreams date_time)
|
|
else()
|
|
find_package(${dep} REQUIRED)
|
|
endif()
|
|
endif()
|
|
list(APPEND @PKG_NAME@_INCLUDE_DIRS ${${dep}_INCLUDE_DIRS})
|
|
|
|
# Protobuf needs to be capitalized to match PROTOBUF_LIBRARIES
|
|
if (${dep} STREQUAL "Protobuf")
|
|
string (TOUPPER ${dep} dep_lib)
|
|
else()
|
|
set (dep_lib ${dep})
|
|
endif()
|
|
|
|
list(APPEND @PKG_NAME@_LIBRARIES ${${dep_lib}_LIBRARIES})
|
|
|
|
# When including OGRE, also include the Terrain and Paging components
|
|
if (${dep} STREQUAL "OGRE")
|
|
list(APPEND GAZEBO_INCLUDE_DIRS ${OGRE_Terrain_INCLUDE_DIRS}
|
|
${OGRE_Paging_INCLUDE_DIRS})
|
|
list(APPEND GAZEBO_LIBRARIES ${OGRE_Terrain_LIBRARIES}
|
|
${OGRE_Paging_LIBRARIES})
|
|
endif()
|
|
endforeach()
|
|
|
|
find_package(ignition-math2 REQUIRED)
|
|
list(APPEND @PKG_NAME@_INCLUDE_DIRS ${IGNITION-MATH_INCLUDE_DIRS})
|
|
list(APPEND @PKG_NAME@_LIBRARY_DIRS ${IGNITION-MATH_LIBRARY_DIRS})
|
|
list(APPEND @PKG_NAME@_LIBRARIES ${IGNITION-MATH_LIBRARIES})
|
|
|
|
list(APPEND @PKG_NAME@_LDFLAGS -Wl,-rpath,@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/gazebo-@GAZEBO_MAJOR_VERSION@/plugins)
|
|
list(APPEND @PKG_NAME@_LDFLAGS -L@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@)
|
|
list(APPEND @PKG_NAME@_LDFLAGS -L@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/gazebo-@GAZEBO_MAJOR_VERSION@/plugins)
|