Merge pull request #226033 from wegank/qt6-qtbase-path

qt6: avoid building under /tmp on darwin

Changed files
+30 -9
pkgs
build-support
setup-hooks
development
libraries
top-level
+12
pkgs/build-support/setup-hooks/move-build-tree.sh
···
+
prePhases+=" moveBuildDir"
+
+
moveBuildDir() {
+
mkdir -p $out/.build
+
cd $out/.build
+
}
+
+
postPhases+=" removeBuildDir"
+
+
removeBuildDir() {
+
rm -rf $out/.build
+
}
+2 -7
pkgs/development/libraries/qt-6/default.nix
···
withGtk3 = true;
inherit (srcs.qtbase) src version;
inherit developerBuild;
-
inherit (darwin.apple_sdk_11_0.frameworks) AGL AVFoundation AppKit GSS MetalKit;
+
inherit (darwin.apple_sdk_11_0.frameworks)
+
AGL AVFoundation AppKit Contacts CoreBluetooth EventKit GSS MetalKit;
patches = [
./patches/0001-qtbase-qmake-always-use-libname-instead-of-absolute-.patch
./patches/0002-qtbase-qmake-fix-mkspecs-for-darwin.patch
···
./patches/0004-qtbase-fix-locating-tzdir-on-NixOS.patch
./patches/0005-qtbase-deal-with-a-font-face-at-index-0-as-Regular-f.patch
./patches/0006-qtbase-qt-cmake-always-use-cmake-from-path.patch
-
# Remove symlink check causing build to bail out and fail.
-
# https://gitlab.kitware.com/cmake/cmake/-/issues/23251
-
(fetchpatch {
-
url = "https://github.com/Homebrew/formula-patches/raw/c363f0edf9e90598d54bc3f4f1bacf95abbda282/qt/qt_internal_check_if_path_has_symlinks.patch";
-
sha256 = "sha256-Gv2L8ymZSbJxcmUijKlT2NnkIB3bVH9D7YSsDX2noTU=";
-
})
];
};
env = callPackage ./qt-env.nix { };
+9 -1
pkgs/development/libraries/qt-6/modules/qtbase.nix
···
, unixODBC
, unixODBCDrivers
# darwin
+
, moveBuildTree
, xcbuild
, AGL
, AVFoundation
, AppKit
+
, Contacts
+
, CoreBluetooth
+
, EventKit
, GSS
, MetalKit
# optional dependencies
···
AGL
AVFoundation
AppKit
+
Contacts
+
CoreBluetooth
+
EventKit
GSS
MetalKit
] ++ lib.optional libGLSupported libGL;
···
++ lib.optional (libmysqlclient != null) libmysqlclient
++ lib.optional (postgresql != null) postgresql;
-
nativeBuildInputs = [ bison flex gperf lndir perl pkg-config which cmake xmlstarlet ninja ];
+
nativeBuildInputs = [ bison flex gperf lndir perl pkg-config which cmake xmlstarlet ninja ]
+
++ lib.optionals stdenv.isDarwin [ moveBuildTree ];
propagatedNativeBuildInputs = [ lndir ];
+3 -1
pkgs/development/libraries/qt-6/qtModule.nix
···
, cmake
, ninja
, perl
+
, moveBuildTree
, srcs
, patches ? [ ]
}:
···
patches = args.patches or patches.${pname} or [ ];
buildInputs = args.buildInputs or [ ];
-
nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ cmake ninja perl ];
+
nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ cmake ninja perl ]
+
++ lib.optionals stdenv.isDarwin [ moveBuildTree ];
propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or [ ]);
moveToDev = false;
+4
pkgs/top-level/all-packages.nix
···
name = "keep-build-tree-hook";
} ../build-support/setup-hooks/keep-build-tree.sh;
+
moveBuildTree = makeSetupHook {
+
name = "move-build-tree-hook";
+
} ../build-support/setup-hooks/move-build-tree.sh;
+
enableGCOVInstrumentation = makeSetupHook {
name = "enable-gcov-instrumentation-hook";
} ../build-support/setup-hooks/enable-coverage-instrumentation.sh;