1{
2 lib,
3 stdenv,
4 fetchurl,
5 pkg-config,
6 cmake,
7 extra-cmake-modules,
8 gettext,
9 zstd,
10 fcitx5,
11 librime,
12 rime-data,
13 symlinkJoin,
14 rimeDataPkgs ? [ rime-data ],
15}:
16
17stdenv.mkDerivation rec {
18 pname = "fcitx5-rime";
19 version = "5.1.10";
20
21 src = fetchurl {
22 url = "https://download.fcitx-im.org/fcitx5/${pname}/${pname}-${version}.tar.zst";
23 hash = "sha256-ACW79fLgrS+Qv8YJjGr4WldTJsnnGhC0WWf8ia9khYk=";
24 };
25
26 cmakeFlags = [
27 "-DRIME_DATA_DIR=${placeholder "out"}/share/rime-data"
28 ];
29
30 nativeBuildInputs = [
31 cmake
32 extra-cmake-modules
33 pkg-config
34 gettext
35 zstd
36 ];
37
38 buildInputs = [
39 fcitx5
40 librime
41 ];
42
43 rimeDataDrv = symlinkJoin {
44 name = "fcitx5-rime-data";
45 paths = rimeDataPkgs;
46 postBuild = ''
47 mkdir -p $out/share/rime-data
48
49 # Ensure default.yaml exists
50 [ -e "$out/share/rime-data/default.yaml" ] || touch "$out/share/rime-data/default.yaml"
51 '';
52 };
53
54 postInstall = ''
55 cp -r "${rimeDataDrv}/share/rime-data/." $out/share/rime-data/
56 '';
57
58 meta = with lib; {
59 description = "RIME support for Fcitx5";
60 homepage = "https://github.com/fcitx/fcitx5-rime";
61 license = licenses.lgpl21Plus;
62 maintainers = with maintainers; [ poscat ];
63 platforms = platforms.linux;
64 };
65}