-
-
Notifications
You must be signed in to change notification settings - Fork 49
Expand file tree
/
Copy pathros-jazzy-navmap-ros.patch
More file actions
54 lines (51 loc) · 1.88 KB
/
Copy pathros-jazzy-navmap-ros.patch
File metadata and controls
54 lines (51 loc) · 1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3f6c3f0..4b2c4d4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,27 @@
cmake_minimum_required(VERSION 3.10)
project(navmap_ros)
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()
+
+# Avoid leaking system Eigen (e.g. /usr/include/eigen3) into exported include
+# directories through PCL.
+set(_eigen_prefix "")
+if(DEFINED ENV{PREFIX})
+ set(_eigen_prefix "$ENV{PREFIX}")
+elseif(DEFINED ENV{CONDA_PREFIX})
+ set(_eigen_prefix "$ENV{CONDA_PREFIX}")
+endif()
+if(_eigen_prefix)
+ set(Eigen3_DIR "${_eigen_prefix}/share/eigen3/cmake" CACHE PATH "" FORCE)
+ set(EIGEN3_INCLUDE_DIR "${_eigen_prefix}/include/eigen3" CACHE PATH "" FORCE)
+ set(EIGEN3_INCLUDE_DIRS "${_eigen_prefix}/include/eigen3" CACHE PATH "" FORCE)
+endif()
+find_package(Eigen3 CONFIG QUIET)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -15,7 +36,18 @@ find_package(navmap_ros_interfaces REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(nav_msgs REQUIRED)
find_package(sensor_msgs REQUIRED)
find_package(std_srvs REQUIRED)
find_package(PCL REQUIRED COMPONENTS common io kdtree search)
+
+# PCLConfig.cmake may inject system Eigen include paths; filter them out to
+# prevent mixing system Eigen with the conda/pixi Eigen.
if(PCL_INCLUDE_DIRS)
# Be permissive: the entry may have a trailing slash or whitespace depending
# on how PCL was configured.
list(FILTER PCL_INCLUDE_DIRS EXCLUDE REGEX "/usr/include/eigen3")
endif()
+if(EIGEN3_INCLUDE_DIRS AND PCL_INCLUDE_DIRS)
+ list(FIND PCL_INCLUDE_DIRS "${EIGEN3_INCLUDE_DIRS}" _eigen_idx)
+ if(_eigen_idx EQUAL -1)
+ list(APPEND PCL_INCLUDE_DIRS "${EIGEN3_INCLUDE_DIRS}")
+ endif()
+endif()
+
find_package(pcl_conversions REQUIRED)
add_library(${PROJECT_NAME} SHARED
src/${PROJECT_NAME}/conversions.cpp