devel/qtcreator: Really fix build with LLVM 19

Clang >= 19.1.0-rc1 enables C++17 relaxed template template argument
matching by default. The workaround in qtcreator before this was the
case is now causing build failures.

Add upstream patch to fix build of the clang-format plugin with
clang-format19.

MFH:		2024Q4
This commit is contained in:
Jason E. Hale 2024-11-02 11:54:46 -04:00
parent 26cd6843de
commit af073c18a3
3 changed files with 32 additions and 1 deletions

View file

@ -6,6 +6,9 @@ MASTER_SITES= QT/official_releases/qtcreator/${DISTVERSION:R}/${DISTVERSION}
DISTNAME= qt-creator-opensource-src-${DISTVERSION}
DIST_SUBDIR= KDE/Qt/qtcreator
PATCH_SITES= https://github.com/qt-creator/qt-creator/commit/
PATCHFILES+= f175ec933f1c5c5d7a345edbaacc8ff90202aee2.patch:-p1 # clang-format19 fix; will be in qtcreator 15.0
MAINTAINER= kde@FreeBSD.org
COMMENT= C++ and QML IDE for Qt development
WWW= https://qt-project.org/wiki/Category:Tools::QtCreator

View file

@ -1,3 +1,5 @@
TIMESTAMP = 1727826035
TIMESTAMP = 1730535650
SHA256 (KDE/Qt/qtcreator/qt-creator-opensource-src-14.0.2.tar.xz) = b2d2f878bb6928a8e6e30d87600bdd93cf404c2619a151c64bdcdc8cd0783892
SIZE (KDE/Qt/qtcreator/qt-creator-opensource-src-14.0.2.tar.xz) = 52423044
SHA256 (KDE/Qt/qtcreator/f175ec933f1c5c5d7a345edbaacc8ff90202aee2.patch) = 5f4528f1b927c68a0a162a9f2c1b01d49387355eb6e5640dd2b2a8332d6383f9
SIZE (KDE/Qt/qtcreator/f175ec933f1c5c5d7a345edbaacc8ff90202aee2.patch) = 1196

View file

@ -0,0 +1,26 @@
Fix build with LLVM >= 19.1.0-rc1.
Clang >= 19.1.0-rc1 enables C++17 relaxed template template argument
matching by default. The workaround in qtcreator before this was the
case is now causing build failures.
--- src/libs/utils/algorithm.h.orig 2024-09-27 01:17:49 UTC
+++ src/libs/utils/algorithm.h
@@ -258,7 +258,7 @@ Q_REQUIRED_RESULT decltype(auto) transform(SC &&contai
typename Result = std::decay_t<std::invoke_result_t<F, Value&>>,
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)
// in C++17 makes the above match e.g. C=std::vector even though that takes two
@@ -809,7 +809,7 @@ Q_REQUIRED_RESULT decltype(auto) transform(SC &&contai
return transform<ResultContainer>(std::forward<SC>(container), function);
}
-#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
typename F, // function type