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