1{
2 qtModule,
3 lib,
4 stdenv,
5 qtbase,
6 qtdeclarative,
7 qtquick3d,
8 qtshadertools,
9 qtsvg,
10 pkg-config,
11 alsa-lib,
12 gstreamer,
13 gst-plugins-bad,
14 gst-plugins-base,
15 gst-plugins-good,
16 gst-libav,
17 gst-vaapi,
18 ffmpeg,
19 libva,
20 libpulseaudio,
21 pipewire,
22 wayland,
23 libXrandr,
24 elfutils,
25 libunwind,
26 orc,
27 pkgsBuildBuild,
28}:
29
30qtModule {
31 pname = "qtmultimedia";
32 nativeBuildInputs = [ pkg-config ];
33 buildInputs = [
34 ffmpeg
35 ]
36 ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [
37 libunwind
38 orc
39 ]
40 ++ lib.optionals stdenv.hostPlatform.isLinux [
41 libpulseaudio
42 pipewire
43 alsa-lib
44 wayland
45 libXrandr
46 libva
47 ]
48 ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [ elfutils ];
49 propagatedBuildInputs = [
50 qtbase
51 qtdeclarative
52 qtsvg
53 qtshadertools
54 ]
55 ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [ qtquick3d ]
56 ++ lib.optionals stdenv.hostPlatform.isLinux [
57 gstreamer
58 gst-plugins-bad
59 gst-plugins-base
60 gst-plugins-good
61 gst-libav
62 gst-vaapi
63 ];
64
65 patches = lib.optionals stdenv.hostPlatform.isMinGW [
66 ./windows-no-uppercase-libs.patch
67 ./windows-resolve-function-name.patch
68 ];
69
70 cmakeFlags = [
71 "-DENABLE_DYNAMIC_RESOLVE_VAAPI_SYMBOLS=0"
72 "-DQt6ShaderToolsTools_DIR=${pkgsBuildBuild.qt6.qtshadertools}/lib/cmake/Qt6ShaderToolsTools"
73 ];
74
75 env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin "-include AudioToolbox/AudioToolbox.h";
76 NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-framework AudioToolbox";
77}