lol
1{
2 qtModule,
3 qtbase,
4 qtlanguageserver,
5 qtshadertools,
6 qtsvg,
7 openssl,
8 darwin,
9 stdenv,
10 lib,
11 pkgsBuildBuild,
12 replaceVars,
13 fetchpatch,
14}:
15
16qtModule {
17 pname = "qtdeclarative";
18
19 propagatedBuildInputs = [
20 qtbase
21 qtlanguageserver
22 qtshadertools
23 qtsvg
24 openssl
25 ];
26 strictDeps = true;
27
28 nativeBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
29 darwin.sigtool
30 ];
31
32 patches = [
33 # don't cache bytecode of bare qml files in the store, as that never gets cleaned up
34 (replaceVars ./dont-cache-nix-store-paths.patch {
35 nixStore = builtins.storeDir;
36 })
37 # add version specific QML import path
38 ./use-versioned-import-path.patch
39
40 # revert codesigning change on Darwin that doesn't work with our signing tools
41 (fetchpatch {
42 url = "https://github.com/qt/qtdeclarative/commit/a7084abd9778b955d80e7419e82f6f7b92f7978d.diff";
43 hash = "sha256-ESy35OlmsvI4yFQ/rFT8oelOUBCwCmlcbQJvwcTrCig=";
44 revert = true;
45 })
46 ];
47
48 cmakeFlags = [
49 "-DQt6ShaderToolsTools_DIR=${pkgsBuildBuild.qt6.qtshadertools}/lib/cmake/Qt6ShaderTools"
50 # for some reason doesn't get found automatically on Darwin
51 "-DPython_EXECUTABLE=${lib.getExe pkgsBuildBuild.python3}"
52 ]
53 # Conditional is required to prevent infinite recursion during a cross build
54 ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
55 "-DQt6QmlTools_DIR=${pkgsBuildBuild.qt6.qtdeclarative}/lib/cmake/Qt6QmlTools"
56 ];
57
58 meta.maintainers = with lib.maintainers; [
59 nickcao
60 outfoxxed
61 ];
62}