git: d07d9c045fdd - main - devel/rust-cxxbridge: New port

From: Steven Kreuzer <skreuzer_at_FreeBSD.org>
Date: Sun, 13 Sep 2026 03:36:02 UTC
The branch main has been updated by skreuzer:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d07d9c045fdddd4dedb2997533ca77ae5ce110b9

commit d07d9c045fdddd4dedb2997533ca77ae5ce110b9
Author:     Steven Kreuzer <skreuzer@FreeBSD.org>
AuthorDate: 2026-09-13 00:26:15 +0000
Commit:     Steven Kreuzer <skreuzer@FreeBSD.org>
CommitDate: 2026-09-13 03:35:53 +0000

    devel/rust-cxxbridge: New port
    
    cxxbridge generates the C++ side of the cxx bridge and is required
    at build time by projects that use corrosion's
    corrosion_add_cxxbridge() without network access.
---
 devel/Makefile                       |  1 +
 devel/rust-cxxbridge/Makefile        | 29 +++++++++++++++++++++++
 devel/rust-cxxbridge/Makefile.crates | 22 ++++++++++++++++++
 devel/rust-cxxbridge/distinfo        | 45 ++++++++++++++++++++++++++++++++++++
 devel/rust-cxxbridge/pkg-descr       |  3 +++
 5 files changed, 100 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 72730bac821a..bc20c81d4f89 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -8625,6 +8625,7 @@
     SUBDIR += rust-analyzer
     SUBDIR += rust-bindgen-cli
     SUBDIR += rust-cbindgen
+    SUBDIR += rust-cxxbridge
     SUBDIR += rust-mode
     SUBDIR += rust-script
     SUBDIR += rustc-demangle
diff --git a/devel/rust-cxxbridge/Makefile b/devel/rust-cxxbridge/Makefile
new file mode 100644
index 000000000000..02c4fe3395f1
--- /dev/null
+++ b/devel/rust-cxxbridge/Makefile
@@ -0,0 +1,29 @@
+PORTNAME=	cxxbridge
+PORTVERSION=	1.0.199
+CATEGORIES=	devel
+MASTER_SITES=	https://crates.io/api/v1/crates/${PORTNAME}-cmd/${PORTVERSION}/download?dummy=/
+PKGNAMEPREFIX=	rust-
+DISTNAME=	${PORTNAME}-cmd-${PORTVERSION}
+DISTFILES=	${CARGO_DIST_SUBDIR}/${DISTNAME}${CARGO_CRATE_EXT}
+
+MAINTAINER=	skreuzer@FreeBSD.org
+COMMENT=	Generator for C++ bindings of the Rust cxx crate
+WWW=		https://cxx.rs/
+
+LICENSE=	MIT APACHE20
+LICENSE_COMB=	dual
+LICENSE_FILE=	${WRKSRC}/LICENSE-MIT
+
+USES=		cargo
+
+PLIST_FILES=	bin/cxxbridge
+
+# The version must match the cxx crate version used by dependent ports
+# (e.g. deskutils/taskwarrior) since corrosion only accepts an exact match.
+PORTSCOUT=	limitw:1
+
+do-install:
+	${INSTALL_PROGRAM} ${CARGO_TARGET_DIR}/release/cxxbridge \
+		${STAGEDIR}${PREFIX}/bin
+
+.include <bsd.port.mk>
diff --git a/devel/rust-cxxbridge/Makefile.crates b/devel/rust-cxxbridge/Makefile.crates
new file mode 100644
index 000000000000..ca4319d4faf1
--- /dev/null
+++ b/devel/rust-cxxbridge/Makefile.crates
@@ -0,0 +1,22 @@
+# $FreeBSD$
+CARGO_CRATES=	anstyle-1.0.14 \
+		clap-4.6.6 \
+		clap_builder-4.6.6 \
+		clap_lex-1.1.0 \
+		codespan-reporting-0.13.1 \
+		equivalent-1.0.2 \
+		hashbrown-0.17.1 \
+		indexmap-2.14.0 \
+		proc-macro2-1.0.107 \
+		quote-1.0.47 \
+		serde-1.0.229 \
+		serde_core-1.0.229 \
+		serde_derive-1.0.229 \
+		strsim-0.11.1 \
+		syn-3.0.3 \
+		termcolor-1.4.1 \
+		unicode-ident-1.0.24 \
+		unicode-width-0.2.2 \
+		winapi-util-0.1.11 \
+		windows-link-0.2.1 \
+		windows-sys-0.61.2
diff --git a/devel/rust-cxxbridge/distinfo b/devel/rust-cxxbridge/distinfo
new file mode 100644
index 000000000000..2885dd11e305
--- /dev/null
+++ b/devel/rust-cxxbridge/distinfo
@@ -0,0 +1,45 @@
+TIMESTAMP = 1788715499
+SHA256 (rust/crates/cxxbridge-cmd-1.0.199.crate) = fb05f91d3fb8435d9bab6ac5ce6ac1868be774325fb7fb2a91be39393b21388e
+SIZE (rust/crates/cxxbridge-cmd-1.0.199.crate) = 87137
+SHA256 (rust/crates/anstyle-1.0.14.crate) = 940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000
+SIZE (rust/crates/anstyle-1.0.14.crate) = 17787
+SHA256 (rust/crates/clap-4.6.6.crate) = 473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca
+SIZE (rust/crates/clap-4.6.6.crate) = 64815
+SHA256 (rust/crates/clap_builder-4.6.6.crate) = 7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889
+SIZE (rust/crates/clap_builder-4.6.6.crate) = 171756
+SHA256 (rust/crates/clap_lex-1.1.0.crate) = c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9
+SIZE (rust/crates/clap_lex-1.1.0.crate) = 13470
+SHA256 (rust/crates/codespan-reporting-0.13.1.crate) = af491d569909a7e4dee0ad7db7f5341fef5c614d5b8ec8cf765732aba3cff681
+SIZE (rust/crates/codespan-reporting-0.13.1.crate) = 57424
+SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
+SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
+SHA256 (rust/crates/hashbrown-0.17.1.crate) = ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a
+SIZE (rust/crates/hashbrown-0.17.1.crate) = 155512
+SHA256 (rust/crates/indexmap-2.14.0.crate) = d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9
+SIZE (rust/crates/indexmap-2.14.0.crate) = 104085
+SHA256 (rust/crates/proc-macro2-1.0.107.crate) = 985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9
+SIZE (rust/crates/proc-macro2-1.0.107.crate) = 59588
+SHA256 (rust/crates/quote-1.0.47.crate) = 1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001
+SIZE (rust/crates/quote-1.0.47.crate) = 31622
+SHA256 (rust/crates/serde-1.0.229.crate) = 4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba
+SIZE (rust/crates/serde-1.0.229.crate) = 83669
+SHA256 (rust/crates/serde_core-1.0.229.crate) = 67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48
+SIZE (rust/crates/serde_core-1.0.229.crate) = 63100
+SHA256 (rust/crates/serde_derive-1.0.229.crate) = e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348
+SIZE (rust/crates/serde_derive-1.0.229.crate) = 59864
+SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
+SIZE (rust/crates/strsim-0.11.1.crate) = 14266
+SHA256 (rust/crates/syn-3.0.3.crate) = 53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3
+SIZE (rust/crates/syn-3.0.3.crate) = 312999
+SHA256 (rust/crates/termcolor-1.4.1.crate) = 06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755
+SIZE (rust/crates/termcolor-1.4.1.crate) = 18773
+SHA256 (rust/crates/unicode-ident-1.0.24.crate) = e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75
+SIZE (rust/crates/unicode-ident-1.0.24.crate) = 49298
+SHA256 (rust/crates/unicode-width-0.2.2.crate) = b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254
+SIZE (rust/crates/unicode-width-0.2.2.crate) = 282768
+SHA256 (rust/crates/winapi-util-0.1.11.crate) = c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22
+SIZE (rust/crates/winapi-util-0.1.11.crate) = 13368
+SHA256 (rust/crates/windows-link-0.2.1.crate) = f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5
+SIZE (rust/crates/windows-link-0.2.1.crate) = 6133
+SHA256 (rust/crates/windows-sys-0.61.2.crate) = ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc
+SIZE (rust/crates/windows-sys-0.61.2.crate) = 2517186
diff --git a/devel/rust-cxxbridge/pkg-descr b/devel/rust-cxxbridge/pkg-descr
new file mode 100644
index 000000000000..12a60ced136c
--- /dev/null
+++ b/devel/rust-cxxbridge/pkg-descr
@@ -0,0 +1,3 @@
+C++ bindings generator for the Rust "cxx" crate. It produces the C++
+side of the cxx bridge and is required at build time by projects that
+use corrosion's corrosion_add_cxxbridge() without network access.