Files
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

224 lines
7.0 KiB
Nix

{
newScope,
lib,
stdenv,
generateSplicesForMkScope,
makeScopeWithSplicing',
fetchurl,
fetchpatch2,
makeSetupHook,
makeWrapper,
runCommand,
gst_all_1,
libglvnd,
darwin,
apple-sdk_15,
darwinMinVersionHook,
buildPackages,
python3,
config,
}:
let
srcs = import ./srcs.nix {
inherit fetchurl;
mirror = "mirror://qt";
};
addPackages =
self:
let
callPackage = self.newScope {
inherit (self) qtModule;
inherit srcs python3 stdenv;
};
# Per <https://doc.qt.io/qt-6/macos.html#supported-versions>.
# This should reflect the highest “Build Environment” and the
# lowest “Target Platform”.
darwinVersionInputs = [
apple-sdk_15
(darwinMinVersionHook "12.0")
];
onlyPluginsAndQml =
drv:
let
drv' = drv.__spliced.targetTarget or drv;
inherit (self.qtbase) qtPluginPrefix qtQmlPrefix;
in
(runCommand "${drv'.name}-only-plugins-qml" { } ''
mkdir -p $(dirname "$out/${qtPluginPrefix}")
test -d "${drv'}/${qtPluginPrefix}" && ln -s "${drv'}/${qtPluginPrefix}" "$out/${qtPluginPrefix}" || true
test -d "${drv'}/${qtQmlPrefix}" && ln -s "${drv'}/${qtQmlPrefix}" "$out/${qtQmlPrefix}" || true
'');
in
{
inherit callPackage srcs darwinVersionInputs;
qtModule = callPackage ./qtModule.nix {
inherit darwinVersionInputs;
};
qtbase = callPackage ./modules/qtbase {
withGtk3 = !stdenv.hostPlatform.isMinGW;
inherit darwinVersionInputs;
inherit (srcs.qtbase) src version;
};
env = callPackage ./qt-env.nix { };
full = callPackage (
{ env, qtbase }:
env "qt-full-${qtbase.version}"
# `with self` is ok to use here because having these spliced is unnecessary
(
with self;
[
qt3d
qt5compat
qtcharts
qtconnectivity
qtdatavis3d
qtdeclarative
qtdoc
qtgraphs
qtgrpc
qthttpserver
qtimageformats
qtlanguageserver
qtlocation
qtlottie
qtmultimedia
qtmqtt
qtnetworkauth
qtpositioning
qtsensors
qtserialbus
qtserialport
qtshadertools
qtspeech
qtquick3d
qtquick3dphysics
qtquickeffectmaker
qtquicktimeline
qtremoteobjects
qtsvg
qtscxml
qttools
qttranslations
qtvirtualkeyboard
qtwebchannel
qtwebengine
qtwebsockets
qtwebview
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
qtwayland
libglvnd
]
)
) { };
qt3d = callPackage ./modules/qt3d.nix { };
qt5compat = callPackage ./modules/qt5compat.nix { };
qtcharts = callPackage ./modules/qtcharts.nix { };
qtconnectivity = callPackage ./modules/qtconnectivity.nix { };
qtdatavis3d = callPackage ./modules/qtdatavis3d.nix { };
qtdeclarative = callPackage ./modules/qtdeclarative { };
qtdoc = callPackage ./modules/qtdoc.nix { };
qtgraphs = callPackage ./modules/qtgraphs.nix { };
qtgrpc = callPackage ./modules/qtgrpc.nix { };
qthttpserver = callPackage ./modules/qthttpserver.nix { };
qtimageformats = callPackage ./modules/qtimageformats.nix { };
qtlanguageserver = callPackage ./modules/qtlanguageserver.nix { };
qtlocation = callPackage ./modules/qtlocation.nix { };
qtlottie = callPackage ./modules/qtlottie.nix { };
qtmultimedia = callPackage ./modules/qtmultimedia {
inherit (gst_all_1)
gstreamer
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-libav
gst-vaapi
;
};
qtmqtt = callPackage ./modules/qtmqtt.nix { };
qtnetworkauth = callPackage ./modules/qtnetworkauth.nix { };
qtpositioning = callPackage ./modules/qtpositioning.nix { };
qtsensors = callPackage ./modules/qtsensors.nix { };
qtserialbus = callPackage ./modules/qtserialbus.nix { };
qtserialport = callPackage ./modules/qtserialport.nix { };
qtshadertools = callPackage ./modules/qtshadertools.nix { };
qtspeech = callPackage ./modules/qtspeech.nix { };
qtquick3d = callPackage ./modules/qtquick3d.nix { };
qtquick3dphysics = callPackage ./modules/qtquick3dphysics.nix { };
qtquickeffectmaker = callPackage ./modules/qtquickeffectmaker.nix { };
qtquicktimeline = callPackage ./modules/qtquicktimeline.nix { };
qtremoteobjects = callPackage ./modules/qtremoteobjects.nix { };
qtsvg = callPackage ./modules/qtsvg.nix { };
qtscxml = callPackage ./modules/qtscxml.nix { };
qttools = callPackage ./modules/qttools { };
qttranslations = callPackage ./modules/qttranslations.nix {
qttools = self.qttools.override {
qtbase = self.qtbase.override { qttranslations = null; };
qtdeclarative = null;
};
};
qtvirtualkeyboard = callPackage ./modules/qtvirtualkeyboard.nix { };
qtwayland = callPackage ./modules/qtwayland.nix { };
qtwebchannel = callPackage ./modules/qtwebchannel.nix { };
qtwebengine = callPackage ./modules/qtwebengine {
inherit (darwin) bootstrap_cmds;
};
qtwebsockets = callPackage ./modules/qtwebsockets.nix { };
qtwebview = callPackage ./modules/qtwebview.nix { };
wrapQtAppsHook = callPackage (
{
makeBinaryWrapper,
qtwayland,
qtbase,
}:
makeSetupHook {
name = "wrap-qt6-apps-hook";
propagatedBuildInputs = [ makeBinaryWrapper ];
depsTargetTargetPropagated = [
(onlyPluginsAndQml qtbase)
]
++ lib.optionals (lib.meta.availableOn stdenv.targetPlatform qtwayland) [
(onlyPluginsAndQml qtwayland)
];
} ./hooks/wrap-qt-apps-hook.sh
) { };
wrapQtAppsNoGuiHook = callPackage (
{ makeBinaryWrapper, qtbase }:
makeSetupHook {
name = "wrap-qt6-apps-no-gui-hook";
propagatedBuildInputs = [ makeBinaryWrapper ];
depsTargetTargetPropagated = [
(onlyPluginsAndQml qtbase)
];
} ./hooks/wrap-qt-apps-hook.sh
) { };
qmake = callPackage (
{ qtbase }:
makeSetupHook {
name = "qmake6-hook";
propagatedBuildInputs = [ qtbase.dev ];
substitutions = {
fix_qmake_libtool = ./hooks/fix-qmake-libtool.sh;
};
} ./hooks/qmake-hook.sh
) { };
};
baseScope = makeScopeWithSplicing' {
otherSplices = generateSplicesForMkScope "qt6";
f = addPackages;
};
in
baseScope