diff --git a/pkgs/build-support/setup-hooks/move-build-tree.sh b/pkgs/build-support/setup-hooks/move-build-tree.sh new file mode 100644 index 00000000000..2718070f393 --- /dev/null +++ b/pkgs/build-support/setup-hooks/move-build-tree.sh @@ -0,0 +1,12 @@ +prePhases+=" moveBuildDir" + +moveBuildDir() { + mkdir -p $out/.build + cd $out/.build +} + +postPhases+=" removeBuildDir" + +removeBuildDir() { + rm -rf $out/.build +} diff --git a/pkgs/development/libraries/qt-6/default.nix b/pkgs/development/libraries/qt-6/default.nix index 074da9adb40..68481b65a14 100644 --- a/pkgs/development/libraries/qt-6/default.nix +++ b/pkgs/development/libraries/qt-6/default.nix @@ -38,7 +38,8 @@ let 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 @@ -46,12 +47,6 @@ let ./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 { }; diff --git a/pkgs/development/libraries/qt-6/modules/qtbase.nix b/pkgs/development/libraries/qt-6/modules/qtbase.nix index f82d2193a38..dfd51f26587 100644 --- a/pkgs/development/libraries/qt-6/modules/qtbase.nix +++ b/pkgs/development/libraries/qt-6/modules/qtbase.nix @@ -71,10 +71,14 @@ , unixODBC , unixODBCDrivers # darwin +, moveBuildTree , xcbuild , AGL , AVFoundation , AppKit +, Contacts +, CoreBluetooth +, EventKit , GSS , MetalKit # optional dependencies @@ -166,6 +170,9 @@ stdenv.mkDerivation rec { AGL AVFoundation AppKit + Contacts + CoreBluetooth + EventKit GSS MetalKit ] ++ lib.optional libGLSupported libGL; @@ -184,7 +191,8 @@ stdenv.mkDerivation rec { ++ 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 ]; diff --git a/pkgs/development/libraries/qt-6/qtModule.nix b/pkgs/development/libraries/qt-6/qtModule.nix index 2f7de750237..98606d24a96 100644 --- a/pkgs/development/libraries/qt-6/qtModule.nix +++ b/pkgs/development/libraries/qt-6/qtModule.nix @@ -3,6 +3,7 @@ , cmake , ninja , perl +, moveBuildTree , srcs , patches ? [ ] }: @@ -19,7 +20,8 @@ stdenv.mkDerivation (args // { 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; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1373cef64c7..05e237d283b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1173,6 +1173,10 @@ with pkgs; 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;