summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Hoffstätte <holger@applied-asynchrony.com>2024-07-25 23:00:37 +0200
committerSam James <sam@gentoo.org>2024-08-10 21:02:09 +0100
commitafe458f45b86a439985e0c6cae53912d487bc88e (patch)
treebf7a71be66b98bd488e579e5fbd685ff37ccda93 /dev-util
parentapp-emulation/wine-vanilla: add 9.15 (diff)
downloadgentoo-afe458f45b86a439985e0c6cae53912d487bc88e.tar.gz
gentoo-afe458f45b86a439985e0c6cae53912d487bc88e.tar.bz2
gentoo-afe458f45b86a439985e0c6cae53912d487bc88e.zip
dev-util/ccache: fix compilation with libfmt >=10
Closes: https://bugs.gentoo.org/935291 Signed-off-by: Holger Hoffstätte <holger@applied-asynchrony.com> Closes: https://github.com/gentoo/gentoo/pull/37725 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-util')
-rw-r--r--dev-util/ccache/ccache-4.10.1.ebuild1
-rw-r--r--dev-util/ccache/files/ccache-4.10-libfmt11.patch85
2 files changed, 86 insertions, 0 deletions
diff --git a/dev-util/ccache/ccache-4.10.1.ebuild b/dev-util/ccache/ccache-4.10.1.ebuild
index f50d51039e24..9b08f52780fa 100644
--- a/dev-util/ccache/ccache-4.10.1.ebuild
+++ b/dev-util/ccache/ccache-4.10.1.ebuild
@@ -73,6 +73,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-3.5-nvcc-test.patch
"${FILESDIR}"/${PN}-4.0-objdump.patch
"${FILESDIR}"/${PN}-4.10-avoid-run-user.patch
+ "${FILESDIR}"/${PN}-4.10-libfmt11.patch
)
src_unpack() {
diff --git a/dev-util/ccache/files/ccache-4.10-libfmt11.patch b/dev-util/ccache/files/ccache-4.10-libfmt11.patch
new file mode 100644
index 000000000000..37ed2167611a
--- /dev/null
+++ b/dev-util/ccache/files/ccache-4.10-libfmt11.patch
@@ -0,0 +1,85 @@
+
+Patch from:
+https://github.com/ccache/ccache/commit/71f772e9d3d4f8045cfa7bccd03bd21c1e8fbef1
+
+From db136b6819d95bb53582e4fea8c328029c8f5681 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Holger=20Hoffst=C3=A4tte?= <holger@applied-asynchrony.com>
+Date: Tue, 2 Jul 2024 12:53:04 +0200
+Subject: [PATCH] build: Try harder to determine FMT_VERSION
+
+fmt-11.0 moved the FMT_VERSION from core.h to base.h, so try the
+new header first and then fall back to the old one.
+
+Closes: #1477
+---
+ cmake/FindFmt.cmake | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/cmake/FindFmt.cmake b/cmake/FindFmt.cmake
+index 55126a3172..0619f4615e 100644
+--- a/cmake/FindFmt.cmake
++++ b/cmake/FindFmt.cmake
+@@ -3,11 +3,19 @@ mark_as_advanced(FMT_INCLUDE_DIR FMT_LIBRARY)
+ if(DEP_FMT STREQUAL "BUNDLED")
+ message(STATUS "Using bundled Fmt as requested")
+ else()
+- find_path(FMT_INCLUDE_DIR fmt/core.h)
++ find_path(FMT_INCLUDE_DIR fmt/base.h fmt/core.h)
+ find_library(FMT_LIBRARY fmt)
+ if(FMT_INCLUDE_DIR AND FMT_LIBRARY)
+- file(READ "${FMT_INCLUDE_DIR}/fmt/core.h" _fmt_core_h)
+- string(REGEX MATCH "#define FMT_VERSION ([0-9]+)" _ "${_fmt_core_h}")
++ file(READ "${FMT_INCLUDE_DIR}/fmt/base.h" _fmt_base_h)
++ string(REGEX MATCH "#define FMT_VERSION ([0-9]+)" _ "${_fmt_base_h}")
++ if("${CMAKE_MATCH_0}" STREQUAL "")
++ file(READ "${FMT_INCLUDE_DIR}/fmt/core.h" _fmt_core_h)
++ string(REGEX MATCH "#define FMT_VERSION ([0-9]+)" _ "${_fmt_core_h}")
++ endif()
++ if("${CMAKE_MATCH_0}" STREQUAL "")
++ message(FATAL_ERROR "FMT_VERSION not found")
++ return()
++ endif()
+ math(EXPR _fmt_major "${CMAKE_MATCH_1} / 10000")
+ math(EXPR _fmt_minor "${CMAKE_MATCH_1} / 100 % 100")
+ math(EXPR _fmt_patch "${CMAKE_MATCH_1} % 100")
+
+Patch from:
+https://github.com/ccache/ccache/commit/3b09afc5f792f0bd0a15cf6b8408ea40eb069787
+
+From 3b09afc5f792f0bd0a15cf6b8408ea40eb069787 Mon Sep 17 00:00:00 2001
+From: Joel Rosdahl <joel@rosdahl.net>
+Date: Tue, 2 Jul 2024 17:05:43 +0200
+Subject: [PATCH] build: Fix detection of Fmt version for Fmt<11
+
+Fixes regression in 71f772e9d3d4f8045cfa7bccd03bd21c1e8fbef1.
+---
+ cmake/FindFmt.cmake | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/cmake/FindFmt.cmake b/cmake/FindFmt.cmake
+index 0619f4615e..7c39291eca 100644
+--- a/cmake/FindFmt.cmake
++++ b/cmake/FindFmt.cmake
+@@ -3,15 +3,16 @@ mark_as_advanced(FMT_INCLUDE_DIR FMT_LIBRARY)
+ if(DEP_FMT STREQUAL "BUNDLED")
+ message(STATUS "Using bundled Fmt as requested")
+ else()
+- find_path(FMT_INCLUDE_DIR fmt/base.h fmt/core.h)
++ find_path(FMT_INCLUDE_DIR NAMES fmt/base.h fmt/core.h)
+ find_library(FMT_LIBRARY fmt)
+ if(FMT_INCLUDE_DIR AND FMT_LIBRARY)
+- file(READ "${FMT_INCLUDE_DIR}/fmt/base.h" _fmt_base_h)
+- string(REGEX MATCH "#define FMT_VERSION ([0-9]+)" _ "${_fmt_base_h}")
+- if("${CMAKE_MATCH_0}" STREQUAL "")
+- file(READ "${FMT_INCLUDE_DIR}/fmt/core.h" _fmt_core_h)
+- string(REGEX MATCH "#define FMT_VERSION ([0-9]+)" _ "${_fmt_core_h}")
++ if(EXISTS "${FMT_INCLUDE_DIR}/fmt/base.h")
++ set(_fmt_h base.h)
++ else()
++ set(_fmt_h core.h)
+ endif()
++ file(READ "${FMT_INCLUDE_DIR}/fmt/${_fmt_h}" _fmt_h_content)
++ string(REGEX MATCH "#define FMT_VERSION ([0-9]+)" _ "${_fmt_h_content}")
+ if("${CMAKE_MATCH_0}" STREQUAL "")
+ message(FATAL_ERROR "FMT_VERSION not found")
+ return()