Index | Thread | Search

From:
Johannes Thyssen Tishman <jtt@openbsd.org>
Subject:
[new] devel/scnlib
To:
ports@openbsd.org
Date:
Sat, 4 Apr 2026 14:40:43 +0000

Download raw body.

Thread
Please find attached a port for devel/scnlib.

COMMENT:
scanf for modern C++

DESCR:
scnlib is a modern C++ library for replacing scanf and std::istream.
This library attempts to move us ever so much closer to replacing
iostreams and C stdio altogether. It's faster than iostream, and
type-safe, unlike scanf. Think {fmt} or C++20 std::format, but in the
other direction.

This port is needed to update graphics/vtk to version 9.6.0. Most tests
are passing (96% tests passed, 1 tests failed out of 25). I've
reported[1] the set of tests that failed upstream.

[1] https://github.com/eliaskosunen/scnlib/issues/155

Feedback? OKs? Thank you.

diff /usr/ports
path + /usr/ports
commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
blob - /dev/null
file + devel/scnlib/Makefile (mode 644)
--- /dev/null
+++ devel/scnlib/Makefile
@@ -0,0 +1,31 @@
+COMMENT =		scanf for modern C++
+
+GH_ACCOUNT =		eliaskosunen
+GH_PROJECT =		scnlib
+GH_TAGNAME =		v4.0.1
+
+SHARED_LIBS +=		scn	0.0 # 0.0
+
+CATEGORIES =		devel
+HOMEPAGE =		https://www.scnlib.dev/
+MAINTAINER =		Johannes Thyssen Tishman <jtt@openbsd.org>
+
+PERMIT_PACKAGE =	Yes
+
+WANTLIB +=		${COMPILER_LIBCXX} m
+
+COMPILER =		base-clang ports-gcc
+MODULES =		devel/cmake \
+			lang/python
+
+BUILD_DEPENDS =		devel/fast-float \
+			devel/gtest
+
+CONFIGURE_ARGS +=	-DSCN_USE_EXTERNAL_FAST_FLOAT=ON \
+			-DSCN_USE_EXTERNAL_GTEST=ON \
+			-DSCN_BENCHMARKS=OFF \
+			-DSCN_DOCS=OFF \
+			-DSCN_EXAMPLES=OFF \
+			-DBUILD_SHARED_LIBS=ON
+
+.include <bsd.port.mk>
commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
blob - /dev/null
file + devel/scnlib/distinfo (mode 644)
--- /dev/null
+++ devel/scnlib/distinfo
@@ -0,0 +1,2 @@
+SHA256 (scnlib-4.0.1.tar.gz) = 7OF7JoQIlMxXpxJxOP5FQJKa3LKXUk3sAsSQwjP/Rqc=
+SIZE (scnlib-4.0.1.tar.gz) = 434107
commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
blob - /dev/null
file + devel/scnlib/pkg/DESCR (mode 644)
--- /dev/null
+++ devel/scnlib/pkg/DESCR
@@ -0,0 +1,5 @@
+scnlib is a modern C++ library for replacing scanf and std::istream.
+This library attempts to move us ever so much closer to replacing
+iostreams and C stdio altogether. It's faster than iostream, and
+type-safe, unlike scanf. Think {fmt} or C++20 std::format, but in
+the other direction.
commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
blob - /dev/null
file + devel/scnlib/pkg/PLIST (mode 644)
--- /dev/null
+++ devel/scnlib/pkg/PLIST
@@ -0,0 +1,15 @@
+include/scn/
+include/scn/chrono.h
+include/scn/fwd.h
+include/scn/istream.h
+include/scn/ranges.h
+include/scn/regex.h
+include/scn/scan.h
+include/scn/xchar.h
+lib/cmake/
+lib/cmake/scn/
+lib/cmake/scn/scn-config-version.cmake
+lib/cmake/scn/scn-config.cmake
+lib/cmake/scn/scn-targets${MODCMAKE_BUILD_SUFFIX}
+lib/cmake/scn/scn-targets.cmake
+@lib lib/libscn.so.${LIBscn_VERSION}