qt{5,6}: update for the new Darwin SDK (#347216)

This commit is contained in:
K900
2024-10-11 10:11:02 +03:00
committed by GitHub
18 changed files with 66 additions and 308 deletions
@@ -250,23 +250,15 @@ let
inherit bison cups harfbuzz libGL;
withGtk3 = !stdenv.hostPlatform.isDarwin; inherit dconf gtk3;
inherit developerBuild decryptSslTraffic;
inherit (darwin.apple_sdk_11_0.frameworks) AGL AppKit ApplicationServices AVFoundation Carbon Cocoa CoreAudio CoreBluetooth
CoreLocation CoreServices DiskArbitration Foundation OpenGL MetalKit IOKit;
libobjc = darwin.apple_sdk_11_0.objc4;
xcbuild = darwin.apple_sdk_11_0.xcodebuild;
};
qt3d = callPackage ../modules/qt3d.nix {};
qtcharts = callPackage ../modules/qtcharts.nix {};
qtconnectivity = callPackage ../modules/qtconnectivity.nix {
inherit (darwin.apple_sdk_11_0.frameworks) IOBluetooth;
};
qtconnectivity = callPackage ../modules/qtconnectivity.nix { };
qtdatavis3d = callPackage ../modules/qtdatavis3d.nix {};
qtdeclarative = callPackage ../modules/qtdeclarative.nix {};
qtdoc = callPackage ../modules/qtdoc.nix {};
qtgamepad = callPackage ../modules/qtgamepad.nix {
inherit (darwin.apple_sdk_11_0.frameworks) GameController;
};
qtgamepad = callPackage ../modules/qtgamepad.nix { };
qtgraphicaleffects = callPackage ../modules/qtgraphicaleffects.nix {};
qtimageformats = callPackage ../modules/qtimageformats.nix {};
qtlocation = callPackage ../modules/qtlocation.nix {};
@@ -278,9 +270,7 @@ let
qtnetworkauth = callPackage ../modules/qtnetworkauth.nix {};
qtpim = callPackage ../modules/qtpim.nix {};
qtpositioning = callPackage ../modules/qtpositioning.nix {};
qtpurchasing = callPackage ../modules/qtpurchasing.nix {
inherit (darwin.apple_sdk_11_0.frameworks) Foundation StoreKit;
};
qtpurchasing = callPackage ../modules/qtpurchasing.nix { };
qtquick1 = null;
qtquick3d = callPackage ../modules/qtquick3d.nix { };
qtquickcontrols = callPackage ../modules/qtquickcontrols.nix {};
@@ -309,28 +299,15 @@ let
# starting with clang 16. Patches are available upstream that can be backported.
# Because the first error is non-trivial to fix and suppressing it risks future breakage,
# clang is pinned to clang 15. That also makes fixing the second set of errors unnecessary.
stdenv =
let stdenv' = if stdenv.cc.isClang then overrideLibcxx llvmPackages_15.stdenv else stdenv;
in if stdenv'.hostPlatform.isDarwin then overrideSDK stdenv' "11.0" else stdenv';
stdenv = if stdenv.cc.isClang then overrideLibcxx llvmPackages_15.stdenv else stdenv;
inherit (srcs.qtwebengine) version;
inherit (darwin) bootstrap_cmds;
python = python3;
inherit (darwin) xnu;
inherit (darwin.apple_sdk_11_0) libpm libunwind;
inherit (darwin.apple_sdk_11_0.libs) sandbox;
inherit (darwin.apple_sdk_11_0.frameworks) ApplicationServices AVFoundation Foundation ForceFeedback GameController AppKit
ImageCaptureCore CoreBluetooth IOBluetooth CoreWLAN Quartz Cocoa LocalAuthentication
MediaPlayer MediaAccessibility SecurityInterface Vision CoreML OpenDirectory Accelerate;
libobjc = darwin.apple_sdk_11_0.objc4;
};
qtwebglplugin = callPackage ../modules/qtwebglplugin.nix {};
qtwebkit = callPackage ../modules/qtwebkit.nix {
inherit (darwin) ICU;
inherit (darwin.apple_sdk_11_0.frameworks) OpenGL;
};
qtwebkit = callPackage ../modules/qtwebkit.nix { };
qtwebsockets = callPackage ../modules/qtwebsockets.nix {};
qtwebview = callPackage ../modules/qtwebview.nix {
inherit (darwin.apple_sdk_11_0.frameworks) CoreFoundation WebKit;
};
qtwebview = callPackage ../modules/qtwebview.nix { };
qtx11extras = callPackage ../modules/qtx11extras.nix {};
qtxmlpatterns = callPackage ../modules/qtxmlpatterns.nix {};
@@ -4,8 +4,7 @@
, coreutils, bison, flex, gdb, gperf, lndir, perl, pkg-config, python3
, which
# darwin support
, libiconv, libobjc, xcbuild, AGL, AppKit, ApplicationServices, AVFoundation, Carbon, Cocoa, CoreAudio, CoreBluetooth
, CoreLocation, CoreServices, DiskArbitration, Foundation, OpenGL, MetalKit, IOKit
, darwinMinVersionHook, apple-sdk, apple-sdk_10_14, apple-sdk_14, xcbuild
, dbus, fontconfig, freetype, glib, harfbuzz, icu, libdrm, libX11, libXcomposite
, libXcursor, libXext, libXi, libXrender, libinput, libjpeg, libpng , libxcb
@@ -38,6 +37,13 @@ let
if isLinux
then "linux-generic-g++"
else throw "Please add a qtPlatformCross entry for ${plat.config}";
# Per https://doc.qt.io/qt-5/macos.html#supported-versions: deployment target = 10.13, build SDK = 14.x.
# Note that Qt propagates the 10.14 SDK instead of the 10.13 SDK to make sure that applications linked to Qt
# support automatic dark mode on x86_64-darwin (see: https://developer.apple.com/documentation/appkit/nsappearancecustomization/choosing_a_specific_appearance_for_your_macos_app).
propagatedAppleSDK = if lib.versionOlder (lib.getVersion apple-sdk) "10.14" then apple-sdk_10_14 else apple-sdk;
propagatedMinVersionHook = darwinMinVersionHook "10.13";
buildAppleSDK = apple-sdk_14;
in
stdenv.mkDerivation (finalAttrs: ({
@@ -56,10 +62,8 @@ stdenv.mkDerivation (finalAttrs: ({
pcre2
] ++ (
if stdenv.hostPlatform.isDarwin then [
# TODO: move to buildInputs, this should not be propagated.
AGL AppKit ApplicationServices AVFoundation Carbon Cocoa CoreAudio CoreBluetooth
CoreLocation CoreServices DiskArbitration Foundation OpenGL
libobjc libiconv MetalKit IOKit
propagatedAppleSDK
propagatedMinVersionHook
] else [
dbus glib udev
@@ -80,6 +84,7 @@ stdenv.mkDerivation (finalAttrs: ({
[ libinput ]
++ lib.optional withGtk3 gtk3
)
++ lib.optional stdenv.isDarwin buildAppleSDK
++ lib.optional developerBuild gdb
++ lib.optional (cups != null) cups
++ lib.optional (mysqlSupport) libmysqlclient
@@ -141,15 +146,13 @@ stdenv.mkDerivation (finalAttrs: ({
patchShebangs ./bin
'' + (
if stdenv.hostPlatform.isDarwin then ''
sed -i \
-e 's|/usr/bin/xcode-select|xcode-select|' \
-e 's|/usr/bin/xcrun|xcrun|' \
-e 's|/usr/bin/xcodebuild|xcodebuild|' \
-e 's|QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`|QMAKE_CXX="clang++"\nQMAKE_CONF_COMPILER="clang++"|' \
./configure
substituteInPlace ./mkspecs/common/mac.conf \
--replace "/System/Library/Frameworks/OpenGL.framework/" "${OpenGL}/Library/Frameworks/OpenGL.framework/" \
--replace "/System/Library/Frameworks/AGL.framework/" "${AGL}/Library/Frameworks/AGL.framework/"
substituteInPlace configure \
--replace-fail '/usr/bin/xcode-select' '${lib.getBin xcbuild}/bin/xcode-select' \
--replace-fail '/usr/bin/xcrun' '${lib.getBin xcbuild}/bin/xcrun' \
--replace-fail '/System/Library/Frameworks/Cocoa.framework' "$SDKROOT/System/Library/Frameworks/Cocoa.framework"
substituteInPlace ./mkspecs/common/mac.conf \
--replace-fail "/System/Library/Frameworks/OpenGL.framework/" "$SDKROOT/System/Library/Frameworks/OpenGL.framework/" \
--replace-fail "/System/Library/Frameworks/AGL.framework/" "$SDKROOT/System/Library/Frameworks/AGL.framework/"
'' else lib.optionalString libGLSupported ''
sed -i mkspecs/common/linux.conf \
-e "/^QMAKE_INCDIR_OPENGL/ s|$|${lib.getDev libGL}/include|" \
@@ -1,4 +1,4 @@
{ qtModule, lib, stdenv, qtbase, qtdeclarative, bluez, IOBluetooth }:
{ qtModule, lib, stdenv, qtbase, qtdeclarative, bluez }:
qtModule {
pname = "qtconnectivity";
@@ -6,8 +6,6 @@ qtModule {
propagatedBuildInputs = [
qtbase
qtdeclarative
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
IOBluetooth
];
outputs = [ "out" "dev" "bin" ];
}
@@ -1,9 +1,8 @@
{ lib, stdenv, qtModule, qtbase, qtdeclarative, GameController, pkg-config }:
{ qtModule, qtbase, qtdeclarative, pkg-config }:
qtModule {
pname = "qtgamepad";
propagatedBuildInputs = [ qtbase qtdeclarative ]
++ lib.optional stdenv.hostPlatform.isDarwin GameController;
propagatedBuildInputs = [ qtbase qtdeclarative ];
nativeBuildInputs = [ pkg-config ];
outputs = [ "out" "dev" "bin" ];
}
@@ -1,14 +1,6 @@
{ stdenv
, lib
, qtModule
, qtbase
, qtdeclarative
, StoreKit
, Foundation
}:
{ qtModule, qtbase, qtdeclarative }:
qtModule {
pname = "qtpurchasing";
propagatedBuildInputs = [ qtbase qtdeclarative ];
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ Foundation StoreKit ];
}
@@ -20,11 +20,7 @@
, systemd
, enableProprietaryCodecs ? true
, gn
, cctools, libobjc, libpm, libunwind, sandbox, xnu
, ApplicationServices, AVFoundation, Foundation, ForceFeedback, GameController, AppKit
, ImageCaptureCore, CoreBluetooth, IOBluetooth, CoreWLAN, Quartz, Cocoa, LocalAuthentication
, MediaPlayer, MediaAccessibility, SecurityInterface, Vision, CoreML, OpenDirectory, Accelerate
, cups, openbsm, xcbuild, writeScriptBin
, apple-sdk_13, cctools, cups, bootstrap_cmds, xcbuild, writeScriptBin
, ffmpeg ? null
, lib, stdenv
, version ? null
@@ -55,7 +51,8 @@ let
in
qtModule ({
# Override the SDK because Qt WebEngine doesnt seem to build using the 14.4 SDK.
(qtModule.override { apple-sdk_for_qt = apple-sdk_13; }) ({
pname = "qtwebengine";
nativeBuildInputs = [
bison flex git gperf ninja pkg-config (python.withPackages(ps: [ ps.html5lib ])) which gn nodejs
@@ -65,7 +62,7 @@ qtModule ({
pkgsBuildBuild.pkg-config
(lib.getDev pkgsBuildTarget.targetPackages.qt5.qtquickcontrols)
pkg-config-wrapped-without-prefix
] ++ lib.optional stdenv.hostPlatform.isDarwin xcbuild;
] ++ lib.optional stdenv.hostPlatform.isDarwin [ bootstrap_cmds xcbuild ];
doCheck = true;
outputs = [ "bin" "dev" "out" ];
@@ -158,22 +155,6 @@ qtModule ({
substituteInPlace src/buildtools/config/mac_osx.pri \
--replace 'QMAKE_CLANG_DIR = "/usr"' 'QMAKE_CLANG_DIR = "${stdenv.cc}"'
# Following is required to prevent a build error:
# ninja: error: '/nix/store/z8z04p0ph48w22rqzx7ql67gy8cyvidi-SDKs/MacOSX10.12.sdk/usr/include/mach/exc.defs', needed by 'gen/third_party/crashpad/crashpad/util/mach/excUser.c', missing and no known rule to make it
substituteInPlace src/3rdparty/chromium/third_party/crashpad/crashpad/util/BUILD.gn \
--replace '$sysroot/usr' "${xnu}"
# Apple has some secret stuff they don't share with OpenBSM
substituteInPlace src/3rdparty/chromium/base/mac/mach_port_rendezvous.cc \
--replace "audit_token_to_pid(request.trailer.msgh_audit)" "request.trailer.msgh_audit.val[5]"
substituteInPlace src/3rdparty/chromium/third_party/crashpad/crashpad/util/mach/mach_message.cc \
--replace "audit_token_to_pid(audit_trailer->msgh_audit)" "audit_trailer->msgh_audit.val[5]"
# ld: warning: directory not found for option '-L/nix/store/...-xcodebuild-0.1.2-pre/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk/usr/lib'
# ld: fatal warning(s) induced error (-fatal_warnings)
substituteInPlace src/3rdparty/chromium/build/config/compiler/BUILD.gn \
--replace "-Wl,-fatal_warnings" ""
# Use system ffmpeg
echo "gn_args += use_system_ffmpeg=true" >> src/core/config/mac_osx.pri
echo "LIBS += -lavformat -lavcodec -lavutil" >> src/core/core_common.pri
@@ -257,40 +238,10 @@ qtModule ({
# FIXME These dependencies shouldn't be needed but can't find a way
# around it. Chromium pulls this in while bootstrapping GN.
++ lib.optionals stdenv.hostPlatform.isDarwin [
libobjc
cctools
# frameworks
ApplicationServices
AVFoundation
Foundation
ForceFeedback
GameController
AppKit
ImageCaptureCore
CoreBluetooth
IOBluetooth
CoreWLAN
Quartz
Cocoa
LocalAuthentication
MediaPlayer
MediaAccessibility
SecurityInterface
Vision
CoreML
OpenDirectory
Accelerate
openbsm
libunwind
];
++ lib.optionals stdenv.hostPlatform.isDarwin [ cctools.libtool ];
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
cups
libpm
sandbox
# `sw_vers` is used by `src/3rdparty/chromium/build/config/mac/sdk_info.py`
# to get some information about the host platform.
@@ -3,7 +3,6 @@
, fontconfig, libwebp, libxml2, libxslt
, sqlite, systemd, glib, gst_all_1, cmake
, bison, flex, gdb, gperf, perl, pkg-config, python3, ruby
, ICU, OpenGL
}:
let
@@ -24,8 +23,7 @@ qtModule {
pname = "qtwebkit";
propagatedBuildInputs = [ qtbase qtdeclarative qtlocation qtsensors qtwebchannel ]
++ lib.optional stdenv.hostPlatform.isDarwin qtmultimedia;
buildInputs = [ fontconfig libwebp libxml2 libxslt sqlite glib gst_all_1.gstreamer gst_all_1.gst-plugins-base hyphen ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ ICU OpenGL ];
buildInputs = [ fontconfig libwebp libxml2 libxslt sqlite glib gst_all_1.gstreamer gst_all_1.gst-plugins-base hyphen ];
nativeBuildInputs = [ bison flex gdb gperf perl pkg-config python3 ruby cmake ];
cmakeFlags = [ "-DPORT=Qt" ]
@@ -1,12 +1,8 @@
{ lib, stdenv, qtModule, qtdeclarative, qtwebengine, CoreFoundation, WebKit }:
{ lib, stdenv, qtModule, qtdeclarative, qtwebengine }:
qtModule {
pname = "qtwebview";
propagatedBuildInputs = [ qtdeclarative qtwebengine ];
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
CoreFoundation
WebKit
];
outputs = [ "out" "dev" "bin" ];
NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-framework CoreFoundation -framework WebKit";
}
@@ -2,6 +2,8 @@
, stdenv
, buildPackages
, mkDerivation
, apple-sdk_14
, apple-sdk_for_qt ? apple-sdk_14
, perl
, qmake
, patches
@@ -23,6 +25,11 @@ mkDerivation (args // {
inherit pname version src;
patches = (args.patches or []) ++ (patches.${pname} or []);
buildInputs =
args.buildInputs or [ ]
# Per https://doc.qt.io/qt-5/macos.html#supported-versions
++ lib.optionals stdenv.isDarwin [ apple-sdk_for_qt ];
nativeBuildInputs =
(args.nativeBuildInputs or []) ++ [
perl qmake
+5 -44
View File
@@ -26,11 +26,7 @@ let
let
callPackage = self.newScope ({
inherit (self) qtModule;
inherit srcs python3;
stdenv =
if stdenv.hostPlatform.isDarwin
then overrideSDK stdenv { darwinMinVersion = "11.0"; darwinSdkVersion = "12.3"; }
else stdenv;
inherit srcs python3 stdenv;
});
in
{
@@ -42,8 +38,6 @@ let
qtbase = callPackage ./modules/qtbase.nix {
withGtk3 = !stdenv.hostPlatform.isMinGW;
inherit (srcs.qtbase) src version;
inherit (darwin.apple_sdk_12_3.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
@@ -55,14 +49,6 @@ let
./patches/0008-qtbase-find-qmlimportscanner-in-macdeployqt-via-envi.patch
./patches/0009-qtbase-check-in-the-QML-folder-of-this-library-does-.patch
./patches/0010-qtbase-derive-plugin-load-path-from-PATH.patch
# Revert "macOS: Silence warning about supporting secure state restoration"
# fix build with macOS sdk < 12.0
(fetchpatch2 {
url = "https://github.com/qt/qtbase/commit/fc1549c01445bb9c99d3ba6de8fa9da230614e72.patch";
revert = true;
hash = "sha256-cjB2sC4cvZn0UEc+sm6ZpjyC78ssqB1Kb5nlZQ15M4A=";
})
# Backport patch for https://bugs.kde.org/show_bug.cgi?id=493116
# FIXME: remove for 6.8.1
(fetchpatch2 {
@@ -119,9 +105,7 @@ let
qt3d = callPackage ./modules/qt3d.nix { };
qt5compat = callPackage ./modules/qt5compat.nix { };
qtcharts = callPackage ./modules/qtcharts.nix { };
qtconnectivity = callPackage ./modules/qtconnectivity.nix {
inherit (darwin.apple_sdk_12_3.frameworks) IOBluetooth PCSC;
};
qtconnectivity = callPackage ./modules/qtconnectivity.nix { };
qtdatavis3d = callPackage ./modules/qtdatavis3d.nix { };
qtdeclarative = callPackage ./modules/qtdeclarative.nix { };
qtdoc = callPackage ./modules/qtdoc.nix { };
@@ -134,7 +118,6 @@ let
qtlottie = callPackage ./modules/qtlottie.nix { };
qtmultimedia = callPackage ./modules/qtmultimedia.nix {
inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-libav gst-vaapi;
inherit (darwin.apple_sdk_12_3.frameworks) VideoToolbox;
};
qtmqtt = callPackage ./modules/qtmqtt.nix { };
qtnetworkauth = callPackage ./modules/qtnetworkauth.nix { };
@@ -143,9 +126,7 @@ let
qtserialbus = callPackage ./modules/qtserialbus.nix { };
qtserialport = callPackage ./modules/qtserialport.nix { };
qtshadertools = callPackage ./modules/qtshadertools.nix { };
qtspeech = callPackage ./modules/qtspeech.nix {
inherit (darwin.apple_sdk_12_3.frameworks) Cocoa;
};
qtspeech = callPackage ./modules/qtspeech.nix { };
qtquick3d = callPackage ./modules/qtquick3d.nix { };
qtquick3dphysics = callPackage ./modules/qtquick3dphysics.nix { };
qtquickeffectmaker = callPackage ./modules/qtquickeffectmaker.nix { };
@@ -159,30 +140,10 @@ let
qtwayland = callPackage ./modules/qtwayland.nix { };
qtwebchannel = callPackage ./modules/qtwebchannel.nix { };
qtwebengine = callPackage ./modules/qtwebengine.nix {
inherit (darwin) autoSignDarwinBinariesHook bootstrap_cmds xnu;
inherit (darwin.apple_sdk_12_3) libpm libunwind;
inherit (darwin.apple_sdk_12_3.libs) sandbox;
inherit (darwin.apple_sdk_12_3.frameworks)
AGL AVFoundation Accelerate Cocoa CoreLocation CoreML ForceFeedback
GameController ImageCaptureCore LocalAuthentication
MediaAccessibility MediaPlayer MetalKit Network OpenDirectory Quartz
ReplayKit SecurityInterface Vision;
qtModule = callPackage
({ qtModule }: qtModule.override {
stdenv =
if stdenv.hostPlatform.isDarwin
then overrideSDK stdenv { darwinMinVersion = "11.0"; darwinSdkVersion = "11.0"; }
else stdenv;
})
{ };
xcbuild = buildPackages.xcbuild.override {
productBuildVer = "20A2408";
};
inherit (darwin) autoSignDarwinBinariesHook bootstrap_cmds;
};
qtwebsockets = callPackage ./modules/qtwebsockets.nix { };
qtwebview = callPackage ./modules/qtwebview.nix {
inherit (darwin.apple_sdk_12_3.frameworks) WebKit;
};
qtwebview = callPackage ./modules/qtwebview.nix { };
wrapQtAppsHook = callPackage
({ makeBinaryWrapper }: makeSetupHook
@@ -67,15 +67,10 @@
, unixODBCDrivers
# darwin
, moveBuildTree
, apple-sdk_11
, apple-sdk_14
, darwinMinVersionHook
, xcbuild
, AGL
, AVFoundation
, AppKit
, Contacts
, CoreBluetooth
, EventKit
, GSS
, MetalKit
# mingw
, pkgsBuildBuild
# optional dependencies
@@ -162,14 +157,8 @@ stdenv.mkDerivation rec {
xorg.xcbutilcursor
libepoxy
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
AGL
AVFoundation
AppKit
Contacts
CoreBluetooth
EventKit
GSS
MetalKit
apple-sdk_14
(darwinMinVersionHook "11.0")
] ++ lib.optionals libGLSupported [
libGL
] ++ lib.optionals stdenv.hostPlatform.isMinGW [
@@ -181,9 +170,9 @@ stdenv.mkDerivation rec {
at-spi2-core
] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform libinput) [
libinput
] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
AppKit
CoreBluetooth
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
apple-sdk_11
(darwinMinVersionHook "11.0")
]
++ lib.optional withGtk3 gtk3
++ lib.optional (libmysqlclient != null && !stdenv.hostPlatform.isMinGW) libmysqlclient
@@ -5,8 +5,6 @@
, qtdeclarative
, bluez
, pkg-config
, IOBluetooth
, PCSC
}:
qtModule {
@@ -16,8 +14,5 @@ qtModule {
propagatedBuildInputs = [
qtbase
qtdeclarative
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
IOBluetooth
PCSC
];
}
@@ -21,7 +21,6 @@
, elfutils
, libunwind
, orc
, VideoToolbox
, pkgsBuildBuild
}:
@@ -34,13 +33,10 @@ qtModule {
++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [ elfutils ];
propagatedBuildInputs = [ qtbase qtdeclarative qtsvg qtshadertools ]
++ lib.optionals (!stdenv.hostPlatform.isMinGW) [ qtquick3d ]
++ lib.optionals stdenv.hostPlatform.isLinux [ gstreamer gst-plugins-base gst-plugins-good gst-libav gst-vaapi ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ VideoToolbox ];
++ lib.optionals stdenv.hostPlatform.isLinux [ gstreamer gst-plugins-base gst-plugins-good gst-libav gst-vaapi ];
patches = [
../patches/fix-qtgui-include-incorrect-case.patch
# Remove new constants since macOS 12+, since we build Qt with the macOS 11 SDK
../patches/qtmultimedia-darwin-revert-replace-deprecated-constant.patch
] ++ lib.optionals stdenv.hostPlatform.isMinGW [
../patches/qtmultimedia-windows-no-uppercase-libs.patch
../patches/qtmultimedia-windows-resolve-function-name.patch
@@ -7,13 +7,11 @@
, flite
, alsa-lib
, speechd-minimal
, Cocoa
}:
qtModule {
pname = "qtspeech";
nativeBuildInputs = [ pkg-config ];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ flite alsa-lib speechd-minimal ];
propagatedBuildInputs = [ qtbase qtmultimedia ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ Cocoa ];
propagatedBuildInputs = [ qtbase qtmultimedia ];
}
@@ -21,6 +21,7 @@
, libXtst
, libxshmfence
, libXi
, cups
, fontconfig
, freetype
, harfbuzz
@@ -64,31 +65,6 @@
, bootstrap_cmds
, cctools
, xcbuild
, AGL
, AVFoundation
, Accelerate
, Cocoa
, CoreLocation
, CoreML
, ForceFeedback
, GameController
, ImageCaptureCore
, LocalAuthentication
, MediaAccessibility
, MediaPlayer
, MetalKit
, Network
, OpenDirectory
, Quartz
, ReplayKit
, SecurityInterface
, Vision
, openbsm
, libunwind
, cups
, libpm
, sandbox
, xnu
}:
qtModule {
@@ -167,8 +143,6 @@ qtModule {
--replace "AppleClang" "Clang"
substituteInPlace cmake/Functions.cmake \
--replace "/usr/bin/xcrun" "${xcbuild}/bin/xcrun"
substituteInPlace src/3rdparty/chromium/third_party/crashpad/crashpad/util/BUILD.gn \
--replace "\$sysroot/usr" "${xnu}"
'';
cmakeFlags = [
@@ -197,7 +171,7 @@ qtModule {
] ++ lib.optionals enableProprietaryCodecs [
"-DQT_FEATURE_webengine_proprietary_codecs=ON"
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
"-DCMAKE_OSX_DEPLOYMENT_TARGET=${stdenv.hostPlatform.darwinSdkVersion}"
"-DCMAKE_OSX_DEPLOYMENT_TARGET=11.0" # Per Qt 6s deployment target (why doesnt the hook work?)
];
propagatedBuildInputs = [
@@ -272,36 +246,10 @@ qtModule {
libkrb5
mesa
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
AGL
AVFoundation
Accelerate
Cocoa
CoreLocation
CoreML
ForceFeedback
GameController
ImageCaptureCore
LocalAuthentication
MediaAccessibility
MediaPlayer
MetalKit
Network
OpenDirectory
Quartz
ReplayKit
SecurityInterface
Vision
openbsm
libunwind
];
buildInputs = [
cups
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
libpm
sandbox
];
requiredSystemFeatures = [ "big-parallel" ];
@@ -316,7 +264,5 @@ qtModule {
# This build takes a long time; particularly on slow architectures
# 1 hour on 32x3.6GHz -> maybe 12 hours on 4x2.4GHz
timeout = 24 * 3600;
# Not compatible with macOS 11 without massive patching
broken = stdenv.hostPlatform.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "12";
};
}
@@ -3,12 +3,10 @@
, qtModule
, qtdeclarative
, qtwebengine
, WebKit
}:
qtModule {
pname = "qtwebview";
propagatedBuildInputs = [ qtdeclarative ]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ qtwebengine ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ WebKit ];
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ qtwebengine ];
}
@@ -1,50 +0,0 @@
diff --git a/src/multimedia/darwin/qdarwinmediadevices.mm b/src/multimedia/darwin/qdarwinmediadevices.mm
index b0a108935..881066928 100644
--- a/src/multimedia/darwin/qdarwinmediadevices.mm
+++ b/src/multimedia/darwin/qdarwinmediadevices.mm
@@ -42,7 +42,7 @@ static AudioDeviceID defaultAudioDevice(QAudioDevice::Mode mode)
const AudioObjectPropertyAddress propertyAddress = {
selector,
kAudioObjectPropertyScopeGlobal,
- kAudioObjectPropertyElementMain,
+ kAudioObjectPropertyElementMaster,
};
if (auto audioDevice = getAudioObject<AudioDeviceID>(kAudioObjectSystemObject, propertyAddress,
@@ -77,7 +77,7 @@ static QList<QAudioDevice> availableAudioDevices(QAudioDevice::Mode mode)
const AudioObjectPropertyAddress audioDevicesPropertyAddress = {
kAudioHardwarePropertyDevices, kAudioObjectPropertyScopeGlobal,
- kAudioObjectPropertyElementMain
+ kAudioObjectPropertyElementMaster
};
if (auto audioDevices = getAudioData<AudioDeviceID>(
@@ -130,11 +130,11 @@ static OSStatus audioDeviceChangeListener(AudioObjectID id, UInt32,
static constexpr AudioObjectPropertyAddress listenerAddresses[] = {
{ kAudioHardwarePropertyDefaultInputDevice, kAudioObjectPropertyScopeGlobal,
- kAudioObjectPropertyElementMain },
+ kAudioObjectPropertyElementMaster },
{ kAudioHardwarePropertyDefaultOutputDevice, kAudioObjectPropertyScopeGlobal,
- kAudioObjectPropertyElementMain },
+ kAudioObjectPropertyElementMaster },
{ kAudioHardwarePropertyDevices, kAudioObjectPropertyScopeGlobal,
- kAudioObjectPropertyElementMain }
+ kAudioObjectPropertyElementMaster }
};
static void setAudioListeners(QDarwinMediaDevices &instance)
diff --git a/src/multimedia/darwin/qmacosaudiodatautils_p.h b/src/multimedia/darwin/qmacosaudiodatautils_p.h
index 8cc2f8440..5cd6fced2 100644
--- a/src/multimedia/darwin/qmacosaudiodatautils_p.h
+++ b/src/multimedia/darwin/qmacosaudiodatautils_p.h
@@ -44,7 +44,7 @@ void printUnableToReadWarning(const char *logName, AudioObjectID objectID, const
inline static AudioObjectPropertyAddress
makePropertyAddress(AudioObjectPropertySelector selector, QAudioDevice::Mode mode,
- AudioObjectPropertyElement element = kAudioObjectPropertyElementMain)
+ AudioObjectPropertyElement element = kAudioObjectPropertyElementMaster)
{
return { selector,
mode == QAudioDevice::Input ? kAudioDevicePropertyScopeInput
+5 -1
View File
@@ -1,5 +1,6 @@
{ lib
, stdenv
, apple-sdk_14
, cmake
, ninja
, perl
@@ -19,7 +20,10 @@ stdenv.mkDerivation (args // {
inherit pname version src;
patches = args.patches or patches.${pname} or [ ];
buildInputs = args.buildInputs or [ ];
buildInputs =
args.buildInputs or [ ]
# Per https://doc.qt.io/qt-6/macos.html#supported-versions
++ lib.optionals stdenv.isDarwin [ apple-sdk_14 ];
nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ cmake ninja perl ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ moveBuildTree ];
propagatedBuildInputs =