From 5cd2f1c9b617c9b42fdfac9f6d54e96e823e2e9a Mon Sep 17 00:00:00 2001 From: Brian Fjeldstad Date: Thu, 18 Jan 2018 12:10:52 -0800 Subject: [PATCH] laser_geometry should export Eigen3 include dirs --- CMakeLists.txt | 11 +---------- laser_geometry-extras.cmake | 31 +++++++++++++++++++++++++++++++ package.xml | 4 ++-- 3 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 laser_geometry-extras.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 9d9b68e..fd5332d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,14 +16,6 @@ find_package(Boost REQUIRED) # TODO(dhood): enable python support once ported to ROS 2 # catkin_python_setup() -# -#catkin_package( -# INCLUDE_DIRS include -# LIBRARIES laser_geometry -# DEPENDS Boost Eigen -#) -# - include_directories(include ${angles_INCLUDE_DIRS} ${rclcpp_INCLUDE_DIRS} @@ -42,9 +34,8 @@ target_link_libraries(laser_geometry ) ament_export_include_directories(include) -ament_export_dependencies(Eigen3) ament_export_libraries(laser_geometry) -ament_package() +ament_package(CONFIG_EXTRAS laser_geometry-extras.cmake) install(TARGETS laser_geometry ARCHIVE DESTINATION lib diff --git a/laser_geometry-extras.cmake b/laser_geometry-extras.cmake new file mode 100644 index 0000000..aa495ef --- /dev/null +++ b/laser_geometry-extras.cmake @@ -0,0 +1,31 @@ +# Copyright 2015 Open Source Robotics Foundation, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# copied from rclcpp/rclcpp-extras.cmake + +# register ament_package() hook for node plugins once + +find_package(Eigen3 REQUIRED) + +# Eigen3 uses non-standard variable for +# include dirs (case and name): EIGEN3_INCLUDE_DIR. +if(NOT Eigen3_INCLUDE_DIRS) + if (EIGEN3_INCLUDE_DIR) + message(STATUS "append ${EIGEN3_INCLUDE_DIR} to (${laser_geometry_INCLUDE_DIRS})") + list(APPEND laser_geometry_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR}) + message(STATUS "laser_geometry_INCLUDE_DIRS=${laser_geometry_INCLUDE_DIRS}") + else() + message(FATAL_ERROR "Eigen3_INCLUDE_DIRS not found") + endif() +endif() diff --git a/package.xml b/package.xml index e941388..fe0ecf5 100644 --- a/package.xml +++ b/package.xml @@ -21,13 +21,13 @@ ament_cmake angles - ecl_eigen + Eigen3 rclcpp sensor_msgs tf2 angles - ecl_eigen + Eigen3 rclcpp sensor_msgs tf2