From 8c96b5a79bd08ea5e3a9108cf1a06edd0bd94a8d Mon Sep 17 00:00:00 2001 From: Scott K Logan Date: Wed, 22 Apr 2026 11:12:01 -0500 Subject: [PATCH] Add 'meson' template to 'dynrpm' generator These changes were authored in parallel. Follows 3a4c9a281b7185b1d940d9e5d059c0b15b53a3d6 Follows dac72d0967eb846642443e27e48a3ee3a4b8ef0c --- bloom/generators/dynrpm/generator.py | 2 + .../dynrpm/templates/meson/template.spec.em | 92 +++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 bloom/generators/dynrpm/templates/meson/template.spec.em diff --git a/bloom/generators/dynrpm/generator.py b/bloom/generators/dynrpm/generator.py index 542f3fcf..90208357 100644 --- a/bloom/generators/dynrpm/generator.py +++ b/bloom/generators/dynrpm/generator.py @@ -173,6 +173,8 @@ def generate_substitutions_from_package( pass elif build_type == 'cmake': pass + elif build_type == 'meson': + pass elif build_type == 'ament_cmake': pass elif build_type == 'ament_python': diff --git a/bloom/generators/dynrpm/templates/meson/template.spec.em b/bloom/generators/dynrpm/templates/meson/template.spec.em new file mode 100644 index 00000000..86d7a7a0 --- /dev/null +++ b/bloom/generators/dynrpm/templates/meson/template.spec.em @@ -0,0 +1,92 @@ +%{?!ros_distro:%global ros_distro @(Rosdistro)} +%global pkg_name @(Name) +%global normalized_pkg_name %{lua:return (string.gsub(rpm.expand('%{pkg_name}'), '_', '-'))} + +Name: @(Package) +Version: @(Version) +Release: @(RPMInc)%{?dist} +Summary: ROS %{pkg_name} package + +License: @(License) +@[if Homepage and Homepage != '']URL: @(Homepage)@\n@[end if]@ +Source0: %{name}-%{version}.tar.gz +@[if NoArch]@\nBuildArch: noarch@\n@[end if]@ + +BuildRequires: bloom-rpm-macros +BuildRequires: meson + +%{?bloom_package} + +%description +@(Description) + + +%package devel +Release: %{release}%{?release_suffix} +Summary: %{summary} +Provides: %{name} = %{version}-%{release} +@[if not NoArch]Provides: %{name}%{?_isa} = %{version}-%{release}@\n@[end if]@ +Requires: %{name}-runtime@[if not NoArch]%{?_isa}@[end if] = %{version}-%{release} + +%description devel +@(Description) + + +%package runtime +Release: %{release} +Summary: %{summary} + +%description runtime +@(Description) + + +%prep +%autosetup -p1 + + +%generate_buildrequires +%bloom_buildrequires + + +%build +# override macro +%define __meson_auto_features auto + +# call meson executable instead of using the 'meson' macro to use default paths +%__meson setup \ + --prefix="%{bloom_prefix}" \ + --cmake-prefix-path="%{bloom_prefix}" \ + --libdir=lib \ + --libexecdir=lib \ + %{_vpath_builddir} +%meson_build + + +%install +%meson_install + + +%if 0%{?with_tests} +%check +# Look for a Makefile target with a name indicating that it runs tests +TEST_TARGET=$(%__ninja -C %{_vpath_builddir} -t targets | sed "s/^\(test\|check\):.*/\\1/;t f;d;:f;q0") +if [ -n "$TEST_TARGET" ]; then +%meson_test || echo "RPM TESTS FAILED" +else echo "RPM TESTS SKIPPED"; fi +%endif + + +%files devel +%dir %{bloom_prefix} +%ghost %{bloom_prefix}/share/%{pkg_name}/package.xml + + +%files runtime +@[for lf in LicenseFiles]%license @lf@\n@[end for]@ +%{bloom_prefix} + + +%changelog@[for change_version, (change_date, main_name, main_email) in changelogs] +* @(change_date) @(main_name) <@(main_email)> - @(change_version) +- Autogenerated by Bloom +@[end for]@