1{
2 lib,
3 mkKdeDerivation,
4 qttools,
5 accounts-qt,
6 kaccounts-integration,
7 shared-mime-info,
8 xz,
9 mariadb,
10 libpq,
11 sqlite,
12 backend ? "mysql",
13}:
14
15assert lib.assertOneOf "backend" backend [
16 "mysql"
17 "postgres"
18 "sqlite"
19];
20
21mkKdeDerivation {
22 pname = "akonadi";
23
24 patches = [
25 # Always regenerate MySQL config, as the store paths don't have accurate timestamps
26 ./ignore-mysql-config-timestamp.patch
27 ];
28
29 extraCmakeFlags = [
30 "-DDATABASE_BACKEND=${lib.toUpper backend}"
31 ]
32 ++ lib.optionals (backend == "mysql") [
33 "-DMYSQLD_SCRIPTS_PATH=${lib.getBin mariadb}/bin"
34 ]
35 ++ lib.optionals (backend == "postgres") [
36 "-DPOSTGRES_PATH=${lib.getBin libpq}/bin"
37 ];
38
39 extraNativeBuildInputs = [
40 qttools
41 shared-mime-info
42 ];
43
44 extraBuildInputs = [
45 kaccounts-integration
46 accounts-qt
47 xz
48 ]
49 ++ lib.optionals (backend == "mysql") [ mariadb ]
50 ++ lib.optionals (backend == "postgres") [ libpq ]
51 ++ lib.optionals (backend == "sqlite") [ sqlite ];
52
53 # Hardcoded as a QString, which is UTF-16 so Nix can't pick it up automatically
54
55 postFixup = ''
56 mkdir -p $out/nix-support
57 ''
58 + lib.optionalString (backend == "mysql") ''
59 echo "${mariadb}" > $out/nix-support/depends
60 ''
61 + lib.optionalString (backend == "postgres") ''
62 echo "${libpq}" > $out/nix-support/depends
63 '';
64}