update hieplm
This commit is contained in:
parent
a471130273
commit
9b27b9d731
|
|
@ -1 +1 @@
|
|||
Subproject commit fb03bdf2e8695f3d01ea80a52107bd18d7802062
|
||||
Subproject commit 5c276afb3469a4618e3d2f3523a27bff2f9fb3c8
|
||||
|
|
@ -1,5 +1,19 @@
|
|||
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_msgs with Catkin")
|
||||
find_package(catkin REQUIRED)
|
||||
else()
|
||||
set(BUILDING_WITH_CATKIN FALSE)
|
||||
message(STATUS "Building robot_nav_2d_msgs with Standalone CMake")
|
||||
endif()
|
||||
|
||||
project(robot_nav_2d_msgs VERSION 1.0.0 LANGUAGES CXX)
|
||||
|
||||
# Chuẩn C++
|
||||
|
|
@ -7,6 +21,22 @@ set(CMAKE_CXX_STANDARD 17)
|
|||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
# ========================================================
|
||||
# Catkin specific configuration
|
||||
# ========================================================
|
||||
|
||||
if(BUILDING_WITH_CATKIN)
|
||||
## The catkin_package macro generates cmake config files for your package
|
||||
## Note: Dependencies (robot_std_msgs, geometry_msgs) are not Catkin packages,
|
||||
## they are built as CMake targets in the same workspace and will be available
|
||||
## when this package is built. They are linked via target_link_libraries instead of CATKIN_DEPENDS
|
||||
catkin_package(
|
||||
INCLUDE_DIRS include
|
||||
# LIBRARIES không cần vì đây là header-only library
|
||||
# CATKIN_DEPENDS không cần vì dependencies không phải Catkin packages
|
||||
)
|
||||
endif()
|
||||
|
||||
# Tìm tất cả header files
|
||||
file(GLOB_RECURSE HEADERS "include/robot_nav_2d_msgs/*.h")
|
||||
|
||||
|
|
@ -28,10 +58,25 @@ target_link_libraries(robot_nav_2d_msgs
|
|||
geometry_msgs
|
||||
)
|
||||
|
||||
# Add include directories from dependencies explicitly for Catkin build
|
||||
if(BUILDING_WITH_CATKIN)
|
||||
# Use relative paths from current source directory
|
||||
# From robot_nav_2d_msgs (pnkx_nav_core/src/Libraries/robot_nav_2d_msgs)
|
||||
# to robot_std_msgs (pnkx_nav_core/src/Libraries/common_msgs/robot_std_msgs) is ../common_msgs/robot_std_msgs
|
||||
get_filename_component(ROBOT_STD_MSGS_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/../common_msgs/robot_std_msgs/include" ABSOLUTE)
|
||||
get_filename_component(GEOMETRY_MSGS_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/../common_msgs/robot_geometry_msgs/include" ABSOLUTE)
|
||||
target_include_directories(robot_nav_2d_msgs INTERFACE
|
||||
$<BUILD_INTERFACE:${ROBOT_STD_MSGS_INCLUDE}>
|
||||
$<BUILD_INTERFACE:${GEOMETRY_MSGS_INCLUDE}>
|
||||
)
|
||||
endif()
|
||||
|
||||
# Cài đặt header files
|
||||
install(DIRECTORY include/robot_nav_2d_msgs
|
||||
DESTINATION include
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
if(NOT BUILDING_WITH_CATKIN)
|
||||
install(DIRECTORY include/robot_nav_2d_msgs
|
||||
DESTINATION include
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
endif()
|
||||
|
||||
# Cài đặt target
|
||||
install(TARGETS robot_nav_2d_msgs
|
||||
|
|
|
|||
|
|
@ -1,5 +1,19 @@
|
|||
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)
|
||||
|
|
@ -9,6 +23,24 @@ set(CMAKE_CXX_EXTENSIONS OFF)
|
|||
# Enable Position Independent Code
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
# Cấu hình RPATH để tránh cycle trong runtime search path
|
||||
set(CMAKE_BUILD_RPATH_USE_ORIGIN TRUE)
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
set(CMAKE_BUILD_RPATH "${CMAKE_BINARY_DIR}")
|
||||
|
||||
# ========================================================
|
||||
# Catkin specific configuration
|
||||
# ========================================================
|
||||
|
||||
if(BUILDING_WITH_CATKIN)
|
||||
catkin_package(
|
||||
INCLUDE_DIRS include
|
||||
LIBRARIES conversions path_ops polygons bounds tf_help robot_nav_2d_utils
|
||||
# CATKIN_DEPENDS không cần vì dependencies không phải Catkin packages
|
||||
DEPENDS console_bridge Boost
|
||||
)
|
||||
endif()
|
||||
|
||||
# Find dependencies
|
||||
find_package(console_bridge REQUIRED)
|
||||
find_package(Boost REQUIRED COMPONENTS system thread)
|
||||
|
|
@ -36,6 +68,8 @@ target_link_libraries(conversions
|
|||
|
||||
set_target_properties(conversions PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
BUILD_RPATH "${CMAKE_BINARY_DIR}"
|
||||
INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib"
|
||||
)
|
||||
|
||||
add_library(path_ops src/path_ops.cpp)
|
||||
|
|
@ -51,6 +85,12 @@ target_link_libraries(path_ops
|
|||
robot_cpp
|
||||
)
|
||||
|
||||
set_target_properties(path_ops PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
BUILD_RPATH "${CMAKE_BINARY_DIR}"
|
||||
INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib"
|
||||
)
|
||||
|
||||
add_library(polygons src/polygons.cpp src/footprint.cpp)
|
||||
target_include_directories(polygons
|
||||
PUBLIC
|
||||
|
|
@ -77,6 +117,8 @@ endif()
|
|||
|
||||
set_target_properties(polygons PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
BUILD_RPATH "${CMAKE_BINARY_DIR}"
|
||||
INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib"
|
||||
)
|
||||
|
||||
add_library(bounds src/bounds.cpp)
|
||||
|
|
@ -94,6 +136,8 @@ target_link_libraries(bounds
|
|||
|
||||
set_target_properties(bounds PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
BUILD_RPATH "${CMAKE_BINARY_DIR}"
|
||||
INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib"
|
||||
)
|
||||
|
||||
add_library(tf_help src/tf_help.cpp)
|
||||
|
|
@ -113,6 +157,8 @@ target_link_libraries(tf_help
|
|||
|
||||
set_target_properties(tf_help PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
BUILD_RPATH "${CMAKE_BINARY_DIR}"
|
||||
INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib"
|
||||
)
|
||||
|
||||
# Create an INTERFACE library that represents all robot_nav_2d_utils libraries
|
||||
|
|
@ -133,14 +179,16 @@ target_link_libraries(robot_nav_2d_utils
|
|||
)
|
||||
|
||||
# Install header files
|
||||
install(DIRECTORY include/robot_nav_2d_utils
|
||||
DESTINATION include
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
if(NOT BUILDING_WITH_CATKIN)
|
||||
install(DIRECTORY include/robot_nav_2d_utils
|
||||
DESTINATION include
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
|
||||
# Install mapbox headers
|
||||
install(DIRECTORY include/mapbox
|
||||
DESTINATION include
|
||||
FILES_MATCHING PATTERN "*.hpp")
|
||||
# Install mapbox headers
|
||||
install(DIRECTORY include/mapbox
|
||||
DESTINATION include
|
||||
FILES_MATCHING PATTERN "*.hpp")
|
||||
endif()
|
||||
|
||||
# Install targets
|
||||
install(TARGETS robot_nav_2d_utils conversions path_ops polygons bounds tf_help
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit d42ae54383af04a7d7654b4039466ac9c208fdef
|
||||
Subproject commit 504de86ee92a2684564cc3a561f3f534eb798160
|
||||
|
|
@ -1,12 +1,44 @@
|
|||
cmake_minimum_required(VERSION 3.0.2)
|
||||
|
||||
project(tf3)
|
||||
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
# Cấu hình RPATH để tránh cycle trong runtime search path
|
||||
set(CMAKE_BUILD_RPATH_USE_ORIGIN TRUE)
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
set(CMAKE_BUILD_RPATH "${CMAKE_BINARY_DIR}")
|
||||
|
||||
# ========================================================
|
||||
# Find Packages
|
||||
# ========================================================
|
||||
# ========================================================
|
||||
# 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)
|
||||
|
||||
find_package(catkin REQUIRED COMPONENTS console_bridge)
|
||||
else()
|
||||
set(BUILDING_WITH_CATKIN FALSE)
|
||||
endif()
|
||||
|
||||
find_package(console_bridge REQUIRED)
|
||||
find_package(Boost REQUIRED COMPONENTS system thread)
|
||||
|
||||
# ========================================================
|
||||
# Catkin specific configuration
|
||||
# ========================================================
|
||||
|
||||
if(BUILDING_WITH_CATKIN)
|
||||
## The catkin_package macro generates cmake config files for your package
|
||||
catkin_package(
|
||||
INCLUDE_DIRS include
|
||||
LIBRARIES tf3
|
||||
DEPENDS console_bridge
|
||||
)
|
||||
endif()
|
||||
include_directories(include ${console_bridge_INCLUDE_DIRS})
|
||||
|
||||
# export user definitions
|
||||
|
|
@ -16,7 +48,14 @@ add_library(tf3 src/cache.cpp src/buffer_core.cpp src/static_cache.cpp)
|
|||
target_link_libraries(tf3 ${Boost_LIBRARIES} ${console_bridge_LIBRARIES})
|
||||
set_target_properties(tf3 PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
BUILD_RPATH "${CMAKE_BINARY_DIR}"
|
||||
INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib"
|
||||
)
|
||||
|
||||
## Add cmake target dependencies
|
||||
if(BUILDING_WITH_CATKIN)
|
||||
add_dependencies(tf3 ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
|
||||
endif()
|
||||
target_include_directories(tf3 PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:include>)
|
||||
|
|
@ -27,20 +66,21 @@ target_link_libraries(simple_tf3_example PRIVATE tf3 pthread ${console_bridge_LI
|
|||
set_target_properties(simple_tf3_example PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
)
|
||||
# Export target trong mọi trường hợp để các target khác có thể export và phụ thuộc vào nó
|
||||
install(TARGETS tf3
|
||||
EXPORT tf3-targets
|
||||
ARCHIVE DESTINATION lib
|
||||
LIBRARY DESTINATION lib
|
||||
RUNTIME DESTINATION bin
|
||||
)
|
||||
|
||||
install(DIRECTORY include/${PROJECT_NAME}/
|
||||
DESTINATION include/${PROJECT_NAME}
|
||||
)
|
||||
if(NOT BUILDING_WITH_CATKIN)
|
||||
install(DIRECTORY include/${PROJECT_NAME}/
|
||||
DESTINATION include/${PROJECT_NAME}
|
||||
)
|
||||
endif()
|
||||
|
||||
install(TARGETS tf3
|
||||
EXPORT tf3-targets)
|
||||
|
||||
# Export targets
|
||||
# Export targets - cần trong mọi trường hợp
|
||||
install(EXPORT tf3-targets
|
||||
FILE tf3-targets.cmake
|
||||
NAMESPACE tf3::
|
||||
|
|
|
|||
|
|
@ -1,41 +1,64 @@
|
|||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
# Tên dự án
|
||||
project(move_base_core VERSION 1.0.0 LANGUAGES CXX)
|
||||
|
||||
# Chuẩn C++
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# Cho phép các project khác include được header của move_base_core
|
||||
set(MOVE_BASE_CORE_INCLUDE_DIRS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
PARENT_SCOPE
|
||||
)
|
||||
# ========================================================
|
||||
# Catkin specific configuration
|
||||
# ========================================================
|
||||
if(DEFINED CATKIN_DEVEL_PREFIX OR DEFINED CATKIN_TOPLEVEL)
|
||||
set(BUILDING_WITH_CATKIN TRUE)
|
||||
message(STATUS "Building move_base_core with Catkin")
|
||||
else()
|
||||
set(BUILDING_WITH_CATKIN FALSE)
|
||||
message(STATUS "Building move_base_core with Standalone CMake")
|
||||
endif()
|
||||
|
||||
include_directories(
|
||||
${PROJECT_SOURCE_DIR}/include
|
||||
)
|
||||
if(BUILDING_WITH_CATKIN)
|
||||
find_package(catkin REQUIRED COMPONENTS tf3 robot_time robot_geometry_msgs robot_protocol_msgs robot_nav_2d_msgs)
|
||||
|
||||
catkin_package(
|
||||
INCLUDE_DIRS include
|
||||
LIBRARIES move_base_core
|
||||
CATKIN_DEPENDS tf3 robot_time robot_geometry_msgs robot_protocol_msgs robot_nav_2d_msgs
|
||||
# CATKIN_DEPENDS không cần vì dependencies không phải Catkin packages
|
||||
)
|
||||
endif()
|
||||
|
||||
# Tìm tất cả header files
|
||||
file(GLOB HEADERS "include/move_base_core/*.h")
|
||||
|
||||
# Tạo INTERFACE library (header-only)
|
||||
add_library(move_base_core INTERFACE)
|
||||
target_link_libraries(move_base_core
|
||||
INTERFACE tf3 robot_time robot_geometry_msgs robot_protocol_msgs)
|
||||
|
||||
# Set include directories
|
||||
# Set include directories trước khi link libraries
|
||||
target_include_directories(move_base_core
|
||||
INTERFACE
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
)
|
||||
|
||||
# Link với dependencies - include directories sẽ được truyền tự động qua INTERFACE properties
|
||||
if(BUILDING_WITH_CATKIN)
|
||||
target_link_libraries(move_base_core INTERFACE ${catkin_TARGETS})
|
||||
else()
|
||||
target_link_libraries(move_base_core
|
||||
INTERFACE
|
||||
tf3
|
||||
robot_time
|
||||
robot_geometry_msgs
|
||||
robot_protocol_msgs
|
||||
robot_nav_2d_msgs # Thêm vì navigation.h include robot_nav_2d_msgs/Twist2DStamped.h
|
||||
)
|
||||
endif()
|
||||
|
||||
# Cài đặt header files
|
||||
install(DIRECTORY include/move_base_core
|
||||
DESTINATION include
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
if(NOT BUILDING_WITH_CATKIN)
|
||||
install(DIRECTORY include/move_base_core
|
||||
DESTINATION include
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
endif()
|
||||
|
||||
# Cài đặt target
|
||||
install(TARGETS move_base_core
|
||||
|
|
|
|||
|
|
@ -19,8 +19,16 @@
|
|||
|
||||
<buildtool_depend version_gte="0.5.68">catkin</buildtool_depend>
|
||||
|
||||
<build_depend>libconsole-bridge-dev</build_depend>
|
||||
<build_depend>tf3</build_depend>
|
||||
<build_depend>robot_time</build_depend>
|
||||
<build_depend>robot_geometry_msgs</build_depend>
|
||||
<build_depend>robot_protocol_msgs</build_depend>
|
||||
<build_depend>robot_nav_2d_msgs</build_depend>
|
||||
|
||||
<run_depend>libconsole-bridge-dev</run_depend>
|
||||
<run_depend>tf3</run_depend>
|
||||
<run_depend>robot_time</run_depend>
|
||||
<run_depend>robot_geometry_msgs</run_depend>
|
||||
<run_depend>robot_protocol_msgs</run_depend>
|
||||
<run_depend>robot_nav_2d_msgs</run_depend>
|
||||
|
||||
</package>
|
||||
Loading…
Reference in New Issue
Block a user