1{
2 lib,
3 makeDesktopItem,
4 copyDesktopItems,
5 wrapGAppsHook3,
6 glib,
7 adwaita-icon-theme,
8 mkCoqDerivation,
9 coq,
10 version ? null,
11}:
12
13mkCoqDerivation rec {
14 pname = "coqide";
15 inherit version;
16
17 inherit (coq) src;
18 release."${coq.version}" = { };
19
20 defaultVersion = if lib.versions.range "8.14" "8.20" coq.version then coq.version else null;
21
22 preConfigure = ''
23 patchShebangs dev/tools/
24 '';
25 prefixKey = "-prefix ";
26
27 useDune = true;
28
29 buildInputs = [
30 copyDesktopItems
31 wrapGAppsHook3
32 coq.ocamlPackages.lablgtk3-sourceview3
33 glib
34 adwaita-icon-theme
35 ];
36
37 buildPhase = ''
38 runHook preBuild
39 dune build -p ${pname} -j $NIX_BUILD_CORES
40 runHook postBuild
41 '';
42 installPhase = ''
43 runHook preInstall
44 dune install --prefix $out ${pname}
45 runHook postInstall
46 '';
47
48 desktopItems = [
49 (makeDesktopItem {
50 name = "coqide";
51 exec = "coqide";
52 icon = "coq";
53 desktopName = "CoqIDE";
54 comment = "Graphical interface for the Coq proof assistant";
55 categories = [
56 "Development"
57 "Science"
58 "Math"
59 "IDE"
60 "GTK"
61 ];
62 })
63 ];
64
65 meta = with lib; {
66 homepage = "https://coq.inria.fr";
67 description = "CoqIDE user interface for the Coq proof assistant";
68 mainProgram = "coqide";
69 license = licenses.lgpl21Plus;
70 maintainers = [ maintainers.Zimmi48 ];
71 };
72}