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

qt6: avoid building under /tmp on darwin
This commit is contained in:
Weijia Wang 2023-04-14 21:56:14 +03:00 committed by GitHub
commit ffde63de3b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 30 additions and 9 deletions

View File

@ -0,0 +1,12 @@
prePhases+=" moveBuildDir"
moveBuildDir() {
mkdir -p $out/.build
cd $out/.build
}
postPhases+=" removeBuildDir"
removeBuildDir() {
rm -rf $out/.build
}

View File

@ -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 { };

View File

@ -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 ];

View File

@ -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;

View File

@ -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;