From c05106e7ad8bc33e257f9d209e62688629569642 Mon Sep 17 00:00:00 2001 From: Nathan Wiebe Neufeldt Date: Thu, 17 Oct 2024 18:41:13 -0400 Subject: [PATCH] Add proper env hook for .sh shells This correctly sets the GZ_CONFIG_PATH in the same way as the .dsv file. Signed-off-by: Nathan Wiebe Neufeldt --- create_gz_vendor_pkg/create_vendor_package.py | 4 ++++ create_gz_vendor_pkg/templates/CMakeLists.txt.jinja | 5 +---- create_gz_vendor_pkg/templates/vendor.sh.in | 3 +++ 3 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 create_gz_vendor_pkg/templates/vendor.sh.in diff --git a/create_gz_vendor_pkg/create_vendor_package.py b/create_gz_vendor_pkg/create_vendor_package.py index d038fe3..1c69742 100644 --- a/create_gz_vendor_pkg/create_vendor_package.py +++ b/create_gz_vendor_pkg/create_vendor_package.py @@ -407,6 +407,10 @@ def main(argv=sys.argv[1:]): templates_path / "vendor.dsv.in", Path(args.output_dir) / f"{vendor_name}.dsv.in", ) + shutil.copy( + templates_path / "vendor.sh.in", + Path(args.output_dir) / f"{vendor_name}.sh.in", + ) if __name__ == "__main__": diff --git a/create_gz_vendor_pkg/templates/CMakeLists.txt.jinja b/create_gz_vendor_pkg/templates/CMakeLists.txt.jinja index 38ca404..7cb93c3 100644 --- a/create_gz_vendor_pkg/templates/CMakeLists.txt.jinja +++ b/create_gz_vendor_pkg/templates/CMakeLists.txt.jinja @@ -86,10 +86,7 @@ ament_export_dependencies( {% if vendor_has_dsv %} if(NOT ${${LIB_NAME_FULL}_FOUND}) ament_environment_hooks("${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.dsv.in") - # Create a dummy .sh file needed for ament_package to source the .dsv file. - # See https://github.com/ament/ament_package/issues/145 - file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.sh "# Dummy .sh file needed for .dsv file to be sourced.") - ament_environment_hooks("${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.sh") + ament_environment_hooks("${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.sh.in") endif() {% endif %} diff --git a/create_gz_vendor_pkg/templates/vendor.sh.in b/create_gz_vendor_pkg/templates/vendor.sh.in new file mode 100644 index 0000000..4f0349e --- /dev/null +++ b/create_gz_vendor_pkg/templates/vendor.sh.in @@ -0,0 +1,3 @@ +if [ -d "$AMENT_CURRENT_PREFIX/opt/@PROJECT_NAME@/share/gz" ]; then + ament_prepend_unique_value GZ_CONFIG_PATH "$AMENT_CURRENT_PREFIX/opt/@PROJECT_NAME@/share/gz" +fi