diff --git a/pkgs/applications/editors/emacs-modes/semantic/default.nix b/pkgs/applications/editors/emacs-modes/semantic/default.nix new file mode 100644 index 00000000000..dfb1902c1c2 --- /dev/null +++ b/pkgs/applications/editors/emacs-modes/semantic/default.nix @@ -0,0 +1,50 @@ +{ 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 = '' + 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/; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fe3a51f8e2c..a948c744065 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1226,6 +1226,10 @@ let makeFlags = [" CFLAGS+=-DNOMEMLOCK "]; }); + semantic = import ../applications/editors/emacs-modes/semantic { + inherit fetchurl stdenv emacs eieio; + }; + sharutils = selectVersion ../tools/archivers/sharutils "4.6.3" { inherit fetchurl stdenv; };