about summary refs log tree commit diff
path: root/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
diff options
context:
space:
mode:
authorDamien Cassou <damien@cassou.me>2023-04-01 18:19:09 +0200
committerDamien Cassou <damien@cassou.me>2023-04-03 21:13:51 +0200
commit1b5ba6d5bd22ae637b30013fd016900b8a49e94e (patch)
treedaa9b36710568497d66d8437546d651d192369a8 /pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
parentaaea1aaea95f2fce950448d8f296e9ad08f02969 (diff)
emacs.pkgs.jinx: build .so file
Co-authored-by: Jian Lin <75130626+jian-lin@users.noreply.github.com>
Diffstat (limited to 'pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix')
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix25
1 files changed, 25 insertions, 0 deletions
diff --git a/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
index 1ffdb33655036..d1f9dbd3a4a5c 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
@@ -106,6 +106,31 @@ self: let
         };
       });
 
+      jinx = super.jinx.overrideAttrs (old: {
+        dontUnpack = false;
+
+        nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [
+            pkgs.pkg-config
+        ];
+
+        buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.enchant2 ];
+
+        postBuild = ''
+          NIX_CFLAGS_COMPILE="$($PKG_CONFIG --cflags enchant-2) $NIX_CFLAGS_COMPILE"
+          $CC -shared -o jinx-mod.so jinx-mod.c -lenchant-2
+        '';
+
+        postInstall = (old.postInstall or "") + "\n" + ''
+          outd=$out/share/emacs/site-lisp/elpa/jinx-*
+          install -m444 -t $outd jinx-mod.so
+          rm $outd/jinx-mod.c $outd/emacs-module.h
+        '';
+
+        meta = old.meta // {
+          maintainers = [ lib.maintainers.DamienCassou ];
+        };
+      });
+
       plz = super.plz.overrideAttrs (
         old: {
           dontUnpack = false;