vscode-extensions.github.copilot{*}: bump (#364729)
[NixPkgs.git] / pkgs / tools / text / highlight / default.nix
blob6f61197371849554b9df9ce09ff37093af5b63a1
2   lib,
3   stdenv,
4   fetchFromGitLab,
5   getopt,
6   lua,
7   boost,
8   libxcrypt,
9   pkg-config,
10   swig,
11   perl,
12   gcc,
15 let
16   self = stdenv.mkDerivation rec {
17     pname = "highlight";
18     version = "4.14";
20     src = fetchFromGitLab {
21       owner = "saalen";
22       repo = "highlight";
23       rev = "v${version}";
24       hash = "sha256-UxbgYspocoy9ul2dhIhvIwqKMeWSG7vJY1df3UkgpHQ=";
25     };
27     enableParallelBuilding = true;
29     nativeBuildInputs = [
30       pkg-config
31       swig
32       perl
33     ] ++ lib.optional stdenv.hostPlatform.isDarwin gcc;
35     buildInputs = [
36       getopt
37       lua
38       boost
39       libxcrypt
40     ];
42     postPatch =
43       ''
44         substituteInPlace src/makefile \
45           --replace "shell pkg-config" "shell $PKG_CONFIG"
46         substituteInPlace makefile \
47           --replace 'gzip' 'gzip -n'
48       ''
49       + lib.optionalString stdenv.cc.isClang ''
50         substituteInPlace src/makefile \
51             --replace 'CXX=g++' 'CXX=clang++'
52       '';
54     preConfigure = ''
55       makeFlags="PREFIX=$out conf_dir=$out/etc/highlight/ CXX=$CXX AR=$AR"
56     '';
58     # This has to happen _before_ the main build because it does a
59     # `make clean' for some reason.
60     preBuild = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
61       make -C extras/swig $makeFlags perl
62     '';
64     postCheck = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
65       perl -Iextras/swig extras/swig/testmod.pl
66     '';
68     preInstall = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
69       mkdir -p $out/${perl.libPrefix}
70       install -m644 extras/swig/highlight.{so,pm} $out/${perl.libPrefix}
71       make -C extras/swig clean # Clean up intermediate files.
72     '';
74     meta = with lib; {
75       description = "Source code highlighting tool";
76       mainProgram = "highlight";
77       homepage = "http://www.andre-simon.de/doku/highlight/en/highlight.php";
78       platforms = platforms.unix;
79       maintainers = with maintainers; [ willibutz ];
80     };
81   };
84 if stdenv.hostPlatform.isDarwin then self else perl.pkgs.toPerlModule self