Hi.

Here's a diff for the meson MODULE to easily interact with the cargo one.
Along with patches for ports using both MODULEs (all rebuilt fine).
Comments, OK?

Index: meson.port.mk
===================================================================
RCS file: /cvs/ports/devel/meson/meson.port.mk,v
diff -u -p -r1.125 meson.port.mk
--- meson.port.mk       28 Aug 2026 10:56:26 -0000      1.125
+++ meson.port.mk       28 Aug 2026 15:31:50 -0000
@@ -56,6 +56,19 @@ MODMESON_CONFIGURE_ARGS +=   ${_MODMESON_S
 MODMESON_post-patch=   @ln -sf /usr/bin/false ${WRKDIR}/bin/cmake
 .   endif
 
+# interaction with the devel/cargo MODULE
+.   if ${MODULES:Mdevel/cargo}
+MOD_ORDER != echo '${MODULES}' | grep -qE 'devel/meson.*devel/cargo' || echo KO
+.     if ${MOD_ORDER} == "KO"
+ERRORS +=      "Fatal: devel/meson must be listed before devel/cargo in 
MODULES"
+.     endif
+MODCARGO_BUILD=                No
+MODCARGO_INSTALL=      No
+MODCARGO_TEST=         No
+MAKE_ENV +=            ${MODCARGO_ENV}
+MODMESON_pre-configure +=      @${MODCARGO_configure}
+.   endif
+
 CONFIGURE_ARGS +=      ${MODMESON_CONFIGURE_ARGS}
 CONFIGURE_ENV +=       ${MODMESON_CONFIGURE_ENV}
 MODMESON_configure=    ${SETENV} ${CONFIGURE_ENV} ${LOCALBASE}/bin/meson setup 
\


Index: audio/euphonica/Makefile
===================================================================
RCS file: /cvs/ports/audio/euphonica/Makefile,v
diff -u -p -r1.5 Makefile
--- audio/euphonica/Makefile    18 Aug 2026 13:08:43 -0000      1.5
+++ audio/euphonica/Makefile    28 Aug 2026 15:32:27 -0000
@@ -19,8 +19,8 @@ WANTLIB += ${MODCARGO_WANTLIB} adwaita-1
 WANTLIB += glib-2.0 gobject-2.0 graphene-1.0 gtk-4 intl m pipewire-0.3
 WANTLIB += secret-1 sqlite3 ssl
 
-MODULES =              devel/cargo \
-                       devel/meson
+MODULES =              devel/meson \
+                       devel/cargo
 
 BUILD_DEPENDS =                devel/gettext,-tools
 
@@ -41,17 +41,6 @@ MODULES +=           lang/clang
 MODCARGO_ENV +=                CLANG_BASE_PATH=/usr \
                        LIBCLANG_PATH=${LOCALBASE}/llvm${MODCLANG_VERSION}/lib \
                        LD_LIBRARY_PATH=${LOCALBASE}/llvm${MODCLANG_VERSION}/lib
-
-CONFIGURE_STYLE =      meson
-
-MODCARGO_BUILD =       No
-MODCARGO_INSTALL =     No
-MODCARGO_TEST =                No
-
-MAKE_ENV +=            ${MODCARGO_ENV}
-
-pre-configure:
-       @${MODCARGO_configure}
 
 .include "crates.inc"
 
Index: x11/gnome/librsvg/Makefile
===================================================================
RCS file: /cvs/ports/x11/gnome/librsvg/Makefile,v
diff -u -p -r1.256 Makefile
--- x11/gnome/librsvg/Makefile  21 Aug 2026 16:51:51 -0000      1.256
+++ x11/gnome/librsvg/Makefile  28 Aug 2026 15:32:27 -0000
@@ -31,19 +31,14 @@ GNOME_VERSION=              ${STABLE_VERSION}
 MODULES +=             lang/clang
 MODCLANG_COMPILER_LINKS=       No
 MODCLANG_RUNDEP=       No
-MODULES +=             devel/cargo \
-                       devel/meson
-MODCARGO_BUILD=                No
-MODCARGO_INSTALL=      No
-MODCARGO_TEST=         No
+MODULES +=             devel/meson \
+                       devel/cargo
 MODGNOME_TOOLS +=      gi-docgen
 BUILD_DEPENDS=         devel/cargo-c
 # rst2man
 BUILD_DEPENDS +=       textproc/py-docutils
 LIB_DEPENDS +=         multimedia/dav1d
 PKG_ARGS=              -Dold=0 -Dstable=1
-MAKE_ENV +=            ${MODCARGO_ENV}
-MAKE_FLAGS +=          V=1
 WANTLIB += ${MODCARGO_WANTLIB} cairo gdk_pixbuf-2.0 gio-2.0 glib-2.0
 WANTLIB += gobject-2.0 m pango-1.0 pangocairo-1.0 xml2
 WANTLIB += dav1d fontconfig harfbuzz
@@ -98,7 +93,6 @@ LIB_DEPENDS +=                devel/pango \
 .include "crates.inc"
 pre-configure:
        ln -sf ${LOCALBASE}/bin/llvm-nm-${MODCLANG_VERSION} 
${WRKDIR}/bin/llvm-nm
-       @${MODCARGO_configure}
 .else
 post-install:
        rm ${PREFIX}/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.{a,la}
Index: x11/gnome/gst-thumbnailers/Makefile
===================================================================
RCS file: /cvs/ports/x11/gnome/gst-thumbnailers/Makefile,v
diff -u -p -r1.1.1.1 Makefile
--- x11/gnome/gst-thumbnailers/Makefile 2 Aug 2026 10:35:18 -0000       1.1.1.1
+++ x11/gnome/gst-thumbnailers/Makefile 28 Aug 2026 15:32:27 -0000
@@ -11,24 +11,14 @@ PERMIT_PACKAGE=             Yes
 WANTLIB += ${MODCARGO_WANTLIB} gio-2.0 glib-2.0 glycin-2 gobject-2.0
 WANTLIB += gstapp-1.0 gstbase-1.0 gstreamer-1.0 gstvideo-1.0 m
 
-MODULES=               devel/cargo \
-                       devel/meson \
+MODULES=               devel/meson \
+                       devel/cargo \
                        x11/gnome
 
-MODCARGO_BUILD=                No
-MODCARGO_INSTALL=      No
-MODCARGO_TEST=         No
-
-MAKE_ENV +=            ${MODCARGO_ENV}
-MAKE_FLAGS +=          V=1
-
 LIB_DEPENDS=           multimedia/gstreamer1/plugins-base \
                        x11/gnome/glycin
 
 DEBUG_PACKAGES=                ${BUILD_PACKAGES}
-
-pre-configure:
-       @${MODCARGO_configure}
 
 .include "crates.inc"
 
Index: x11/gnome/papers/Makefile
===================================================================
RCS file: /cvs/ports/x11/gnome/papers/Makefile,v
diff -u -p -r1.9 Makefile
--- x11/gnome/papers/Makefile   28 Aug 2026 09:41:58 -0000      1.9
+++ x11/gnome/papers/Makefile   28 Aug 2026 15:32:27 -0000
@@ -31,21 +31,14 @@ MULTI_PACKAGES=             -main -nautilus
 COMPILER=              base-clang ports-gcc base-gcc
 COMPILER_LANGS=                c
 
-MODULES=               devel/cargo \
+MODULES=               devel/meson \
                        devel/dconf \
-                       devel/meson \
+                       devel/cargo \
                        x11/gnome
 
 MODGNOME_TOOLS=                desktop-file-utils gobject-introspection 
gi-docgen \
                        gtk-update-icon-cache yelp
 
-MODCARGO_BUILD=                No
-MODCARGO_INSTALL=      No
-MODCARGO_TEST=         No
-
-MAKE_ENV +=            ${MODCARGO_ENV}
-MAKE_FLAGS +=          V=1
-
 BUILD_DEPENDS=         devel/appstream \
                        x11/blueprint-compiler
 
@@ -65,9 +58,6 @@ RUN_DEPENDS-nautilus= # empty
 CONFIGURE_ARGS=                -Dsysprof=disabled
 
 DEBUG_PACKAGES=                ${BUILD_PACKAGES}
-
-pre-configure:
-       @${MODCARGO_configure}
 
 .include "crates.inc"
 
Index: x11/gnome/snapshot/Makefile
===================================================================
RCS file: /cvs/ports/x11/gnome/snapshot/Makefile,v
diff -u -p -r1.2 Makefile
--- x11/gnome/snapshot/Makefile 24 Aug 2026 14:10:54 -0000      1.2
+++ x11/gnome/snapshot/Makefile 28 Aug 2026 15:32:27 -0000
@@ -15,17 +15,11 @@ WANTLIB += glycin-gtk4-2 gobject-2.0 gra
 WANTLIB += gstpbutils-1.0 gstreamer-1.0 gstvideo-1.0 gtk-4 intl
 WANTLIB += pango-1.0
 
-MODULES=               devel/cargo \
+MODULES=               devel/meson \
                        devel/dconf \
-                       devel/meson \
+                       devel/cargo \
                        x11/gnome
 
-# don't overwrite meson(1) targets;
-# see pre-{configure,build,install} and patch-src_meson_build
-MODCARGO_BUILD=                No
-MODCARGO_INSTALL=      No
-MODCARGO_TEST=         No
-
 MODGNOME_TOOLS=                desktop-file-utils gtk-update-icon-cache
 
 LIB_DEPENDS=           multimedia/gstreamer1/plugins-base \
@@ -43,15 +37,6 @@ BUILD_DEPENDS +=     multimedia/gstreamer1/p
 RUN_DEPENDS +=         multimedia/gstreamer1/plugins-bad
 
 DEBUG_PACKAGES=                ${BUILD_PACKAGES}
-
-pre-configure:
-       @${MODCARGO_configure}
-
-pre-build:
-       @${MODCARGO_BUILD_TARGET}
-
-pre-install:
-       @${MODCARGO_INSTALL_TARGET}
 
 .include "crates.inc"
 
Index: x11/gnome/snapshot/patches/patch-src_meson_build
===================================================================
RCS file: x11/gnome/snapshot/patches/patch-src_meson_build
diff -N x11/gnome/snapshot/patches/patch-src_meson_build
--- x11/gnome/snapshot/patches/patch-src_meson_build    24 Aug 2026 13:47:24 
-0000      1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,31 +0,0 @@
-Use our devel/cargo MODULE to build instead of a custom target that needs
-network access to fetch crates.
-
-Index: src/meson.build
---- src/meson.build.orig
-+++ src/meson.build
-@@ -23,24 +23,3 @@ run_command(
-   meson.project_source_root() / 'src' / 'config.rs',
-   check: true,
- )
--
--cargo_build = custom_target(
--  'cargo-build',
--  build_by_default: true,
--  build_always_stale: true,
--  output: meson.project_name(),
--  console: true,
--  install: true,
--  install_dir: bindir,
--  depends: resources,
--  env: cargo_env,
--  command: [
--    cargo,
--    'build',
--    cargo_build_options,
--    '&&',
--    'cp',
--    cargo_target / rust_target / meson.project_name(),
--    '@OUTPUT@',
--  ],
--)
Index: multimedia/gstreamer1/plugins-rs/Makefile
===================================================================
RCS file: /cvs/ports/multimedia/gstreamer1/plugins-rs/Makefile,v
diff -u -p -r1.14 Makefile
--- multimedia/gstreamer1/plugins-rs/Makefile   1 Jul 2026 10:04:00 -0000       
1.14
+++ multimedia/gstreamer1/plugins-rs/Makefile   28 Aug 2026 15:32:27 -0000
@@ -13,13 +13,10 @@ WANTLIB += ${MODCARGO_WANTLIB} cairo dav
 WANTLIB += graphene-1.0 gstbase-1.0 gstgl-1.0 gstreamer-1.0 gstrtp-1.0
 WANTLIB += gstvideo-1.0 gtk-4 m pango-1.0 pangocairo-1.0 webpdemux
 
-MODULES=               devel/cargo \
-                       devel/meson
+MODULES=               devel/meson \
+                       devel/cargo
 
 MODCARGO_DIST_SUBDIR=  ../cargo
-MODCARGO_BUILD=                No
-MODCARGO_INSTALL=      No
-MODCARGO_TEST=         No
 
 # needs libclang.so
 MODULES +=             lang/clang
@@ -59,9 +56,6 @@ DISABLED +=   cdg ffv1 gif hsv png rav1e d
 CONFIGURE_ARGS +=   -D${d}=disabled
 .endfor
 ###
-
-pre-configure:
-       ${MODCARGO_configure}
 
 .include "crates.inc"
 
Index: net/dnsdist/Makefile
===================================================================
RCS file: /cvs/ports/net/dnsdist/Makefile,v
diff -u -p -r1.70 Makefile
--- net/dnsdist/Makefile        6 Aug 2026 10:59:20 -0000       1.70
+++ net/dnsdist/Makefile        28 Aug 2026 15:32:27 -0000
@@ -21,19 +21,15 @@ SYSCONFDIR=         ${BASESYSCONFDIR}/dnsdist
 
 COMPILER =             base-clang ports-gcc
 
+MODULES=               devel/meson
+
 .include <bsd.port.arch.mk>
 
 .if ${PROPERTIES:Mrust}
 MODULES+=              devel/cargo
 MODCARGO_CARGOTOML=    ${WRKSRC}/dnsdist-rust-lib/rust/Cargo.toml
 MODCARGO_TARGET_DIR=   ${WRKSRC}/dnsdist-rust-lib/rust/target
-MODCARGO_BUILD=                No
-MODCARGO_INSTALL=      No
-MODCARGO_TEST=         No
 CONFIGURE_ARGS=                -Dyaml=enabled
-
-pre-configure:
-                       @${MODCARGO_configure}
 .else
 CONFIGURE_ARGS=                -Dyaml=disabled
 # Needed for SUPDISTFILES
@@ -55,8 +51,6 @@ LIB_DEPENDS+=         ${MODLUA_LIB_DEPENDS}
 WANTLIB+=              ${MODLUA_WANTLIB}
 .endif
 
-MODULES+=              devel/meson
-
 CONFIGURE_STYLE=       meson
 CONFIGURE_ARGS+=       -Dcdb=enabled \
                        -Ddns-over-https=enabled \
@@ -76,8 +70,6 @@ CONFIGURE_ARGS+=      -Dcdb=enabled \
                        -Dsystemd-service=disabled \
                        -Dtls-gnutls=disabled \
                        -Dxsk=disabled \
-
-MAKE_ENV+=             ${MODCARGO_ENV}
 
 BUILD_DEPENDS=         devel/boost \
                        textproc/py-yaml
Index: net/flare-messenger/Makefile
===================================================================
RCS file: /cvs/ports/net/flare-messenger/Makefile,v
diff -u -p -r1.4 Makefile
--- net/flare-messenger/Makefile        7 Apr 2026 23:54:53 -0000       1.4
+++ net/flare-messenger/Makefile        28 Aug 2026 15:32:27 -0000
@@ -28,18 +28,12 @@ WANTLIB += ${MODCARGO_WANTLIB} adwaita-1
 WANTLIB += gio-2.0 glib-2.0 gobject-2.0 gtk-4 gtksourceview-5
 WANTLIB += intl m pango-1.0 spelling-1
 
-MODULES=       devel/cargo \
+MODULES=       devel/meson \
                devel/dconf \
-               devel/meson
+               devel/cargo
 
-MODCARGO_BUILD=                No
-MODCARGO_INSTALL=      No
-MODCARGO_TEST=         No
 MODCARGO_CRATES_KEEP=  libsqlite3-sys
 
-MAKE_ENV=      ${MODCARGO_ENV}
-MAKE_FLAGS=    V=1
-
 BUILD_DEPENDS= devel/gettext,-tools \
                devel/protobuf \
                x11/blueprint-compiler \
@@ -54,9 +48,6 @@ LIB_DEPENDS=  textproc/libspelling \
 
 post-extract:
        mv ${WRKDIR}/flare-* ${WRKSRC}
-
-pre-configure:
-       @${MODCARGO_configure}
 
 .include "crates.inc"
 
Index: net/powerdns_recursor/Makefile
===================================================================
RCS file: /cvs/ports/net/powerdns_recursor/Makefile,v
diff -u -p -r1.77 Makefile
--- net/powerdns_recursor/Makefile      6 Aug 2026 10:58:27 -0000       1.77
+++ net/powerdns_recursor/Makefile      28 Aug 2026 15:32:27 -0000
@@ -25,6 +25,8 @@ MAINTAINER=           Otto Moerbeek <[email protected]
 
 COMPILER =             base-clang ports-gcc
 
+MODULES=               devel/meson
+
 NO_TEST=               Yes
 
 LIB_DEPENDS=           devel/boost \
@@ -36,9 +38,6 @@ LIB_DEPENDS=          devel/boost \
 MODULES+=              devel/cargo
 MODCARGO_CARGOTOML=    ${WRKSRC}/rec-rust-lib/rust/Cargo.toml
 MODCARGO_TARGET_DIR=   ${WRKSRC}/rec-rust-lib/rust/target 
-MODCARGO_BUILD=                No
-MODCARGO_INSTALL=      No
-MODCARGO_TEST=         No
 
 .include <bsd.port.arch.mk>
 
@@ -57,11 +56,6 @@ WANTLIB+=            ${MODLUA_WANTLIB}
 SYSCONFDIR=            ${BASESYSCONFDIR}/pdns
 SUBST_VARS+=           BASESYSCONFDIR
 
-MODULES+=              devel/meson
-
-pre-configure:
-                       @${MODCARGO_configure}
-
 CONFIGURE_STYLE=       meson
 
 CONFIGURE_ARGS+=       -Dhardening=disabled \
@@ -72,8 +66,6 @@ CONFIGURE_ARGS+=      -Dhardening=disabled \
                        -Dsystemd-service=disabled \
                        -Dlibcap=disabled \
                        -Dtls-gnutls=disabled
-
-MAKE_ENV+=             ${MODCARGO_ENV}
 
 EXAMPLE_DIR=           ${PREFIX}/share/examples/pdns/
 
Index: x11/gnome/glycin/Makefile
===================================================================
RCS file: /cvs/ports/x11/gnome/glycin/Makefile,v
diff -u -p -r1.2 Makefile
--- x11/gnome/glycin/Makefile   22 Aug 2026 07:19:04 -0000      1.2
+++ x11/gnome/glycin/Makefile   28 Aug 2026 15:32:27 -0000
@@ -16,25 +16,17 @@ PERMIT_PACKAGE=             Yes
 WANTLIB += ${MODCARGO_WANTLIB} gio-2.0 glib-2.0 gobject-2.0 gtk-4
 WANTLIB += m
 
-MODULES=               devel/cargo \
-                       devel/meson \
+MODULES=               devel/meson \
+                       devel/cargo \
                        x11/gnome
 
-MODCARGO_BUILD=                No
-MODCARGO_INSTALL=      No
-MODCARGO_TEST=         No
-
 MODGNOME_TOOLS=                gobject-introspection vala
 
-MAKE_ENV +=            ${MODCARGO_ENV}
 MAKE_FLAGS +=          V=1
 
 LIB_DEPENDS=           x11/gtk+4
 
 DEBUG_PACKAGES=                ${BUILD_PACKAGES}
-
-pre-configure:
-       @${MODCARGO_configure}
 
 .include "crates.inc"
 


-- 
Antoine

Reply via email to