summary refs log tree commit diff
path: root/pkgs/build-support/emacs/generic.nix
diff options
context:
space:
mode:
authorJan Malakhovski <oxij@oxij.org>2014-01-20 23:57:04 +0000
committerJan Malakhovski <oxij@oxij.org>2015-03-03 16:02:15 +0000
commite4a4e109ba49f3868f63a61e514c4846a1cd0b9a (patch)
tree66eea07b9a477857ed69dbd44bd153dbd78d1007 /pkgs/build-support/emacs/generic.nix
parenta444eff3f29c292ffb62700572cbd4c9cdb3718b (diff)
downloadnixlib-e4a4e109ba49f3868f63a61e514c4846a1cd0b9a.tar
nixlib-e4a4e109ba49f3868f63a61e514c4846a1cd0b9a.tar.gz
nixlib-e4a4e109ba49f3868f63a61e514c4846a1cd0b9a.tar.bz2
nixlib-e4a4e109ba49f3868f63a61e514c4846a1cd0b9a.tar.lz
nixlib-e4a4e109ba49f3868f63a61e514c4846a1cd0b9a.tar.xz
nixlib-e4a4e109ba49f3868f63a61e514c4846a1cd0b9a.tar.zst
nixlib-e4a4e109ba49f3868f63a61e514c4846a1cd0b9a.zip
refactor Emacs packages'/modes' builders
This simplifies melpa builder by merging with it my old emacs modes builder,
adds better instructions and support for overrides in emacs-packages.nix,
and renames some emacs-related stuff in all-packages.nix for sanity reasons.

I declare this backwards compatible since direct uses of emacsPackages in
configuration.nix are very unlikely.
Diffstat (limited to 'pkgs/build-support/emacs/generic.nix')
-rw-r--r--pkgs/build-support/emacs/generic.nix41
1 files changed, 41 insertions, 0 deletions
diff --git a/pkgs/build-support/emacs/generic.nix b/pkgs/build-support/emacs/generic.nix
new file mode 100644
index 000000000000..be81e93e32ae
--- /dev/null
+++ b/pkgs/build-support/emacs/generic.nix
@@ -0,0 +1,41 @@
+# generic builder for Emacs packages
+
+{ lib, stdenv, emacs, texinfo }:
+
+with lib;
+
+{ pname
+, version ? null
+
+, buildInputs ? []
+, packageRequires ? []
+
+, meta ? {}
+
+, ...
+}@args:
+
+let
+  defaultMeta = {
+    broken = false;
+    platforms = emacs.meta.platforms;
+  };
+in
+
+stdenv.mkDerivation ({
+  name = "emacs-${pname}${optionalString (version != null) "-${version}"}";
+
+  buildInputs = [emacs texinfo] ++ packageRequires ++ buildInputs;
+  propagatedBuildInputs = packageRequires;
+  propagatedUserEnvPkgs = packageRequires;
+
+  setupHook = ./setup-hook.sh;
+
+  doCheck = false;
+
+  meta = defaultMeta // meta;
+}
+
+// removeAttrs args [ "buildInputs" "packageRequires"
+                      "meta"
+                    ])