diff --git a/src/Libraries/robot_cpp/CMakeLists.txt b/src/Libraries/robot_cpp/CMakeLists.txt
index 91e0193..44d8381 100644
--- a/src/Libraries/robot_cpp/CMakeLists.txt
+++ b/src/Libraries/robot_cpp/CMakeLists.txt
@@ -1,18 +1,4 @@
cmake_minimum_required(VERSION 3.0.2)
-
-# ========================================================
-# Dual-mode CMakeLists.txt: Supports both Catkin and Standalone CMake
-# ========================================================
-
-# Detect if building with Catkin
-if(DEFINED CATKIN_DEVEL_PREFIX OR DEFINED CATKIN_TOPLEVEL)
- set(BUILDING_WITH_CATKIN TRUE)
- message(STATUS "Building robot_cpp with Catkin")
-else()
- set(BUILDING_WITH_CATKIN FALSE)
- message(STATUS "Building robot_cpp with Standalone CMake")
-endif()
-
project(robot_cpp)
set(CMAKE_CXX_STANDARD 17)
@@ -23,10 +9,25 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
# Find Packages
# ========================================================
+if(DEFINED CATKIN_DEVEL_PREFIX OR DEFINED CATKIN_TOPLEVEL)
+ set(BUILDING_WITH_CATKIN TRUE)
+ message(STATUS "Building robot_cpp with Catkin")
+else()
+ set(BUILDING_WITH_CATKIN FALSE)
+ message(STATUS "Building robot_cpp with Standalone CMake")
+endif()
+
+
if(BUILDING_WITH_CATKIN)
## Find catkin macros and libraries
find_package(catkin REQUIRED COMPONENTS
- robot_xmlrpcpp
+ robot_xmlrpcpp
+ robot_time
+ )
+ catkin_package(
+ INCLUDE_DIRS include
+ LIBRARIES robot_cpp
+ CATKIN_DEPENDS robot_xmlrpcpp robot_time
)
endif()
@@ -44,105 +45,7 @@ if(PkgConfig_FOUND)
endif()
endif()
-# If pkg-config didn't work, find shared library directly, prioritizing /usr/lib
-if(NOT YAML_CPP_TARGET)
- # First try system paths (avoid /usr/local which may have static library)
- find_library(YAML_CPP_SHARED_LIB
- NAMES yaml-cpp
- PATHS /usr/lib
- PATH_SUFFIXES x86_64-linux-gnu
- NO_DEFAULT_PATH
- )
-
- if(YAML_CPP_SHARED_LIB AND EXISTS "${YAML_CPP_SHARED_LIB}")
- # Verify it's actually a shared library (not a symlink to static)
- get_filename_component(YAML_CPP_REAL_LIB "${YAML_CPP_SHARED_LIB}" REALPATH)
- if(YAML_CPP_REAL_LIB MATCHES "\\.so")
- set(YAML_CPP_TARGET ${YAML_CPP_SHARED_LIB})
- message(STATUS "Found yaml-cpp shared library in /usr/lib: ${YAML_CPP_SHARED_LIB}")
- # Also find include directory
- find_path(YAML_CPP_INCLUDE_DIR
- NAMES yaml-cpp/yaml.h
- PATHS /usr/include
- NO_DEFAULT_PATH
- )
- if(YAML_CPP_INCLUDE_DIR)
- message(STATUS "Found yaml-cpp include directory: ${YAML_CPP_INCLUDE_DIR}")
- endif()
- endif()
- endif()
-endif()
-
-# Now use find_package, but temporarily exclude /usr/local to avoid static library
-set(CMAKE_PREFIX_PATH_SAVED ${CMAKE_PREFIX_PATH})
-list(REMOVE_ITEM CMAKE_PREFIX_PATH "/usr/local")
find_package(yaml-cpp QUIET)
-set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH_SAVED})
-
-# Use target if available and we haven't found a library yet
-if(NOT YAML_CPP_TARGET)
- if(TARGET yaml-cpp::yaml-cpp)
- set(YAML_CPP_TARGET yaml-cpp::yaml-cpp)
- message(STATUS "Using yaml-cpp target: yaml-cpp::yaml-cpp")
- elseif(TARGET yaml-cpp)
- set(YAML_CPP_TARGET yaml-cpp)
- message(STATUS "Using yaml-cpp target: yaml-cpp")
- else()
- # Last resort: try to find any library, but check if it's static
- find_library(YAML_CPP_ANY_LIB
- NAMES yaml-cpp
- PATHS /usr/lib /usr/local/lib /lib
- PATH_SUFFIXES x86_64-linux-gnu
- )
-
- if(YAML_CPP_ANY_LIB)
- if(YAML_CPP_ANY_LIB MATCHES "\\.a$")
- message(FATAL_ERROR
- "yaml-cpp static library found at: ${YAML_CPP_ANY_LIB}\n"
- "This cannot be linked into a shared library.\n"
- "Solution: Remove static library or use system shared library:\n"
- " sudo rm /usr/local/lib/libyaml-cpp.a\n"
- "Or ensure /usr/lib/x86_64-linux-gnu/libyaml-cpp.so is found first."
- )
- else()
- set(YAML_CPP_TARGET ${YAML_CPP_ANY_LIB})
- message(STATUS "Found yaml-cpp library: ${YAML_CPP_TARGET}")
- endif()
- else()
- set(YAML_CPP_TARGET yaml-cpp)
- message(WARNING "yaml-cpp library not found. Using library name 'yaml-cpp'")
- endif()
- endif()
-endif()
-
-find_package(console_bridge REQUIRED)
-
-# ========================================================
-# Catkin specific configuration
-# ========================================================
-
-if(BUILDING_WITH_CATKIN)
- ## The catkin_package macro generates cmake config files for your package
- ## Note: yaml-cpp and console_bridge are system dependencies, not declared in DEPENDS
- ## as they don't provide the required INCLUDE_DIRS/LIBRARIES variables for catkin
- catkin_package(
- INCLUDE_DIRS include
- LIBRARIES robot_cpp
- CATKIN_DEPENDS robot_xmlrpcpp
- )
-endif()
-
-###########
-## Build ##
-###########
-
-## Compiler flags
-if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- # Warning flags - disabled to suppress warnings during build
- # add_compile_options(-Wall -Wextra -Wpedantic -fPIC)
- add_compile_options(-w -fPIC) # -w suppresses all warnings
-endif()
-
## Include directories
include_directories(
include
@@ -170,30 +73,18 @@ target_include_directories(${PROJECT_NAME}
## Link libraries
# Use the determined yaml-cpp target/library
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- ${YAML_CPP_TARGET}
- robot_xmlrpcpp
- robot_time
- PRIVATE
- dl # Required for dladdr() function used in plugin_loader_helper.cpp
-)
-
-# Check if we're using static library and warn user
-if(YAML_CPP_TARGET MATCHES "\\.a$" OR YAML_CPP_TARGET MATCHES "libyaml-cpp\\.a")
- message(FATAL_ERROR
- "yaml-cpp static library detected at: ${YAML_CPP_TARGET}\n"
- "Static libraries cannot be linked into shared libraries without -fPIC.\n"
- "Solution: Install shared library version:\n"
- " sudo apt-get install libyaml-cpp-dev\n"
- "Or rebuild yaml-cpp with -fPIC flag."
- )
-endif()
-
-
-## Add cmake target dependencies
-if(BUILDING_WITH_CATKIN)
+if(BUILDING_WITH_CATKIN)
add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+ target_link_libraries(${PROJECT_NAME} ${catkin_TARGETS})
+else()
+ target_link_libraries(${PROJECT_NAME}
+ PUBLIC
+ ${YAML_CPP_TARGET}
+ robot_xmlrpcpp
+ robot_time
+ PRIVATE
+ dl # Required for dladdr() function used in plugin_loader_helper.cpp
+ )
endif()
set_target_properties(${PROJECT_NAME} PROPERTIES
diff --git a/src/Libraries/robot_cpp/package.xml b/src/Libraries/robot_cpp/package.xml
index dd08f5e..48c3787 100644
--- a/src/Libraries/robot_cpp/package.xml
+++ b/src/Libraries/robot_cpp/package.xml
@@ -19,10 +19,9 @@
catkin
- libconsole-bridge-dev
robot_xmlrpcpp
-
- libconsole-bridge-dev
+ robot_time
robot_xmlrpcpp
+ robot_time
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/Libraries/robot_nav_2d_utils/CMakeLists.txt b/src/Libraries/robot_nav_2d_utils/CMakeLists.txt
index 7c6727f..f1dc735 100755
--- a/src/Libraries/robot_nav_2d_utils/CMakeLists.txt
+++ b/src/Libraries/robot_nav_2d_utils/CMakeLists.txt
@@ -1,19 +1,4 @@
cmake_minimum_required(VERSION 3.10)
-
-# ========================================================
-# Dual-mode CMakeLists.txt: Supports both Catkin and Standalone CMake
-# ========================================================
-
-# Detect if building with Catkin
-if(DEFINED CATKIN_DEVEL_PREFIX OR DEFINED CATKIN_TOPLEVEL)
- set(BUILDING_WITH_CATKIN TRUE)
- message(STATUS "Building robot_nav_2d_utils with Catkin")
- find_package(catkin REQUIRED)
-else()
- set(BUILDING_WITH_CATKIN FALSE)
- message(STATUS "Building robot_nav_2d_utils with Standalone CMake")
-endif()
-
project(robot_nav_2d_utils VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
@@ -32,7 +17,18 @@ set(CMAKE_BUILD_RPATH "${CMAKE_BINARY_DIR}")
# Catkin specific configuration
# ========================================================
+if(DEFINED CATKIN_DEVEL_PREFIX OR DEFINED CATKIN_TOPLEVEL)
+ set(BUILDING_WITH_CATKIN TRUE)
+ message(STATUS "Building robot_nav_2d_utils with Catkin")
+
+else()
+ set(BUILDING_WITH_CATKIN FALSE)
+ message(STATUS "Building robot_nav_2d_utils with Standalone CMake")
+endif()
+
if(BUILDING_WITH_CATKIN)
+ find_package(catkin REQUIRED COMPONENTS robot_xmlrpcpp)
+
catkin_package(
INCLUDE_DIRS include
LIBRARIES conversions path_ops polygons bounds tf_help robot_nav_2d_utils
diff --git a/src/Libraries/robot_nav_2d_utils/package.xml b/src/Libraries/robot_nav_2d_utils/package.xml
index 1d8d44b..de0118f 100755
--- a/src/Libraries/robot_nav_2d_utils/package.xml
+++ b/src/Libraries/robot_nav_2d_utils/package.xml
@@ -19,8 +19,7 @@
catkin
- libconsole-bridge-dev
-
- libconsole-bridge-dev
+ robot_xmlrpcpp
+ robot_xmlrpcpp
\ No newline at end of file
diff --git a/src/Libraries/tf3/include/tf3/LinearMath/MinMax.h b/src/Libraries/tf3/include/tf3/LinearMath/MinMax.h
index 9b699b2..801e054 100644
--- a/src/Libraries/tf3/include/tf3/LinearMath/MinMax.h
+++ b/src/Libraries/tf3/include/tf3/LinearMath/MinMax.h
@@ -14,8 +14,8 @@ subject to the following restrictions:
-#ifndef GEN_MINMAX_H
-#define GEN_MINMAX_H
+#ifndef TF3_GEN_MINMAX_H
+#define TF3_GEN_MINMAX_H
#include "Scalar.h"
@@ -33,7 +33,7 @@ TF3SIMD_FORCE_INLINE const T& tf3Max(const T& a, const T& b)
}
template
-TF3SIMD_FORCE_INLINE const T& GEN_clamped(const T& a, const T& lb, const T& ub)
+TF3SIMD_FORCE_INLINE const T& tf3GEN_clamped(const T& a, const T& lb, const T& ub)
{
return a < lb ? lb : (ub < a ? ub : a);
}
@@ -57,7 +57,7 @@ TF3SIMD_FORCE_INLINE void tf3SetMax(T& a, const T& b)
}
template
-TF3SIMD_FORCE_INLINE void GEN_clamp(T& a, const T& lb, const T& ub)
+TF3SIMD_FORCE_INLINE void tf3GEN_clamp(T& a, const T& lb, const T& ub)
{
if (a < lb)
{
diff --git a/src/Libraries/xmlrpcpp b/src/Libraries/xmlrpcpp
index a933044..6a3dea8 160000
--- a/src/Libraries/xmlrpcpp
+++ b/src/Libraries/xmlrpcpp
@@ -1 +1 @@
-Subproject commit a93304418d9e20c841dd8bf0ea9c9755eb57601f
+Subproject commit 6a3dea8614c3833c8bc17c160762b5d75f1b2413