Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Oct 2025 13:52:27 GMT
From:      Dima Panov <fluffy@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: b1d39a1eee4a - main - devel/stdgenerator: add new port (+)
Message-ID:  <202510081352.598DqRv2006711@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by fluffy:

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

commit b1d39a1eee4a8db0f83f96d34f93da238f41f251
Author:     Dima Panov <fluffy@FreeBSD.org>
AuthorDate: 2025-10-08 13:51:18 +0000
Commit:     Dima Panov <fluffy@FreeBSD.org>
CommitDate: 2025-10-08 13:51:18 +0000

    devel/stdgenerator: add new port (+)
    
    This port is a reference implementation of std::generator proposal to use with clang or gcc<14
---
 devel/Makefile                                     |  1 +
 devel/stdgenerator/Makefile                        | 27 +++++++++++++
 devel/stdgenerator/distinfo                        |  3 ++
 devel/stdgenerator/files/patch-CMakeLists.txt      | 47 ++++++++++++++++++++++
 .../files/patch-cmake_stdgenerator-config.cmake.in |  4 ++
 .../files/patch-include_CMakeLists.txt             | 25 ++++++++++++
 .../files/patch-include_____generator.hpp          | 19 +++++++++
 devel/stdgenerator/pkg-descr                       |  1 +
 8 files changed, 127 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index a50bbd6eae60..8ad3a6b65616 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -8304,6 +8304,7 @@
     SUBDIR += statsvn
     SUBDIR += stb
     SUBDIR += stc
+    SUBDIR += stdgenerator
     SUBDIR += stdman
     SUBDIR += stdx-allocator
     SUBDIR += stfl
diff --git a/devel/stdgenerator/Makefile b/devel/stdgenerator/Makefile
new file mode 100644
index 000000000000..0775d307e31e
--- /dev/null
+++ b/devel/stdgenerator/Makefile
@@ -0,0 +1,27 @@
+PORTNAME=	generator
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.1
+CATEGORIES=	devel
+PKGNAMEPREFIX=	std
+
+MAINTAINER=	fluffy@FreeBSD.org
+COMMENT=	Reference implementation of std::generator proposal
+WWW=		https://github.com/lewissbaker/generator
+
+LICENSE=	BSL
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		cmake compiler:c++20-lang
+
+INSTALL_TARGET=	install
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	lewissbaker
+GH_TAGNAME=	6ef0cca
+
+PLIST_FILES=	include/__generator.hpp include/generator \
+		lib/cmake/${PKGBASE}/${PKGBASE}-config-version.cmake \
+		lib/cmake/${PKGBASE}/${PKGBASE}-config.cmake \
+		lib/cmake/${PKGBASE}/${PKGBASE}-target.cmake
+
+.include <bsd.port.mk>
diff --git a/devel/stdgenerator/distinfo b/devel/stdgenerator/distinfo
new file mode 100644
index 000000000000..374a3ee7b27b
--- /dev/null
+++ b/devel/stdgenerator/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1758892471
+SHA256 (lewissbaker-generator-v0.1-6ef0cca_GH0.tar.gz) = 4e18ba7f213b6b323c728c152d079ee4ca1be7c6ee2af8be9e6d58af2bcaa887
+SIZE (lewissbaker-generator-v0.1-6ef0cca_GH0.tar.gz) = 9257
diff --git a/devel/stdgenerator/files/patch-CMakeLists.txt b/devel/stdgenerator/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..d85b2a1974b5
--- /dev/null
+++ b/devel/stdgenerator/files/patch-CMakeLists.txt
@@ -0,0 +1,47 @@
+--- CMakeLists.txt.orig	2025-01-31 23:53:04 UTC
++++ CMakeLists.txt
+@@ -3,18 +3,34 @@ cmake_minimum_required(VERSION 3.12)
+ 
+ cmake_minimum_required(VERSION 3.12)
+ 
+-project(stdgenerator LANGUAGES CXX
+-                     VERSION 0.1)
++project(stdgenerator
++    LANGUAGES CXX
++    VERSION 0.1)
+ 
+-add_library(stdgenerator INTERFACE)
+-
+-target_include_directories(stdgenerator
+-    INTERFACE
+-        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/>)
+-
+-target_compile_features(stdgenerator INTERFACE cxx_std_20)
+-
++include(CMakePackageConfigHelpers)
++include(CPack)
++include(GNUInstallDirs)
+ enable_testing()
+ include(CTest)
+ 
++add_subdirectory("include")
+ add_subdirectory("tests")
++
++install(EXPORT ${PROJECT_NAME}-target
++    DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
++    NAMESPACE "stdgenerator::"
++)
++
++write_basic_package_version_file(
++  "${PROJECT_NAME}-config-version.cmake" COMPATIBILITY SameMajorVersion ARCH_INDEPENDENT)
++
++configure_package_config_file(
++    cmake/${PROJECT_NAME}-config.cmake.in
++    "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
++    INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
++)
++
++install(FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
++              "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake"
++    DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
++)
diff --git a/devel/stdgenerator/files/patch-cmake_stdgenerator-config.cmake.in b/devel/stdgenerator/files/patch-cmake_stdgenerator-config.cmake.in
new file mode 100644
index 000000000000..5760bca89b1c
--- /dev/null
+++ b/devel/stdgenerator/files/patch-cmake_stdgenerator-config.cmake.in
@@ -0,0 +1,4 @@
+--- cmake/stdgenerator-config.cmake.in.orig	2025-09-26 14:16:29 UTC
++++ cmake/stdgenerator-config.cmake.in
+@@ -0,0 +1 @@
++include("${CMAKE_CURRENT_LIST_DIR}/stdgenerator-target.cmake")
diff --git a/devel/stdgenerator/files/patch-include_CMakeLists.txt b/devel/stdgenerator/files/patch-include_CMakeLists.txt
new file mode 100644
index 000000000000..9602372e66fc
--- /dev/null
+++ b/devel/stdgenerator/files/patch-include_CMakeLists.txt
@@ -0,0 +1,25 @@
+--- include/CMakeLists.txt.orig	2025-09-26 14:16:29 UTC
++++ include/CMakeLists.txt
+@@ -0,0 +1,22 @@
++add_library(stdgenerator INTERFACE)
++target_compile_features(stdgenerator INTERFACE cxx_std_20)
++target_sources(
++  stdgenerator
++    INTERFACE FILE_SET
++              "stdgenerator_headers"
++              TYPE
++              "HEADERS"
++              FILES
++              "__generator.hpp"
++              "generator")
++
++include(GNUInstallDirs)
++
++install(
++  TARGETS stdgenerator
++  EXPORT "stdgenerator-target"
++  FILE_SET "stdgenerator_headers")
++
++if(NOT TARGET stdgenerator::stdgenerator)
++  add_library(stdgenerator::stdgenerator ALIAS stdgenerator)
++endif()
diff --git a/devel/stdgenerator/files/patch-include_____generator.hpp b/devel/stdgenerator/files/patch-include_____generator.hpp
new file mode 100644
index 000000000000..6a1b5a3c7554
--- /dev/null
+++ b/devel/stdgenerator/files/patch-include_____generator.hpp
@@ -0,0 +1,19 @@
+--- include/__generator.hpp.orig	2025-01-31 23:53:04 UTC
++++ include/__generator.hpp
+@@ -36,6 +36,7 @@ using std::experimental::suspend_never;
+ #include <utility>
+ #include <concepts>
+ #include <cassert>
++#include <memory>
+ 
+ #if __has_include(<ranges>)
+ #  include <ranges>
+@@ -309,7 +310,7 @@ class __promise_base_alloc { (public)
+     static void operator delete(void* __ptr, std::size_t __frameSize) noexcept {
+         _Alloc& __alloc = __get_allocator(__ptr, __frameSize);
+         _Alloc __localAlloc(std::move(__alloc));
+-        __alloc.~Alloc();
++        __alloc.~_Alloc();
+         __localAlloc.deallocate(static_cast<std::byte*>(__ptr), __padded_frame_size(__frameSize));
+     }
+ };
diff --git a/devel/stdgenerator/pkg-descr b/devel/stdgenerator/pkg-descr
new file mode 100644
index 000000000000..1f56f4d69b3d
--- /dev/null
+++ b/devel/stdgenerator/pkg-descr
@@ -0,0 +1 @@
+Reference implementation of std::generator proposal


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202510081352.598DqRv2006711>