diff --git a/src/Navigations/Packages/move_base/CMakeLists.txt b/src/Navigations/Packages/move_base/CMakeLists.txt index 6072eaa..1094967 100644 --- a/src/Navigations/Packages/move_base/CMakeLists.txt +++ b/src/Navigations/Packages/move_base/CMakeLists.txt @@ -29,24 +29,6 @@ endif() # ======================================================== find_package(Boost REQUIRED) -# If building with Catkin, use catkin_package to find dependencies -if(BUILDING_WITH_CATKIN) - find_package(catkin REQUIRED COMPONENTS - roscpp - rospy - std_msgs - geometry_msgs - nav_msgs - tf2 - tf2_ros - actionlib - dynamic_reconfigure - ) - - # Find internal packages (these should be built in the same workspace) - # Catkin will handle these through workspace dependencies - find_package(yaml-cpp REQUIRED) -endif() # ======================================================== # Source Files @@ -61,11 +43,6 @@ include_directories( ${PROJECT_SOURCE_DIR}/include ) -if(BUILDING_WITH_CATKIN) - include_directories( - ${catkin_INCLUDE_DIRS} - ) -endif() # ======================================================== # RPATH settings: ưu tiên thư viện build tại chỗ @@ -84,84 +61,36 @@ add_library(move_base SHARED ${SOURCES} ${HEADERS}) # ======================================================== # Dependencies and Link Libraries # ======================================================== -if(BUILDING_WITH_CATKIN) - # Catkin mode: use catkin dependencies - catkin_package( - INCLUDE_DIRS include - LIBRARIES move_base - CATKIN_DEPENDS - roscpp - rospy - std_msgs - geometry_msgs - nav_msgs - tf2 - tf2_ros - actionlib - dynamic_reconfigure - DEPENDS - yaml-cpp - Boost - ) - - # Link against catkin packages - target_link_libraries(move_base - ${catkin_LIBRARIES} - ${Boost_LIBRARIES} - yaml-cpp - ) - - # Internal packages (assumed to be in same workspace) - # These will be linked via catkin workspace dependencies - target_link_libraries(move_base - move_base_core - nav_core - costmap_2d - plugins # Link với plugins library để có StaticLayer typeinfo - xmlrpcpp - robot_cpp - tf3_sensor_msgs - tf3_geometry_msgs - dl - pthread - ) - - # Set RPATH để ưu tiên thư viện build cục bộ - set_target_properties(move_base PROPERTIES - BUILD_RPATH "${CMAKE_BINARY_DIR}/src/Libraries/costmap_2d:${CMAKE_BINARY_DIR}/src/Libraries/node_handle:${CMAKE_BINARY_DIR}/src/Libraries/tf3:${CMAKE_BINARY_DIR}/src/Libraries/robot_time:${CMAKE_BINARY_DIR}/src/Libraries/xmlrpcpp" - INSTALL_RPATH "${CMAKE_BINARY_DIR}/src/Libraries/costmap_2d:${CMAKE_BINARY_DIR}/src/Libraries/node_handle:${CMAKE_BINARY_DIR}/src/Libraries/tf3:${CMAKE_BINARY_DIR}/src/Libraries/robot_time:${CMAKE_BINARY_DIR}/src/Libraries/xmlrpcpp" - LINK_FLAGS "-Wl,--disable-new-dtags" - ) -else() - # Standalone CMake mode: link all dependencies manually - set(PACKAGES_DIR - geometry_msgs - std_msgs - move_base_core - nav_core - costmap_2d - plugins # Link với plugins library để có StaticLayer typeinfo - yaml-cpp - xmlrpcpp - tf3_sensor_msgs - tf3_geometry_msgs - data_convert - dl - pthread - robot_nav_2d_utils - ) - - target_link_libraries(move_base - PUBLIC ${PACKAGES_DIR} - PUBLIC robot_cpp - PRIVATE Boost::boost - ) - - # Set RPATH để ưu tiên thư viện build cục bộ - set_target_properties(move_base PROPERTIES - LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} - ) -endif() + +# Standalone CMake mode: link all dependencies manually +set(PACKAGES_DIR + geometry_msgs + std_msgs + move_base_core + nav_core + costmap_2d + plugins # Link với plugins library để có StaticLayer typeinfo + yaml-cpp + xmlrpcpp + tf3_sensor_msgs + tf3_geometry_msgs + data_convert + dl + pthread + robot_nav_2d_utils +) + +target_link_libraries(move_base + PUBLIC ${PACKAGES_DIR} + PUBLIC robot_cpp + PRIVATE Boost::boost +) + +# Set RPATH để ưu tiên thư viện build cục bộ +set_target_properties(move_base PROPERTIES + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} +) + # ======================================================== # Include Directories for Target @@ -187,12 +116,6 @@ target_link_libraries(move_base_main PRIVATE Boost::boost ) -if(BUILDING_WITH_CATKIN) - target_link_libraries(move_base_main - PRIVATE ${catkin_LIBRARIES} - ) -endif() - # Set RPATH for executable to find libraries in build directory first # Use RPATH instead of RUNPATH for higher priority set_target_properties(move_base_main PROPERTIES @@ -208,37 +131,25 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--disable-new-dtags") # ======================================================== # Installation # ======================================================== -if(BUILDING_WITH_CATKIN) - # Catkin installation - install(DIRECTORY include/move_base - DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} - FILES_MATCHING PATTERN "*.h" - ) - - install(TARGETS move_base move_base_main - ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} - ) -else() - # Standalone CMake installation - install(DIRECTORY include/move_base - DESTINATION include - FILES_MATCHING PATTERN "*.h" - ) - - install(TARGETS move_base move_base_main - EXPORT move_base-targets - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - RUNTIME DESTINATION bin - ) - - install(EXPORT move_base-targets - FILE move_base-targets.cmake - DESTINATION lib/cmake/move_base - ) -endif() + +# Standalone CMake installation +install(DIRECTORY include/move_base + DESTINATION include + FILES_MATCHING PATTERN "*.h" +) + +install(TARGETS move_base move_base_main + EXPORT move_base-targets + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin +) + +install(EXPORT move_base-targets + FILE move_base-targets.cmake + DESTINATION lib/cmake/move_base +) + # ======================================================== # Build Options