From 3c65c986dd7fa5a87e1a7e136702c3b1a06480ee Mon Sep 17 00:00:00 2001 From: Olivier Stasse Date: Fri, 4 Oct 2024 03:18:48 +0200 Subject: [PATCH 1/6] Add ros2.cmake file for _install_projet_ros2_ament_files --- ros2.cmake | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 ros2.cmake diff --git a/ros2.cmake b/ros2.cmake new file mode 100644 index 000000000..8ae1b80a6 --- /dev/null +++ b/ros2.cmake @@ -0,0 +1,47 @@ +# Copyright (C) 2024 LAAS-CNRS, JRL AIST-CNRS. +# +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program. If not, see . + +# This macro creates 3 files which are allowing a package to be found +# using the AMENT system present in ros 2 +# Setting BUILDING_ROS2_PACKAGE is enough to trigger this behavior. +# _install_project_ros2_ament_files() +macro(_install_project_ros2_ament_files) + if(BUILDING_ROS2_PACKAGE) + message(STATUS "Create files for AMENT (ROS 2)") + # Allows Colcon to find non-Ament packages when using workspace underlays + file( + WRITE + ${CMAKE_CURRENT_BINARY_DIR}/share/ament_index/resource_index/packages/${PROJECT_NAME} + "") + install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/share/ament_index/resource_index/packages/${PROJECT_NAME} + DESTINATION share/ament_index/resource_index/packages) + file( + WRITE + ${CMAKE_CURRENT_BINARY_DIR}/share/${PROJECT_NAME}/hook/ament_prefix_path.dsv + "prepend-non-duplicate;AMENT_PREFIX_PATH;") + install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/share/${PROJECT_NAME}/hook/ament_prefix_path.dsv + DESTINATION share/${PROJECT_NAME}/hook) + file(WRITE + ${CMAKE_CURRENT_BINARY_DIR}/share/${PROJECT_NAME}/hook/python_path.dsv + "prepend-non-duplicate;PYTHONPATH;${PYTHON_SITELIB}") + install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/share/${PROJECT_NAME}/hook/python_path.dsv + DESTINATION share/${PROJECT_NAME}/hook) + endif(BUILDING_ROS2_PACKAGE) +endmacro(_install_project_ros2_ament_files) From 313cd97aa120525fd0cbf502ee61c42f3f39dde1 Mon Sep 17 00:00:00 2001 From: Olivier Stasse Date: Fri, 4 Oct 2024 03:19:37 +0200 Subject: [PATCH 2/6] Modifies setup_project_finalize calls _install_project_ros2_ament_files --- base.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/base.cmake b/base.cmake index 235d51d5a..bcc8a228d 100644 --- a/base.cmake +++ b/base.cmake @@ -353,6 +353,7 @@ macro(SETUP_PROJECT_FINALIZE) _setup_debian() # Install data if needed _install_project_data() + _install_project_ros2_ament_files() logging_finalize() if(PROJECT_USE_CMAKE_EXPORT) From 80e186200132b13994126e703b03bba230fde8d0 Mon Sep 17 00:00:00 2001 From: Olivier Stasse Date: Fri, 4 Oct 2024 03:23:59 +0200 Subject: [PATCH 3/6] pre-commit ros2.cmake --- ros2.cmake | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ros2.cmake b/ros2.cmake index 8ae1b80a6..ed04839ff 100644 --- a/ros2.cmake +++ b/ros2.cmake @@ -13,10 +13,9 @@ # You should have received a copy of the GNU General Public License along with # this program. If not, see . -# This macro creates 3 files which are allowing a package to be found -# using the AMENT system present in ros 2 -# Setting BUILDING_ROS2_PACKAGE is enough to trigger this behavior. -# _install_project_ros2_ament_files() +# This macro creates 3 files which are allowing a package to be found using the +# AMENT system present in ros 2 Setting BUILDING_ROS2_PACKAGE is enough to +# trigger this behavior. _install_project_ros2_ament_files() macro(_install_project_ros2_ament_files) if(BUILDING_ROS2_PACKAGE) message(STATUS "Create files for AMENT (ROS 2)") @@ -27,7 +26,7 @@ macro(_install_project_ros2_ament_files) "") install( FILES - ${CMAKE_CURRENT_BINARY_DIR}/share/ament_index/resource_index/packages/${PROJECT_NAME} + ${CMAKE_CURRENT_BINARY_DIR}/share/ament_index/resource_index/packages/${PROJECT_NAME} DESTINATION share/ament_index/resource_index/packages) file( WRITE @@ -35,13 +34,14 @@ macro(_install_project_ros2_ament_files) "prepend-non-duplicate;AMENT_PREFIX_PATH;") install( FILES - ${CMAKE_CURRENT_BINARY_DIR}/share/${PROJECT_NAME}/hook/ament_prefix_path.dsv + ${CMAKE_CURRENT_BINARY_DIR}/share/${PROJECT_NAME}/hook/ament_prefix_path.dsv DESTINATION share/${PROJECT_NAME}/hook) file(WRITE - ${CMAKE_CURRENT_BINARY_DIR}/share/${PROJECT_NAME}/hook/python_path.dsv - "prepend-non-duplicate;PYTHONPATH;${PYTHON_SITELIB}") + ${CMAKE_CURRENT_BINARY_DIR}/share/${PROJECT_NAME}/hook/python_path.dsv + "prepend-non-duplicate;PYTHONPATH;${PYTHON_SITELIB}") install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/share/${PROJECT_NAME}/hook/python_path.dsv + FILES + ${CMAKE_CURRENT_BINARY_DIR}/share/${PROJECT_NAME}/hook/python_path.dsv DESTINATION share/${PROJECT_NAME}/hook) endif(BUILDING_ROS2_PACKAGE) endmacro(_install_project_ros2_ament_files) From 371d4f3fad35732eda93f8569cbf6ffa5c9761c1 Mon Sep 17 00:00:00 2001 From: Olivier Stasse Date: Fri, 4 Oct 2024 03:27:12 +0200 Subject: [PATCH 4/6] Add include ros2.cmake --- base.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/base.cmake b/base.cmake index bcc8a228d..e449882e0 100644 --- a/base.cmake +++ b/base.cmake @@ -182,6 +182,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/cxx-standard.cmake) include(${CMAKE_CURRENT_LIST_DIR}/coverage.cmake) include(${CMAKE_CURRENT_LIST_DIR}/modernize-links.cmake) include(${CMAKE_CURRENT_LIST_DIR}/relpath.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/ros2.cmake) # --------- # Constants # --------- # From 483888f7628c9191f44217336c876d2a6d20059e Mon Sep 17 00:00:00 2001 From: Olivier Stasse Date: Fri, 4 Oct 2024 11:59:43 +0200 Subject: [PATCH 5/6] Add ros2.cmake in CMakeLists.txt --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 296344242..947d3275c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,6 +108,7 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) ./release.cmake ./relpath.cmake ./ros.cmake + ./ros2.cmake ./sdformat.cmake ./setup.cfg ./shared-library.cmake From 9d5a291cf9185c8980acda8973504881d725e75b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 10:00:32 +0000 Subject: [PATCH 6/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 947d3275c..cd19fafe7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,7 +108,7 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) ./release.cmake ./relpath.cmake ./ros.cmake - ./ros2.cmake + ./ros2.cmake ./sdformat.cmake ./setup.cfg ./shared-library.cmake