summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Fore <csfore@posteo.net>2024-07-31 15:37:26 -0400
committerSam James <sam@gentoo.org>2024-07-31 20:45:56 +0100
commitb2d0246fbfdeb088c4de598e4897bfa3fe9c0363 (patch)
treedaef5c99f23b665f7b3785be9b74d042f97dd480 /dev-cpp
parentmedia-sound/quodlibet: Stabilize 4.6.0-r2 x86, #937001 (diff)
downloadgentoo-b2d0246fbfdeb088c4de598e4897bfa3fe9c0363.tar.gz
gentoo-b2d0246fbfdeb088c4de598e4897bfa3fe9c0363.tar.bz2
gentoo-b2d0246fbfdeb088c4de598e4897bfa3fe9c0363.zip
dev-cpp/sol2: Fix compilation on GCC 15
- Tests pass - Patch taken from upstream Closes: https://bugs.gentoo.org/936924 Signed-off-by: Christopher Fore <csfore@posteo.net> Closes: https://github.com/gentoo/gentoo/pull/37886 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-cpp')
-rw-r--r--dev-cpp/sol2/files/sol2-3.3.1-fix-emplace.patch18
-rw-r--r--dev-cpp/sol2/sol2-3.3.1-r1.ebuild68
2 files changed, 86 insertions, 0 deletions
diff --git a/dev-cpp/sol2/files/sol2-3.3.1-fix-emplace.patch b/dev-cpp/sol2/files/sol2-3.3.1-fix-emplace.patch
new file mode 100644
index 000000000000..5d926a700979
--- /dev/null
+++ b/dev-cpp/sol2/files/sol2-3.3.1-fix-emplace.patch
@@ -0,0 +1,18 @@
+https://github.com/ThePhD/sol2/commit/d805d027e0a0a7222e936926139f06e23828ce9f
+
+From: =?UTF-8?q?=E2=80=9CPaulo?= <paulo@ubook.com>
+Date: Sat, 25 May 2024 01:52:59 -0300
+Subject: [PATCH] fix emplace
+
+--- a/include/sol/optional_implementation.hpp
++++ b/include/sol/optional_implementation.hpp
+@@ -2191,7 +2191,8 @@ namespace sol {
+ static_assert(std::is_constructible<T, Args&&...>::value, "T must be constructible with Args");
+
+ *this = nullopt;
+- this->construct(std::forward<Args>(args)...);
++ new (static_cast<void*>(this)) optional(std::in_place, std::forward<Args>(args)...);
++ return **this;
+ }
+
+ /// Swaps this optional with the other.
diff --git a/dev-cpp/sol2/sol2-3.3.1-r1.ebuild b/dev-cpp/sol2/sol2-3.3.1-r1.ebuild
new file mode 100644
index 000000000000..04c86b3588ee
--- /dev/null
+++ b/dev-cpp/sol2/sol2-3.3.1-r1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+inherit cmake lua
+
+DESCRIPTION="Header-only C++ <-> Lua API wrapper"
+HOMEPAGE="https://github.com/ThePhD/sol2"
+SRC_URI="https://github.com/ThePhD/sol2/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+IUSE="test"
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ${LUA_DEPS}
+ test? (
+ >=dev-cpp/catch-3
+ )
+"
+BDEPEND="
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/sol2-3.3.0-werror.patch
+ "${FILESDIR}"/sol2-3.2.2-luajit-pkgconf.patch
+ "${FILESDIR}"/sol2-3.3.0-catch-depend.patch
+ "${FILESDIR}"/sol2-3.3.0-cmake-dir.patch
+ "${FILESDIR}"/sol2-3.3.0-dont-install-tests.patch
+ "${FILESDIR}"/sol2-3.3.1-fix-emplace.patch
+)
+
+src_configure() {
+ sol2_configure_wrapper() {
+ local mycmakeargs=(
+ -DSOL2_BUILD_LUA=no
+ -DSOL2_TESTS=$(usex test)
+ -DSOL2_LUA_VERSION="${ELUA}"
+ )
+ cmake_src_configure
+ }
+ lua_foreach_impl sol2_configure_wrapper
+}
+
+src_compile() {
+ lua_foreach_impl cmake_src_compile
+}
+
+src_test() {
+ sol2_test_wrapper() {
+ if [[ ${ELUA} == luajit ]]; then
+ einfo "Skipping test due to https://github.com/ThePhD/sol2/issues/1221"
+ else
+ cmake_src_test
+ fi
+ }
+ lua_foreach_impl sol2_test_wrapper
+}
+
+src_install() {
+ lua_foreach_impl cmake_src_install
+}