summaryrefslogtreecommitdiff
path: root/dev-qt
diff options
context:
space:
mode:
authorIonen Wolkens <ionen@gentoo.org>2024-09-04 03:57:56 -0400
committerIonen Wolkens <ionen@gentoo.org>2024-09-04 06:20:54 -0400
commit4864940397a0b5808598d468d63605eb2e0217b1 (patch)
treedfc798deb17907e827d9317306afbb7aa1807b6d /dev-qt
parentapp-emacs/vertico: Stabilize 1.9 amd64, #937155 (diff)
downloadgentoo-4864940397a0b5808598d468d63605eb2e0217b1.tar.gz
gentoo-4864940397a0b5808598d468d63605eb2e0217b1.tar.bz2
gentoo-4864940397a0b5808598d468d63605eb2e0217b1.zip
dev-qt/qt-creator: partially fix build with clang19 and gcc15
other.resetter bit with USE=qmldesigner wrt bug #937600 comment #4 still need attention, but adding what we have so far esp. given qmldesigner is off by default and has limited impact. Bug: https://bugs.gentoo.org/937600 Closes: https://bugs.gentoo.org/938486 Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'dev-qt')
-rw-r--r--dev-qt/qt-creator/files/qt-creator-14.0.1-clang19.patch24
-rw-r--r--dev-qt/qt-creator/files/qt-creator-14.0.1-sol2-clang19-gcc15.patch18
-rw-r--r--dev-qt/qt-creator/qt-creator-14.0.1.ebuild2
3 files changed, 44 insertions, 0 deletions
diff --git a/dev-qt/qt-creator/files/qt-creator-14.0.1-clang19.patch b/dev-qt/qt-creator/files/qt-creator-14.0.1-clang19.patch
new file mode 100644
index 000000000000..e296f5bf68be
--- /dev/null
+++ b/dev-qt/qt-creator/files/qt-creator-14.0.1-clang19.patch
@@ -0,0 +1,24 @@
+https://bugs.gentoo.org/937600
+
+qt-creator has a workaround for clang (formerly) lacking an implementation
+for __cpp_template_template_args, but the workaround causes issues now that
+it is available.
+
+https://github.com/llvm/llvm-project/pull/89807
+https://github.com/qt-creator/qt-creator/commit/d400dce35d817afd719ffadf8c8f43c8814c05c1
+--- a/src/libs/utils/algorithm.h
++++ b/src/libs/utils/algorithm.h
+@@ -259,5 +259,5 @@
+ typename ResultContainer = C<Result>>
+ Q_REQUIRED_RESULT decltype(auto) transform(SC &&container, F function);
+-#ifdef Q_CC_CLANG
++#if defined(Q_CC_CLANG) && !defined(__cpp_template_template_args)
+ // "Matching of template template-arguments excludes compatible templates"
+ // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0522r0.html (P0522R0)
+@@ -810,5 +810,5 @@
+ }
+
+-#ifdef Q_CC_CLANG
++#if defined(Q_CC_CLANG) && !defined(__cpp_template_template_args)
+ template<template<typename, typename> class C, // result container type
+ typename SC, // input container type
diff --git a/dev-qt/qt-creator/files/qt-creator-14.0.1-sol2-clang19-gcc15.patch b/dev-qt/qt-creator/files/qt-creator-14.0.1-sol2-clang19-gcc15.patch
new file mode 100644
index 000000000000..29e600ca33ef
--- /dev/null
+++ b/dev-qt/qt-creator/files/qt-creator-14.0.1-sol2-clang19-gcc15.patch
@@ -0,0 +1,18 @@
+https://bugs.gentoo.org/938486
+https://bugs.gentoo.org/937600
+https://bugs.gentoo.org/936924
+https://bugreports.qt.io/browse/QTCREATORBUG-31517
+https://github.com/ThePhD/sol2/commit/d805d027e0a0a7222e936926139f06e23828ce9f
+https://codereview.qt-project.org/c/qt-creator/qt-creator/+/587620
+--- a/src/libs/3rdparty/sol2/include/sol/sol.hpp
++++ b/src/libs/3rdparty/sol2/include/sol/sol.hpp
+@@ -6818,7 +6818,8 @@
+ 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-qt/qt-creator/qt-creator-14.0.1.ebuild b/dev-qt/qt-creator/qt-creator-14.0.1.ebuild
index 78c4cd5ea7ef..57312a5304e4 100644
--- a/dev-qt/qt-creator/qt-creator-14.0.1.ebuild
+++ b/dev-qt/qt-creator/qt-creator-14.0.1.ebuild
@@ -91,6 +91,8 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-11.0.2-musl-no-execinfo.patch
"${FILESDIR}"/${PN}-12.0.0-musl-no-malloc-trim.patch
+ "${FILESDIR}"/${PN}-14.0.1-clang19.patch
+ "${FILESDIR}"/${PN}-14.0.1-sol2-clang19-gcc15.patch
)
pkg_setup() {