postgresqlPackages.sqlite_fdw: 2.4.0 -> 2.5.0 (#364337)
[NixPkgs.git] / pkgs / tools / inputmethods / fcitx5 / with-addons.nix
blobf6480fe191412981034a4f3b8724ab483ab7cc14
2   lib,
3   symlinkJoin,
4   makeBinaryWrapper,
5   fcitx5,
6   withConfigtool ? true,
7   fcitx5-configtool,
8   libsForQt5,
9   qt6Packages,
10   fcitx5-gtk,
11   addons ? [ ],
14 symlinkJoin {
15   name = "fcitx5-with-addons-${fcitx5.version}";
17   paths =
18     [
19       fcitx5
20       libsForQt5.fcitx5-qt
21       qt6Packages.fcitx5-qt
22       fcitx5-gtk
23     ]
24     ++ lib.optionals withConfigtool [
25       fcitx5-configtool
26     ]
27     ++ addons;
29   nativeBuildInputs = [ makeBinaryWrapper ];
31   postBuild = ''
32     wrapProgram $out/bin/fcitx5 \
33       --prefix FCITX_ADDON_DIRS : "$out/lib/fcitx5" \
34       --suffix XDG_DATA_DIRS : "$out/share" \
35       --suffix PATH : "$out/bin" \
36       --suffix LD_LIBRARY_PATH : "${
37         lib.makeLibraryPath (lib.flatten (map (x: x.extraLdLibraries or [ ]) addons))
38       }"
40     ${lib.optionalString withConfigtool ''
41       # Configtool call libexec/fcitx5-qt5-gui-wrapper for gui addons in FCITX_ADDON_DIRS
42       wrapProgram $out/bin/fcitx5-config-qt --prefix FCITX_ADDON_DIRS : "$out/lib/fcitx5"
43     ''}
45     pushd $out
46     grep -Rl --include=\*.{desktop,service} share/applications etc/xdg/autostart share/dbus-1/services -e ${fcitx5} | while read -r file; do
47       rm $file
48       cp ${fcitx5}/$file $file
49       substituteInPlace $file --replace-fail ${fcitx5} $out
50     done
51     popd
52   '';
54   inherit (fcitx5) meta;