summary refs log tree commit diff
path: root/pkgs/applications/editors/emacs-modes/semantic/default.nix
blob: 0ff6392472bb096e956e4a43695427c45948764f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
{ fetchurl, stdenv, emacs, eieio }:

stdenv.mkDerivation rec {
  name = "semantic-1.4.4";

  src = fetchurl {
    url = "mirror://sourceforge/cedet/${name}.tar.gz";
    sha256 = "0j50dqdy5bl35vqfbgxp93grs11llg9i4398044br73lvvif9n5f";
  };

  buildInputs = [ emacs eieio ];

  doCheck = true;
  checkPhase = "make Tests";

  preConfigure = ''
    sed -i "Makefile" -es'|^LOADPATH[[:blank:]]*=.*$|LOADPATH = ${eieio}/share/emacs/site-lisp|g'
  '';

  installPhase = ''
    ensureDir "$out/share/emacs/site-lisp"
    cp -v *.el *.elc "$out/share/emacs/site-lisp"
    chmod a-x "$out/share/emacs/site-lisp/"*

    ensureDir "$out/share/info"
    cp -v *.info* "$out/share/info"
  '';

  meta = {
    description = "Semantic, infrastructure for parser based text analysis in Emacs";

    longDescription = ''
      This package is now part of CEDET, please upgrade.

      Semantic is an infrastructure for parser based text analysis in
      Emacs.  It is a lexer, parser-generator, and parser.  It is
      written in Emacs Lisp and is customized to the way Emacs thinks
      about language files, and is optimized to use Emacs' parsing
      capabilities.

      Semantic's goal is to provide an intermediate API for authors of
      language agnostic tools who want to deal with languages in a
      generic way.  It also provides a simple way for Mode Authors who
      are experts in their language, to provide a parser for those
      tool authors, without knowing anything about those tools.
    '';

    license = "GPLv2+";

    homepage = http://cedet.sourceforge.net/;
  };
}