git: af073c18a312 - main - devel/qtcreator: Really fix build with LLVM 19

From: Jason E. Hale <jhale_at_FreeBSD.org>
Date: Sat, 02 Nov 2024 16:15:01 UTC
The branch main has been updated by jhale:

URL: https://cgit.FreeBSD.org/ports/commit/?id=af073c18a31257e36538a52e2e7ebdf900e0d888

commit af073c18a31257e36538a52e2e7ebdf900e0d888
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-11-02 15:54:46 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-11-02 16:14:51 +0000

    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
---
 devel/qtcreator/Makefile                           |  3 +++
 devel/qtcreator/distinfo                           |  4 +++-
 .../files/patch-src_libs_utils_algorithm.h         | 26 ++++++++++++++++++++++
 3 files changed, 32 insertions(+), 1 deletion(-)

diff --git a/devel/qtcreator/Makefile b/devel/qtcreator/Makefile
index b83c70652f04..860dffa66d68 100644
--- a/devel/qtcreator/Makefile
+++ b/devel/qtcreator/Makefile
@@ -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
diff --git a/devel/qtcreator/distinfo b/devel/qtcreator/distinfo
index b56d09982207..d71289b05176 100644
--- a/devel/qtcreator/distinfo
+++ b/devel/qtcreator/distinfo
@@ -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
diff --git a/devel/qtcreator/files/patch-src_libs_utils_algorithm.h b/devel/qtcreator/files/patch-src_libs_utils_algorithm.h
new file mode 100644
index 000000000000..cbe9421ff8bc
--- /dev/null
+++ b/devel/qtcreator/files/patch-src_libs_utils_algorithm.h
@@ -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