aboutsummaryrefslogtreecommitdiff
path: root/devel/stdgenerator
diff options
context:
space:
mode:
Diffstat (limited to 'devel/stdgenerator')
-rw-r--r--devel/stdgenerator/Makefile27
-rw-r--r--devel/stdgenerator/distinfo3
-rw-r--r--devel/stdgenerator/files/patch-CMakeLists.txt47
-rw-r--r--devel/stdgenerator/files/patch-cmake_stdgenerator-config.cmake.in4
-rw-r--r--devel/stdgenerator/files/patch-include_CMakeLists.txt25
-rw-r--r--devel/stdgenerator/files/patch-include_____generator.hpp19
-rw-r--r--devel/stdgenerator/pkg-descr1
7 files changed, 126 insertions, 0 deletions
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