From 3c76f37753a5c86e6af01047bfdd69453cec3bf8 Mon Sep 17 00:00:00 2001 From: Reno Dakota Date: Wed, 13 Nov 2024 00:02:43 -0800 Subject: [PATCH] zxing-cpp: c++20 for char8_t build fails on clang-19 due to using c++ 17 and having char8_t typedefed to an uint8_t, which is not supported by std::char_traits. Using c++20 fixes this as the code will use a char8_t. Used a substituteInPlace so the override can be removed once c++20 is the default in the cmake file. --- pkgs/by-name/zx/zxing-cpp/package.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/by-name/zx/zxing-cpp/package.nix b/pkgs/by-name/zx/zxing-cpp/package.nix index affac873f2cd..e162d3c40673 100644 --- a/pkgs/by-name/zx/zxing-cpp/package.nix +++ b/pkgs/by-name/zx/zxing-cpp/package.nix @@ -18,6 +18,12 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-teFspdATn9M7Z1vSr/7PdJx/xAv+TVai8rIekxqpBZk="; }; + # c++ 20 needed for char8_t or clang-19 build fails + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace-fail "CMAKE_CXX_STANDARD 17" "CMAKE_CXX_STANDARD 20" + ''; + nativeBuildInputs = [ cmake pkg-config