1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 cmake,
6 gdk-pixbuf,
7 glib,
8 ibus,
9 libnotify,
10 librime,
11 pkg-config,
12 rime-data,
13 symlinkJoin,
14 rimeDataPkgs ? [ rime-data ],
15}:
16
17stdenv.mkDerivation rec {
18 pname = "ibus-rime";
19 version = "1.5.1";
20
21 src = fetchFromGitHub {
22 owner = "rime";
23 repo = "ibus-rime";
24 rev = version;
25 sha256 = "sha256-6lqPdcIJmwHcr4G6BhIDMhEtEOpOPgWqfkKXqaDjUY0=";
26 };
27
28 buildInputs = [
29 gdk-pixbuf
30 glib
31 ibus
32 libnotify
33 librime
34 ];
35 nativeBuildInputs = [
36 cmake
37 pkg-config
38 ];
39
40 cmakeFlags = [ "-DRIME_DATA_DIR=${placeholder "out"}/share/rime-data" ];
41
42 rimeDataDrv = symlinkJoin {
43 name = "ibus-rime-data";
44 paths = rimeDataPkgs;
45 postBuild = ''
46 mkdir -p $out/share/rime-data
47
48 # Ensure default.yaml exists
49 [ -e "$out/share/rime-data/default.yaml" ] || touch "$out/share/rime-data/default.yaml"
50 '';
51 };
52
53 postInstall = ''
54 cp -r "${rimeDataDrv}/share/rime-data/." $out/share/rime-data/
55 '';
56
57 meta = with lib; {
58 isIbusEngine = true;
59 description = "Rime input method engine for IBus";
60 homepage = "https://rime.im/";
61 license = licenses.gpl3Plus;
62 platforms = platforms.linux;
63 maintainers = with maintainers; [ pmy ];
64 };
65}