nixpkgs/pkgs/development/tools/documentation/doxygen/default.nix
2021-01-23 20:30:03 +07:00

50 lines
1.5 KiB
Nix

{ lib, stdenv, cmake, fetchFromGitHub, python3, flex, bison, qt5, CoreServices, libiconv }:
stdenv.mkDerivation rec {
pname = "doxygen";
version = "1.8.20";
src = fetchFromGitHub {
owner = "doxygen";
repo = "doxygen";
rev = "Release_${lib.replaceStrings [ "." ] [ "_" ] version}";
sha256 = "17chvi3i80rj4750smpizf562xjzd2xcv5rfyh997pyvc1zbq5rh";
};
nativeBuildInputs = [
cmake
python3
flex
bison
];
buildInputs =
lib.optionals (qt5 != null) (with qt5; [ qtbase wrapQtAppsHook ])
++ lib.optional stdenv.isSunOS libiconv
++ lib.optionals stdenv.isDarwin [ CoreServices libiconv ];
cmakeFlags =
[ "-DICONV_INCLUDE_DIR=${libiconv}/include" ] ++
lib.optional (qt5 != null) "-Dbuild_wizard=YES";
NIX_CFLAGS_COMPILE =
lib.optionalString stdenv.isDarwin "-mmacosx-version-min=10.9";
enableParallelBuilding = false;
meta = {
license = lib.licenses.gpl2Plus;
homepage = "http://doxygen.nl/";
description = "Source code documentation generator tool";
longDescription = ''
Doxygen is a documentation system for C++, C, Java, Objective-C,
Python, IDL (CORBA and Microsoft flavors), Fortran, VHDL, PHP,
C\#, and to some extent D. It can generate an on-line
documentation browser (in HTML) and/or an off-line reference
manual (in LaTeX) from a set of documented source files.
'';
platforms = if qt5 != null then lib.platforms.linux else lib.platforms.unix;
};
}