about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--default.nix3
-rw-r--r--pkgs/enchant-configurable/default.nix82
2 files changed, 85 insertions, 0 deletions
diff --git a/default.nix b/default.nix
index 790ec27..1e336a1 100644
--- a/default.nix
+++ b/default.nix
@@ -16,4 +16,7 @@
 
   prettier-plugin-go-template = pkgs.callPackage ./pkgs/prettier-plugin-go-template { };
   htmlformat = pkgs.callPackage ./pkgs/htmlformat { };
+  enchant-configurable = pkgs.callPackage ./pkgs/enchant-configurable {
+    inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
+  };
 }
diff --git a/pkgs/enchant-configurable/default.nix b/pkgs/enchant-configurable/default.nix
new file mode 100644
index 0000000..0afe168
--- /dev/null
+++ b/pkgs/enchant-configurable/default.nix
@@ -0,0 +1,82 @@
+{ stdenv
+, lib
+, fetchurl
+, aspell
+, groff
+, pkg-config
+, glib
+, hunspell
+, hspell
+, nuspell
+, unittest-cpp
+
+, withHspell ? true
+, withAspell ? true
+, withHunspell ? true
+, withNuspell ? true
+, withAppleSpell ? stdenv.isDarwin
+
+, Cocoa
+}:
+
+assert withAppleSpell -> stdenv.isDarwin;
+
+stdenv.mkDerivation rec {
+  pname = "enchant";
+  version = "2.6.9";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchurl {
+    url = "https://github.com/AbiWord/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
+    hash = "sha256-2aWhDcmzikOzoPoix27W67fgnrU1r/YpVK/NvUDv/2s=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    groff
+    pkg-config
+  ];
+
+  buildInputs = [
+    glib
+  ] ++ lib.optionals withHunspell [
+    hunspell
+  ] ++ lib.optionals withNuspell [
+    nuspell
+  ] ++ lib.optionals withAppleSpell [
+    Cocoa
+  ];
+
+  checkInputs = [
+    unittest-cpp
+  ];
+
+  # libtool puts these to .la files
+  propagatedBuildInputs = lib.optionals withHspell [
+    hspell
+  ] ++ lib.optionals withAspell [
+    aspell
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
+  configureFlags = [
+    "--enable-relocatable" # needed for tests
+    (lib.withFeature withAspell "aspell")
+    (lib.withFeature withHspell "hspell")
+    (lib.withFeature withHunspell "hunspell")
+    (lib.withFeature withNuspell "nuspell")
+    (lib.withFeature withAppleSpell "applespell")
+  ];
+
+  meta = with lib; {
+    description = "Generic spell checking library";
+    homepage = "https://abiword.github.io/enchant/";
+    license = licenses.lgpl21Plus; # with extra provision for non-free checkers
+    platforms = platforms.unix;
+  };
+}