git: 8038f458a512 - main - devel/zug: Add port

From: Jason E. Hale <jhale_at_FreeBSD.org>
Date: Thu, 05 Oct 2023 12:14:49 UTC
The branch main has been updated by jhale:

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

commit 8038f458a512152d9b150f9c2c613d06f872a52c
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2023-10-05 04:12:29 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2023-10-05 12:13:51 +0000

    devel/zug: Add port
    
    Zug is a C++ library providing transducers. Transducers are composable
    sequential transformations independent of the source. They are extremely
    lightweight, and can be used to express algorithms over pull-based
    sequences (iterators, files) but also push based sequences (signals,
    events, asynchronous streams) in a generic way.
    
    https://sinusoid.es/zug/
---
 devel/Makefile                       |  1 +
 devel/zug/Makefile                   | 34 +++++++++++++++
 devel/zug/distinfo                   |  5 +++
 devel/zug/files/patch-CMakeLists.txt | 14 ++++++
 devel/zug/pkg-descr                  |  5 +++
 devel/zug/pkg-plist                  | 84 ++++++++++++++++++++++++++++++++++++
 6 files changed, 143 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 7e0b7a55c0bf..2e8953abaa69 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -7863,6 +7863,7 @@
     SUBDIR += zls
     SUBDIR += zookeeper
     SUBDIR += zthread
+    SUBDIR += zug
     SUBDIR += zycore-c
     SUBDIR += zydis
     SUBDIR += zziplib
diff --git a/devel/zug/Makefile b/devel/zug/Makefile
new file mode 100644
index 000000000000..6d6eccc9809d
--- /dev/null
+++ b/devel/zug/Makefile
@@ -0,0 +1,34 @@
+PORTNAME=	zug
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.1.0
+CATEGORIES=	devel
+
+PATCH_SITES=	https://github.com/arximboldi/zug/commit/
+PATCHFILES+=	b7eb15fd7c4e26c42f673a566e0d561c49ac5bca.patch:-p1
+
+MAINTAINER=	jhale@FreeBSD.org
+COMMENT=	Transducers for C++
+WWW=		https://sinusoid.es/zug/
+
+LICENSE=	BSL
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		cmake
+USE_GITHUB=	yes
+GH_ACCOUNT=	arximboldi
+
+CMAKE_OFF=	zug_BUILD_DOCS
+
+NO_ARCH=	yes
+
+OPTIONS_DEFINE=	TEST
+
+TEST_BUILD_DEPENDS=	catch>=0:devel/catch
+TEST_USES=		compiler:c++17-lang pkgconfig
+TEST_CMAKE_BOOL=	zug_BUILD_EXAMPLES \
+			zug_BUILD_TESTS
+TEST_ALL_TARGET=	install examples tests
+TEST_ALL_TARGET_OFF=	install
+TEST_TEST_TARGET=	test
+
+.include <bsd.port.mk>
diff --git a/devel/zug/distinfo b/devel/zug/distinfo
new file mode 100644
index 000000000000..f3ba9910ab30
--- /dev/null
+++ b/devel/zug/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1696424846
+SHA256 (arximboldi-zug-v0.1.0_GH0.tar.gz) = 7d9d57a55399784392ba8fa67fcf246b9f5aec8f002c69e1fe4b5f66657214b8
+SIZE (arximboldi-zug-v0.1.0_GH0.tar.gz) = 219501
+SHA256 (b7eb15fd7c4e26c42f673a566e0d561c49ac5bca.patch) = aec0518a349027a55be2c08cba18665c0ba3b5c14daf03d3bbc83351de81b20a
+SIZE (b7eb15fd7c4e26c42f673a566e0d561c49ac5bca.patch) = 1961
diff --git a/devel/zug/files/patch-CMakeLists.txt b/devel/zug/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..77fecb9f469a
--- /dev/null
+++ b/devel/zug/files/patch-CMakeLists.txt
@@ -0,0 +1,14 @@
+Compile with -std=c++17 to avoid Boost dependency
+--- CMakeLists.txt.orig	2023-06-26 14:57:01 UTC
++++ CMakeLists.txt
+@@ -5,8 +5,8 @@ project(zug VERSION 0.1.0)
+ 
+ project(zug VERSION 0.1.0)
+ 
+-set(CMAKE_CXX_STANDARD 14)
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror")
++set(CMAKE_CXX_STANDARD 17)
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
+ set(CMAKE_EXPORT_COMPILE_COMMANDS on)
+ set(CMAKE_CXX_EXTENSIONS off)
+ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
diff --git a/devel/zug/pkg-descr b/devel/zug/pkg-descr
new file mode 100644
index 000000000000..522971b5524c
--- /dev/null
+++ b/devel/zug/pkg-descr
@@ -0,0 +1,5 @@
+Zug is a C++ library providing transducers. Transducers are composable
+sequential transformations independent of the source. They are extremely
+lightweight, and can be used to express algorithms over pull-based
+sequences (iterators, files) but also push based sequences (signals,
+events, asynchronous streams) in a generic way.
diff --git a/devel/zug/pkg-plist b/devel/zug/pkg-plist
new file mode 100644
index 000000000000..bcb1d92842c8
--- /dev/null
+++ b/devel/zug/pkg-plist
@@ -0,0 +1,84 @@
+include/zug/any_state.hpp
+include/zug/compat/apply.hpp
+include/zug/compat/invoke.hpp
+include/zug/compose.hpp
+include/zug/detail/copy_traits.hpp
+include/zug/detail/empty_transducer_error.hpp
+include/zug/detail/inline_constexpr.hpp
+include/zug/detail/is_non_empty.hpp
+include/zug/detail/iterator_facade.hpp
+include/zug/detail/iterator_range.hpp
+include/zug/detail/lambda_wrapper.hpp
+include/zug/detail/reduce_nested_non_empty.hpp
+include/zug/detail/reduce_nested_non_empty_accumulate.hpp
+include/zug/detail/reduce_nested_non_empty_non_variadic.hpp
+include/zug/detail/reduce_nested_non_empty_nullary.hpp
+include/zug/detail/reduce_nested_non_empty_tail_recursive.hpp
+include/zug/detail/reduce_nested_non_empty_variadic.hpp
+include/zug/detail/tuple_utils.hpp
+include/zug/detail/unreachable.hpp
+include/zug/into.hpp
+include/zug/into_vector.hpp
+include/zug/maybe_reduced.hpp
+include/zug/meta.hpp
+include/zug/meta/common_type.hpp
+include/zug/meta/detected.hpp
+include/zug/meta/dispatch.hpp
+include/zug/meta/pack.hpp
+include/zug/meta/util.hpp
+include/zug/meta/value_type.hpp
+include/zug/reduce.hpp
+include/zug/reduce_nested.hpp
+include/zug/reducing/emplacing_back.hpp
+include/zug/reducing/first.hpp
+include/zug/reducing/last.hpp
+include/zug/reducing/output.hpp
+include/zug/reductor.hpp
+include/zug/run.hpp
+include/zug/sequence.hpp
+include/zug/skip.hpp
+include/zug/state_traits.hpp
+include/zug/state_wrapper.hpp
+include/zug/transduce.hpp
+include/zug/transducer/cat.hpp
+include/zug/transducer/chain.hpp
+include/zug/transducer/count.hpp
+include/zug/transducer/cycle.hpp
+include/zug/transducer/dedupe.hpp
+include/zug/transducer/distinct.hpp
+include/zug/transducer/drop.hpp
+include/zug/transducer/drop_while.hpp
+include/zug/transducer/each.hpp
+include/zug/transducer/eager.hpp
+include/zug/transducer/enumerate.hpp
+include/zug/transducer/filter.hpp
+include/zug/transducer/interleave.hpp
+include/zug/transducer/interpose.hpp
+include/zug/transducer/iter.hpp
+include/zug/transducer/map.hpp
+include/zug/transducer/map_indexed.hpp
+include/zug/transducer/mapcat.hpp
+include/zug/transducer/partition.hpp
+include/zug/transducer/partition_by.hpp
+include/zug/transducer/product.hpp
+include/zug/transducer/random_sample.hpp
+include/zug/transducer/range.hpp
+include/zug/transducer/read.hpp
+include/zug/transducer/readbuf.hpp
+include/zug/transducer/remove.hpp
+include/zug/transducer/repeat.hpp
+include/zug/transducer/replace.hpp
+include/zug/transducer/scan.hpp
+include/zug/transducer/sink.hpp
+include/zug/transducer/take.hpp
+include/zug/transducer/take_nth.hpp
+include/zug/transducer/take_while.hpp
+include/zug/transducer/transducer.hpp
+include/zug/transducer/unzip.hpp
+include/zug/transducer/write.hpp
+include/zug/transducer/writebuf.hpp
+include/zug/transducer/zip.hpp
+include/zug/tuplify.hpp
+include/zug/util.hpp
+include/zug/with_state.hpp
+lib/cmake/Zug/ZugConfig.cmake