summary refs log tree commit diff
path: root/pkgs/top-level/emacs-packages.nix
diff options
context:
space:
mode:
authorAlexey Lebedeff <alebedev@mirantis.com>2016-07-26 13:53:06 +0300
committerAlexey Lebedeff <alebedev@mirantis.com>2016-07-26 20:17:09 +0300
commitacbfc56b4303a42ef346c712dc48ff7c36c6b12a (patch)
tree0a7e78b7562f34c874165c30db6dd61bf6920ff4 /pkgs/top-level/emacs-packages.nix
parentb98e4b3aa4e3e30f3c010dbc82bf20ec1298f636 (diff)
downloadnixlib-acbfc56b4303a42ef346c712dc48ff7c36c6b12a.tar
nixlib-acbfc56b4303a42ef346c712dc48ff7c36c6b12a.tar.gz
nixlib-acbfc56b4303a42ef346c712dc48ff7c36c6b12a.tar.bz2
nixlib-acbfc56b4303a42ef346c712dc48ff7c36c6b12a.tar.lz
nixlib-acbfc56b4303a42ef346c712dc48ff7c36c6b12a.tar.xz
nixlib-acbfc56b4303a42ef346c712dc48ff7c36c6b12a.tar.zst
nixlib-acbfc56b4303a42ef346c712dc48ff7c36c6b12a.zip
emacs-source-code: init at 1.0.0
This pseudo-package will help emacs find its own C sources.

When this package is used in `emacsWithPackages`, you will be able to
reach emacs C sources, e.g. through a link in `describe-function`
buffer.
Diffstat (limited to 'pkgs/top-level/emacs-packages.nix')
-rw-r--r--pkgs/top-level/emacs-packages.nix24
1 files changed, 24 insertions, 0 deletions
diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix
index 1bf3b4c0e61b..725e52e58772 100644
--- a/pkgs/top-level/emacs-packages.nix
+++ b/pkgs/top-level/emacs-packages.nix
@@ -471,6 +471,30 @@ let
     };
   };
 
+  emacs-source-directory = stdenv.mkDerivation {
+    name = "emacs-source-directory-1.0.0";
+    src = emacs.src;
+
+    # We don't want accidentally start bulding emacs one more time
+    phases = "unpackPhase buildPhase";
+
+    buildPhase = ''
+     mkdir -p $out/share/emacs/site-lisp/elpa/emacs-source-directory
+     cp -a src $out/src
+     (cd $out/src && ${emacs}/bin/etags *.c *.h)
+     cat <<EOF > $out/share/emacs/site-lisp/elpa/emacs-source-directory/emacs-source-directory-autoloads.el
+     (setq source-directory "$out")
+     (setq find-function-C-source-directory (expand-file-name "src" source-directory))
+     EOF
+     cat <<EOF > $out/share/emacs/site-lisp/elpa/emacs-source-directory/emacs-source-directory-pkg.el
+     (define-package "emacs-source-directory" "1.0.0" "Make emacs C source code available inside emacs. To use with emacsWithPackages in NixOS" '())
+     EOF
+    '';
+    meta = {
+      description = "Make emacs C source code available inside emacs. To use with emacsWithPackages in NixOS";
+    };
+  };
+
   engine-mode = melpaBuild rec {
     pname = "engine-mode";
     version = "1.0.0";