From dc2e4ebdec4da496cff480eac05edf63ef00a853 Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 18 Sep 2025 23:13:58 +0300 Subject: [PATCH 1/3] qt6.qttools: pin LLVM 20 Qt 6.9 doesn't support LLVM 21. --- .../development/libraries/qt-6/modules/qttools/default.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/qt-6/modules/qttools/default.nix b/pkgs/development/libraries/qt-6/modules/qttools/default.nix index fd68b6fd087e..48d36780fea6 100644 --- a/pkgs/development/libraries/qt-6/modules/qttools/default.nix +++ b/pkgs/development/libraries/qt-6/modules/qttools/default.nix @@ -6,16 +6,17 @@ qtbase, qtdeclarative, cups, - llvmPackages, + llvmPackages_20, # clang-based c++ parser for qdoc and lupdate withClang ? false, }: qtModule { pname = "qttools"; + # FIXME: update to LLVM 21 with Qt 6.10 buildInputs = lib.optionals withClang [ - llvmPackages.libclang - llvmPackages.llvm + llvmPackages_20.libclang + llvmPackages_20.llvm ]; propagatedBuildInputs = [ qtbase From d086eee1fc083fbf04b5dc236b5808e4a42666f0 Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 18 Sep 2025 23:14:37 +0300 Subject: [PATCH 2/3] qt6.qttools: clean up --- .../qt-6/modules/qttools/default.nix | 45 ++++++++++++------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/pkgs/development/libraries/qt-6/modules/qttools/default.nix b/pkgs/development/libraries/qt-6/modules/qttools/default.nix index 48d36780fea6..4fb69db29359 100644 --- a/pkgs/development/libraries/qt-6/modules/qttools/default.nix +++ b/pkgs/development/libraries/qt-6/modules/qttools/default.nix @@ -13,26 +13,11 @@ qtModule { pname = "qttools"; - # FIXME: update to LLVM 21 with Qt 6.10 - buildInputs = lib.optionals withClang [ - llvmPackages_20.libclang - llvmPackages_20.llvm - ]; - propagatedBuildInputs = [ - qtbase - qtdeclarative - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ cups ]; - cmakeFlags = lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ - "-DQt6LinguistTools_DIR=${pkgsBuildBuild.qt6.qttools}/lib/cmake/Qt6LinguistTools" - "-DQt6ToolsTools_DIR=${pkgsBuildBuild.qt6.qttools}/lib/cmake/Qt6ToolsTools" - ]; + patches = [ ./paths.patch ]; - env.NIX_CFLAGS_COMPILE = toString [ - "-DNIX_OUTPUT_OUT=\"${placeholder "out"}\"" - ]; + postPatch = '' substituteInPlace \ src/qdoc/catch/CMakeLists.txt \ @@ -40,6 +25,32 @@ qtModule { src/qdoc/catch_conversions/CMakeLists.txt \ --replace ''\'''${CMAKE_INSTALL_INCLUDEDIR}' "$out/include" ''; + + env.NIX_CFLAGS_COMPILE = toString [ + "-DNIX_OUTPUT_OUT=\"${placeholder "out"}\"" + ]; + + # FIXME: update to LLVM 21 with Qt 6.10 + buildInputs = lib.optionals withClang [ + llvmPackages_20.libclang + llvmPackages_20.llvm + ]; + + propagatedBuildInputs = [ + qtbase + qtdeclarative + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ cups ]; + + cmakeFlags = + lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ + "-DQt6LinguistTools_DIR=${pkgsBuildBuild.qt6.qttools}/lib/cmake/Qt6LinguistTools" + "-DQt6ToolsTools_DIR=${pkgsBuildBuild.qt6.qttools}/lib/cmake/Qt6ToolsTools" + ] + ++ lib.optionals withClang [ + "-DFEATURE_clang=ON" + ]; + postInstall = '' mkdir -p "$dev" ln -s "$out/bin" "$dev/bin" From bcc0e083718215beecebb50df8ab8c36040b5b46 Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 18 Sep 2025 22:25:58 +0300 Subject: [PATCH 3/3] qt6.qtdoc: clean up --- pkgs/development/libraries/qt-6/modules/qtdoc.nix | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/pkgs/development/libraries/qt-6/modules/qtdoc.nix b/pkgs/development/libraries/qt-6/modules/qtdoc.nix index fa091d4c6da6..5e35b4b5d5fb 100644 --- a/pkgs/development/libraries/qt-6/modules/qtdoc.nix +++ b/pkgs/development/libraries/qt-6/modules/qtdoc.nix @@ -16,12 +16,7 @@ qtModule { ''; nativeBuildInputs = [ (qttools.override { withClang = true; }) ]; propagatedBuildInputs = [ qtdeclarative ]; - cmakeFlags = [ - "-DCMAKE_MESSAGE_LOG_LEVEL=STATUS" - ]; - dontUseNinjaBuild = true; - buildFlags = [ "docs" ]; - dontUseNinjaInstall = true; - installFlags = [ "install_docs" ]; - outputs = [ "out" ]; + + ninjaFlags = [ "docs" ]; + installTargets = [ "install_docs" ]; }