diff options
Diffstat (limited to 'dev-cpp')
| -rw-r--r-- | dev-cpp/range-v3/Manifest | 1 | ||||
| -rw-r--r-- | dev-cpp/range-v3/files/0.11.0-gcc10.patch | 133 | ||||
| -rw-r--r-- | dev-cpp/range-v3/files/0.11.0-no-werror.patch | 39 | ||||
| -rw-r--r-- | dev-cpp/range-v3/range-v3-0.11.0.ebuild | 46 |
4 files changed, 219 insertions, 0 deletions
diff --git a/dev-cpp/range-v3/Manifest b/dev-cpp/range-v3/Manifest index f090fc7442ea..6fafedbb109f 100644 --- a/dev-cpp/range-v3/Manifest +++ b/dev-cpp/range-v3/Manifest @@ -1 +1,2 @@ DIST range-v3-0.10.0.tar.gz 525765 BLAKE2B 7dd3aed9b35920e058fe43bccd364831a52ad8d50179d1057ab7a37cdef82df021bb09a9913018ae78982fe136c855ba4101e31d35cfc21747af994d0103b95e SHA512 4db089dcbf638eb30fa20dcf6785dd460c5a074a8912984a484592753cfee9f5b9a0e2c56b5bc5921d1b6120877aa2c83ac0a6fe428088ef2854033a635e9723 +DIST range-v3-0.11.0.tar.gz 533136 BLAKE2B d325b14a9d812cb7a600a947126bcecf9384bec987edbad42eec38560415d075815ab92e3f92dad291029fc3e1b1afa1ceaf54443b4a536078047fd32d344394 SHA512 9d6cdcbc1e50104206ba731c3bdc9aab3acfcf69cd83f0e0b4de18b88df2a9e73d64e55638421768d4433c542b6619f6e5af6b17cccd3090cf8b4d4efe9863e4 diff --git a/dev-cpp/range-v3/files/0.11.0-gcc10.patch b/dev-cpp/range-v3/files/0.11.0-gcc10.patch new file mode 100644 index 000000000000..caebf0a63162 --- /dev/null +++ b/dev-cpp/range-v3/files/0.11.0-gcc10.patch @@ -0,0 +1,133 @@ +From a91f0e1be27a31c446452a753001d4518ef83a6b Mon Sep 17 00:00:00 2001 +From: Eric Niebler <eniebler@boost.org> +Date: Mon, 17 Aug 2020 17:48:09 -0700 +Subject: [PATCH] work around premature instantiation problem on gcc; fixes + #1545 + +--- + include/range/v3/view/chunk.hpp | 6 +++--- + include/range/v3/view/split.hpp | 26 +++++++++++++------------- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/include/range/v3/view/chunk.hpp b/include/range/v3/view/chunk.hpp +index 0c03cf1eb..b8df13303 100644 +--- a/include/range/v3/view/chunk.hpp ++++ b/include/range/v3/view/chunk.hpp +@@ -313,8 +313,8 @@ namespace ranges + + public: + inner_view() = default; +- constexpr explicit inner_view(chunk_view_ & view) noexcept +- : rng_{&view} ++ constexpr explicit inner_view(chunk_view_ * view) noexcept ++ : rng_{view} + {} + CPP_auto_member + constexpr auto CPP_fun(size)()( +@@ -338,7 +338,7 @@ namespace ranges + constexpr inner_view read() const + { + RANGES_EXPECT(!done()); +- return inner_view{*rng_}; ++ return inner_view{rng_}; + } + constexpr bool done() const + { +diff --git a/include/range/v3/view/split.hpp b/include/range/v3/view/split.hpp +index facf1b37f..496220e4a 100644 +--- a/include/range/v3/view/split.hpp ++++ b/include/range/v3/view/split.hpp +@@ -389,19 +389,19 @@ namespace ranges + split_outer_iterator() = default; + + CPP_member +- constexpr explicit CPP_ctor(split_outer_iterator)(Parent & parent)( ++ constexpr explicit CPP_ctor(split_outer_iterator)(Parent * parent)( + /// \pre + requires (!forward_range<Base>)) +- : parent_(&parent) ++ : parent_(parent) + {} + + CPP_member +- constexpr CPP_ctor(split_outer_iterator)(Parent & parent, ++ constexpr CPP_ctor(split_outer_iterator)(Parent * parent, + iterator_t<Base> current)( + /// \pre + requires forward_range<Base>) + : Current{std::move(current)} +- , parent_(&parent) ++ , parent_(parent) + {} + + template(bool Other)( +@@ -519,7 +519,7 @@ namespace ranges + ranges::equal_to> && + (forward_range<V> || detail::tiny_range<Pattern>) + #endif +- struct RANGES_EMPTY_BASES split_view ++ struct RANGES_EMPTY_BASES split_view + : view_interface<split_view<V, Pattern>, is_finite<V>::value ? finite : unknown> + , private detail::split_view_base<iterator_t<V>> + { +@@ -537,17 +537,17 @@ namespace ranges + #if RANGES_CXX_IF_CONSTEXPR < RANGES_CXX_IF_CONSTEXPR_17 + outer_iterator<simple_view<V>()> begin_(std::true_type) + { +- return outer_iterator<simple_view<V>()>{*this, ranges::begin(base_)}; ++ return outer_iterator<simple_view<V>()>{this, ranges::begin(base_)}; + } + outer_iterator<false> begin_(std::false_type) + { + this->curr_ = ranges::begin(base_); +- return outer_iterator<false>{*this}; ++ return outer_iterator<false>{this}; + } + + outer_iterator<simple_view<V>()> end_(std::true_type) const + { +- return outer_iterator<true>{*this, ranges::end(base_)}; ++ return outer_iterator<true>{this, ranges::end(base_)}; + } + default_sentinel_t end_(std::false_type) const + { +@@ -580,11 +580,11 @@ namespace ranges + { + #if RANGES_CXX_IF_CONSTEXPR >= RANGES_CXX_IF_CONSTEXPR_17 + if constexpr(forward_range<V>) +- return outer_iterator<simple_view<V>()>{*this, ranges::begin(base_)}; ++ return outer_iterator<simple_view<V>()>{this, ranges::begin(base_)}; + else + { + this->curr_ = ranges::begin(base_); +- return outer_iterator<false>{*this}; ++ return outer_iterator<false>{this}; + } + #else + return begin_(meta::bool_<forward_range<V>>{}); +@@ -596,7 +596,7 @@ namespace ranges + /// \pre + requires forward_range<V> && forward_range<const V>) + { +- return {*this, ranges::begin(base_)}; ++ return {this, ranges::begin(base_)}; + } + CPP_member + constexpr auto end() // +@@ -604,14 +604,14 @@ namespace ranges + /// \pre + requires forward_range<V> && common_range<V>) + { +- return outer_iterator<simple_view<V>()>{*this, ranges::end(base_)}; ++ return outer_iterator<simple_view<V>()>{this, ranges::end(base_)}; + } + constexpr auto end() const + { + #if RANGES_CXX_IF_CONSTEXPR >= RANGES_CXX_IF_CONSTEXPR_17 + if constexpr(forward_range<V> && forward_range<const V> && + common_range<const V>) +- return outer_iterator<true>{*this, ranges::end(base_)}; ++ return outer_iterator<true>{this, ranges::end(base_)}; + else + return default_sentinel; + #else diff --git a/dev-cpp/range-v3/files/0.11.0-no-werror.patch b/dev-cpp/range-v3/files/0.11.0-no-werror.patch new file mode 100644 index 000000000000..1894fcc93b6c --- /dev/null +++ b/dev-cpp/range-v3/files/0.11.0-no-werror.patch @@ -0,0 +1,39 @@ +From 66e847d4e14be3a369b7e26a03a172b20e62c003 Mon Sep 17 00:00:00 2001 +From: eksi <eksi@eksi.eksi> +Date: Wed, 4 Nov 2020 20:37:01 +0300 +Subject: [PATCH] Add an option to disable -Werror. Fixes #1528 + +--- + cmake/ranges_flags.cmake | 4 +++- + cmake/ranges_options.cmake | 3 +++ + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/cmake/ranges_flags.cmake b/cmake/ranges_flags.cmake +index 76d893043..9b09ddcb8 100644 +--- a/cmake/ranges_flags.cmake ++++ b/cmake/ranges_flags.cmake +@@ -88,7 +88,9 @@ else() + # Enable "normal" warnings and make them errors: + ranges_append_flag(RANGES_HAS_WALL -Wall) + ranges_append_flag(RANGES_HAS_WEXTRA -Wextra) +- ranges_append_flag(RANGES_HAS_WERROR -Werror) ++ if (RANGES_ENABLE_WERROR) ++ ranges_append_flag(RANGES_HAS_WERROR -Werror) ++ endif() + endif() + + if (RANGES_ENV_LINUX AND RANGES_CXX_COMPILER_CLANG) +diff --git a/cmake/ranges_options.cmake b/cmake/ranges_options.cmake +index 4ec39c7f0..8455af306 100644 +--- a/cmake/ranges_options.cmake ++++ b/cmake/ranges_options.cmake +@@ -16,6 +16,9 @@ option(RANGES_MODULES "Enables use of Clang modules (experimental)." OFF) + option(RANGES_NATIVE "Enables -march/-mtune=native." ON) + option(RANGES_VERBOSE_BUILD "Enables debug output from CMake." OFF) + option(RANGES_LLVM_POLLY "Enables LLVM Polly." OFF) ++option(RANGES_ENABLE_WERROR ++ "Enables -Werror. Only effective if compiler is not clang-cl or MSVC. ON by default" ++ ON) + option(RANGES_PREFER_REAL_CONCEPTS + "Use real concepts instead of emulation if the compiler supports it" + ON) diff --git a/dev-cpp/range-v3/range-v3-0.11.0.ebuild b/dev-cpp/range-v3/range-v3-0.11.0.ebuild new file mode 100644 index 000000000000..a12572613b50 --- /dev/null +++ b/dev-cpp/range-v3/range-v3-0.11.0.ebuild @@ -0,0 +1,46 @@ +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +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 ~ppc64" +IUSE="test" +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}/0.11.0-no-werror.patch" + "${FILESDIR}/0.11.0-gcc10.patch" +) + +src_prepare() { + # header-only libraries go to arch-independent dirs + sed -i -e 's@lib/cmake@share/cmake@g' CMakeLists.txt || die + rm include/module.modulemap || die # https://bugs.gentoo.org/755740 + cmake_src_prepare +} + +src_configure() { + 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 +} |
