summary refs log tree commit diff
path: root/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix')
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix17
1 files changed, 11 insertions, 6 deletions
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix
index d415b6b5a45..774978929b4 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix
@@ -9,6 +9,8 @@
 , librime
 , pkg-config
 , rime-data
+, symlinkJoin
+, rimeDataPkgs ? [ rime-data ]
 }:
 
 stdenv.mkDerivation rec {
@@ -22,15 +24,18 @@ stdenv.mkDerivation rec {
     sha256 = "0gdxg6ia0i31jn3cvh1nrsjga1j31hf8a2zfgg8rzn25chrfr319";
   };
 
-  buildInputs = [ gdk-pixbuf glib ibus libnotify librime rime-data ];
+  buildInputs = [ gdk-pixbuf glib ibus libnotify librime ];
   nativeBuildInputs = [ cmake pkg-config ];
 
-  cmakeFlags = [ "-DRIME_DATA_DIR=${rime-data}/share/rime-data" ];
+  cmakeFlags = [ "-DRIME_DATA_DIR=${placeholder "out"}/share/rime-data" ];
 
-  prePatch = ''
-    substituteInPlace CMakeLists.txt \
-       --replace 'DESTINATION "''${RIME_DATA_DIR}"' \
-                 'DESTINATION "''${CMAKE_INSTALL_DATADIR}/rime-data"'
+  rimeDataDrv = symlinkJoin {
+    name = "ibus-rime-data";
+    paths = rimeDataPkgs;
+  };
+
+  postInstall = ''
+    cp -r "${rimeDataDrv}/share/rime-data/." $out/share/rime-data/
   '';
 
   meta = with lib; {