summaryrefslogtreecommitdiff
path: root/dev-cpp/range-v3
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
commitb590c8d7572b727d565cc0b8ff660d43569845de (patch)
tree06f7a4102ea4e845df8b66660f252920d52952f9 /dev-cpp/range-v3
parent24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff)
downloadbaldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip
Adding metadata
Diffstat (limited to 'dev-cpp/range-v3')
-rw-r--r--dev-cpp/range-v3/Manifest1
-rw-r--r--dev-cpp/range-v3/files/0.12.0-cmake.patch66
-rw-r--r--dev-cpp/range-v3/files/0.12.0-fix-any-1.patch31
-rw-r--r--dev-cpp/range-v3/files/0.12.0-fix-any-2.patch156
-rw-r--r--dev-cpp/range-v3/metadata.xml19
-rw-r--r--dev-cpp/range-v3/range-v3-0.12.0-r1.ebuild47
6 files changed, 320 insertions, 0 deletions
diff --git a/dev-cpp/range-v3/Manifest b/dev-cpp/range-v3/Manifest
new file mode 100644
index 000000000000..8414af337fcb
--- /dev/null
+++ b/dev-cpp/range-v3/Manifest
@@ -0,0 +1 @@
+DIST range-v3-0.12.0.tar.gz 582834 BLAKE2B 252066fae70aae76450226f2c17248662de4778dcebcd7dbaa2bf757c1bfe3e7441f65e41e3110c1ae83ae93a41c54d6c006dbf5482ffbe09a3aa4f51d02df9c SHA512 b8b632b8e0f2a3234ef61813212c237f648cd741e816ca57bd86f82f6459f7d755e2b70361d2aa43847874fb546a31a792ab1c3ba90292818ae7313438dc62d0
diff --git a/dev-cpp/range-v3/files/0.12.0-cmake.patch b/dev-cpp/range-v3/files/0.12.0-cmake.patch
new file mode 100644
index 000000000000..76dd57f8f833
--- /dev/null
+++ b/dev-cpp/range-v3/files/0.12.0-cmake.patch
@@ -0,0 +1,66 @@
+https://bugs.gentoo.org/957283
+https://github.com/ericniebler/range-v3/pull/1851
+From 78980bf7f978ca2a698c5c84f13311efe91f6690 Mon Sep 17 00:00:00 2001
+From: wermos <63574588+wermos@users.noreply.github.com>
+Date: Sat, 31 May 2025 19:53:51 +0530
+Subject: [PATCH] Bump CMake minimum version.
+
+---
+ CMakeLists.txt | 2 +-
+ cmake/GoogleBenchmark.cmake.in | 2 +-
+ cmake/GoogleTest.cmake.in | 2 +-
+ test_package/CMakeLists.txt | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4670179121..4e528a23db 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -5,7 +5,7 @@
+ # Distributed under the Boost Software License, Version 1.0.
+ # (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
+-cmake_minimum_required(VERSION 3.6)
++cmake_minimum_required(VERSION 3.15)
+ get_directory_property(is_subproject PARENT_DIRECTORY)
+
+ if(NOT is_subproject)
+diff --git a/cmake/GoogleBenchmark.cmake.in b/cmake/GoogleBenchmark.cmake.in
+index 3fcf1b5c90..b5bf1439b6 100644
+--- a/cmake/GoogleBenchmark.cmake.in
++++ b/cmake/GoogleBenchmark.cmake.in
+@@ -2,7 +2,7 @@
+ # Distributed under the Boost Software License, Version 1.0.
+ # (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
+-cmake_minimum_required(VERSION 2.8.2)
++cmake_minimum_required(VERSION 3.15)
+
+ project(google-benchmark-download NONE)
+
+diff --git a/cmake/GoogleTest.cmake.in b/cmake/GoogleTest.cmake.in
+index 0d33f9d8b5..1afe647be3 100644
+--- a/cmake/GoogleTest.cmake.in
++++ b/cmake/GoogleTest.cmake.in
+@@ -2,7 +2,7 @@
+ # Distributed under the Boost Software License, Version 1.0.
+ # (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
+-cmake_minimum_required(VERSION 2.8.2)
++cmake_minimum_required(VERSION 3.15)
+
+ project(google-test-download NONE)
+
+diff --git a/test_package/CMakeLists.txt b/test_package/CMakeLists.txt
+index 2984a513d9..5b758fc0f4 100644
+--- a/test_package/CMakeLists.txt
++++ b/test_package/CMakeLists.txt
+@@ -11,7 +11,7 @@
+ #
+
+ PROJECT(PackageTest)
+-cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
++cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
+
+ include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+ conan_basic_setup()
diff --git a/dev-cpp/range-v3/files/0.12.0-fix-any-1.patch b/dev-cpp/range-v3/files/0.12.0-fix-any-1.patch
new file mode 100644
index 000000000000..00eb457b5dcb
--- /dev/null
+++ b/dev-cpp/range-v3/files/0.12.0-fix-any-1.patch
@@ -0,0 +1,31 @@
+From 64fe7d738bb2c2aa8e9ba24d170a8548519156a7 Mon Sep 17 00:00:00 2001
+From: Eric Niebler <eniebler@nvidia.com>
+Date: Wed, 22 Jun 2022 17:06:16 -0700
+Subject: [PATCH] avoid constraint recursion with ranges::any ctor/assign
+
+---
+ include/range/v3/utility/any.hpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/include/range/v3/utility/any.hpp b/include/range/v3/utility/any.hpp
+index 0d2889264..5feb2f8cd 100644
+--- a/include/range/v3/utility/any.hpp
++++ b/include/range/v3/utility/any.hpp
+@@ -123,7 +123,7 @@ namespace ranges
+ public:
+ any() noexcept = default;
+ template(typename TRef, typename T = detail::decay_t<TRef>)(
+- requires copyable<T> AND (!same_as<T, any>)) //
++ requires (!same_as<T, any>) AND copyable<T>) //
+ any(TRef && t)
+ : ptr_(new impl<T>(static_cast<TRef &&>(t)))
+ {}
+@@ -138,7 +138,7 @@ namespace ranges
+ return *this;
+ }
+ template(typename TRef, typename T = detail::decay_t<TRef>)(
+- requires copyable<T> AND (!same_as<T, any>)) //
++ requires (!same_as<T, any>) AND copyable<T>) //
+ any & operator=(TRef && t)
+ {
+ any{static_cast<TRef &&>(t)}.swap(*this);
diff --git a/dev-cpp/range-v3/files/0.12.0-fix-any-2.patch b/dev-cpp/range-v3/files/0.12.0-fix-any-2.patch
new file mode 100644
index 000000000000..94898cc21a52
--- /dev/null
+++ b/dev-cpp/range-v3/files/0.12.0-fix-any-2.patch
@@ -0,0 +1,156 @@
+From 390a35e5815d1cb4e40e87d332df711de379a852 Mon Sep 17 00:00:00 2001
+From: Eric Niebler <eniebler@nvidia.com>
+Date: Wed, 22 Jun 2022 22:56:28 -0700
+Subject: [PATCH] work around strange gcc bug causing constraint recursion in
+ ranges::any
+
+---
+ include/range/v3/detail/config.hpp | 8 ++---
+ include/range/v3/utility/any.hpp | 58 +++++++++++++++++-------------
+ 2 files changed, 36 insertions(+), 30 deletions(-)
+
+diff --git a/include/range/v3/detail/config.hpp b/include/range/v3/detail/config.hpp
+index f8015f436..d29dada10 100644
+--- a/include/range/v3/detail/config.hpp
++++ b/include/range/v3/detail/config.hpp
+@@ -351,9 +351,6 @@ namespace ranges
+ #define RANGES_WORKAROUND_CLANG_43400 // template friend is redefinition of itself
+ #endif
+ #else // __GNUC__
+-#if __GNUC__ < 6
+-#define RANGES_WORKAROUND_GCC_UNFILED0 /* Workaround old GCC name lookup bug */
+-#endif
+ #if __GNUC__ == 7 || __GNUC__ == 8
+ #define RANGES_WORKAROUND_GCC_91525 /* Workaround strange GCC ICE */
+ #endif
+@@ -724,8 +721,9 @@ namespace ranges
+ #endif
+ #endif // RANGES_CONSTEXPR_IF
+
+-#if !defined(RANGES_BROKEN_CPO_LOOKUP) && !defined(RANGES_DOXYGEN_INVOKED) && \
+- (defined(RANGES_WORKAROUND_GCC_UNFILED0) || defined(RANGES_WORKAROUND_MSVC_895622))
++#if !defined(RANGES_BROKEN_CPO_LOOKUP) && \
++ !defined(RANGES_DOXYGEN_INVOKED) && \
++ defined(RANGES_WORKAROUND_MSVC_895622)
+ #define RANGES_BROKEN_CPO_LOOKUP 1
+ #endif
+ #ifndef RANGES_BROKEN_CPO_LOOKUP
+diff --git a/include/range/v3/utility/any.hpp b/include/range/v3/utility/any.hpp
+index 5feb2f8cd..7a3807499 100644
+--- a/include/range/v3/utility/any.hpp
++++ b/include/range/v3/utility/any.hpp
+@@ -61,25 +61,9 @@ namespace ranges
+ template<typename T>
+ T const * any_cast(any const *) noexcept;
+
+- struct any
++ namespace _any_
+ {
+- private:
+- template<typename T>
+- friend meta::if_c<std::is_reference<T>() || (bool)copyable<T>, T> any_cast(any &);
+-
+- template<typename T>
+- friend meta::if_c<std::is_reference<T>() || (bool)copyable<T>, T> any_cast(
+- any const &);
+-
+- template<typename T>
+- friend meta::if_c<std::is_reference<T>() || (bool)copyable<T>, T> any_cast(
+- any &&);
+-
+- template<typename T>
+- friend T * any_cast(any *) noexcept;
+-
+- template<typename T>
+- friend T const * any_cast(any const *) noexcept;
++ struct _base {};
+
+ struct interface
+ {
+@@ -117,15 +101,39 @@ namespace ranges
+ return typeid(T);
+ }
+ };
++ } // namespace _any_
++
++ struct any
++ #if RANGES_BROKEN_CPO_LOOKUP
++ : private _any_::_base
++ #endif
++ {
++ private:
++ template<typename T>
++ friend meta::if_c<std::is_reference<T>() || (bool)copyable<T>, T> any_cast(any &);
++
++ template<typename T>
++ friend meta::if_c<std::is_reference<T>() || (bool)copyable<T>, T> any_cast(
++ any const &);
++
++ template<typename T>
++ friend meta::if_c<std::is_reference<T>() || (bool)copyable<T>, T> any_cast(
++ any &&);
++
++ template<typename T>
++ friend T * any_cast(any *) noexcept;
++
++ template<typename T>
++ friend T const * any_cast(any const *) noexcept;
+
+- std::unique_ptr<interface> ptr_;
++ std::unique_ptr<_any_::interface> ptr_;
+
+ public:
+ any() noexcept = default;
+ template(typename TRef, typename T = detail::decay_t<TRef>)(
+ requires (!same_as<T, any>) AND copyable<T>) //
+ any(TRef && t)
+- : ptr_(new impl<T>(static_cast<TRef &&>(t)))
++ : ptr_(new _any_::impl<T>(static_cast<TRef &&>(t)))
+ {}
+ any(any &&) noexcept = default;
+ any(any const & that)
+@@ -185,7 +193,7 @@ namespace ranges
+ {
+ if(x.type() != typeid(detail::decay_t<T>))
+ throw bad_any_cast{};
+- return static_cast<any::impl<detail::decay_t<T>> *>(x.ptr_.get())->get();
++ return static_cast<_any_::impl<detail::decay_t<T>> *>(x.ptr_.get())->get();
+ }
+
+ /// \overload
+@@ -194,7 +202,7 @@ namespace ranges
+ {
+ if(x.type() != typeid(detail::decay_t<T>))
+ throw bad_any_cast{};
+- return static_cast<any::impl<detail::decay_t<T>> const *>(x.ptr_.get())->get();
++ return static_cast<_any_::impl<detail::decay_t<T>> const *>(x.ptr_.get())->get();
+ }
+
+ /// \overload
+@@ -203,7 +211,7 @@ namespace ranges
+ {
+ if(x.type() != typeid(detail::decay_t<T>))
+ throw bad_any_cast{};
+- return static_cast<any::impl<detail::decay_t<T>> *>(x.ptr_.get())->get();
++ return static_cast<_any_::impl<detail::decay_t<T>> *>(x.ptr_.get())->get();
+ }
+
+ /// \overload
+@@ -211,7 +219,7 @@ namespace ranges
+ T * any_cast(any * p) noexcept
+ {
+ if(p && p->ptr_)
+- if(any::impl<T> * q = dynamic_cast<any::impl<T> *>(p->ptr_.get()))
++ if(_any_::impl<T> * q = dynamic_cast<_any_::impl<T> *>(p->ptr_.get()))
+ return &q->get();
+ return nullptr;
+ }
+@@ -221,7 +229,7 @@ namespace ranges
+ T const * any_cast(any const * p) noexcept
+ {
+ if(p && p->ptr_)
+- if(any::impl<T> const * q = dynamic_cast<any::impl<T> const *>(p->ptr_.get()))
++ if(_any_::impl<T> const * q = dynamic_cast<_any_::impl<T> const *>(p->ptr_.get()))
+ return &q->get();
+ return nullptr;
+ }
diff --git a/dev-cpp/range-v3/metadata.xml b/dev-cpp/range-v3/metadata.xml
new file mode 100644
index 000000000000..3e353ff22ddf
--- /dev/null
+++ b/dev-cpp/range-v3/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>alexey+gentoo@asokolov.org</email>
+ <name>Alexey Sokolov</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>
+ Ranges are an extension of the Standard Template Library that makes its
+ iterators and algorithms more powerful by making them composable. Unlike
+ other range-like solutions which seek to do away with iterators, in
+ range-v3 ranges are an abstration layer on top of iterators.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-cpp/range-v3/range-v3-0.12.0-r1.ebuild b/dev-cpp/range-v3/range-v3-0.12.0-r1.ebuild
new file mode 100644
index 000000000000..604bc23411f7
--- /dev/null
+++ b/dev-cpp/range-v3/range-v3-0.12.0-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 2020-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Range library for C++14/17/20, basis for C++20's std::ranges"
+HOMEPAGE="https://github.com/ericniebler/range-v3"
+SRC_URI="https://github.com/ericniebler/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+PATCHES=(
+ "${FILESDIR}/0.12.0-fix-any-1.patch"
+ "${FILESDIR}/0.12.0-fix-any-2.patch"
+ "${FILESDIR}/0.12.0-cmake.patch"
+)
+
+src_prepare() {
+ # header-only libraries go to arch-independent dirs
+ sed -i -e 's@CMAKE_INSTALL_LIBDIR@CMAKE_INSTALL_DATADIR@g' CMakeLists.txt || die
+ rm include/module.modulemap || die # https://bugs.gentoo.org/755740
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DRANGES_BUILD_CALENDAR_EXAMPLE=OFF
+ -DRANGES_NATIVE=OFF
+ -DRANGES_DEBUG_INFO=OFF
+ -DRANGES_NATIVE=OFF
+ -DRANGES_ENABLE_WERROR=OFF
+ -DRANGES_VERBOSE_BUILD=ON
+ -DRANGE_V3_EXAMPLES=OFF
+ -DRANGE_V3_PERF=OFF
+ -DRANGE_V3_DOCS=OFF
+ -DRANGE_V3_HEADER_CHECKS="$(usex test ON OFF)"
+ -DRANGE_V3_TESTS=$(usex test ON OFF)
+ #TODO: clang support + -DRANGES_MODULES=yes
+ )
+ cmake_src_configure
+}