Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
thread factory + dlopen privatization seems to be working now on osx systems (at...
[simgrid.git] / docs / default.nix
1 # Nix package for SimGrid's sphinx documentation.
2 # Example usage: nix-build ./default.nix -A simgrid-doc && firefox result/index.html
3 { pkgs ? import (fetchTarball {
4     url = "https://github.com/NixOS/nixpkgs/archive/21.05.tar.gz";
5     sha256 = "1ckzhh24mgz6jd1xhfgx0i9mijk6xjqxwsshnvq789xsavrmsc36";
6   }) {}
7 }:
8
9 let
10   pythonPackages = pkgs.python3Packages;
11   buildPythonPackage = pythonPackages.buildPythonPackage;
12
13   self = rec {
14     # the desired package
15     simgrid-doc = pkgs.stdenv.mkDerivation rec {
16       name = "simgrid-doc";
17       src = ./..;
18       buildInputs = [
19         pkgs.doxygen
20         pythonPackages.sphinx
21         pythonPackages.sphinx_rtd_theme
22         pythonPackages.breathe
23         javasphinx
24         sphinx-tabs
25       ];
26       phases = [ "unpackPhase" "buildPhase" "installPhase" ];
27       buildPhase = ''
28         cd docs
29         rm -rf build # this is not done in your directory, this is on the copy made by the Nix build daemon
30         sphinx-build -b html source build
31       '';
32       installPhase = ''
33         mkdir -p $out
34         mv build/* $out/
35       '';
36     };
37
38     # sphinx extensions (and their dependencies) shenanigans
39     javalang = buildPythonPackage rec {
40       pname = "javalang";
41       version = "0.13.0";
42       src = pythonPackages.fetchPypi {
43         inherit pname version;
44         sha256 = "0k22ldm4xn0sb26qclp5zz0fc9dy589zvvby5ba1d0d5h2jab08n";
45       };
46       buildInputs = with pythonPackages; [ six ];
47       doCheck = false;
48     };
49
50     javasphinx = buildPythonPackage rec {
51       pname = "javasphinx";
52       version = "0.9.15+simgrid";
53       src = pkgs.fetchFromGitHub {
54         owner = "simgrid";
55         repo = pname;
56         rev = "659209069603a5f221596dd039e724cb89b31b82";
57         sha256 = "1nbz822zd2ikzzmpyqsrrpqvlpng72qvl86wcqfn89szbp85c20a";
58       };
59       propagatedBuildInputs = with pythonPackages; [
60         beautifulsoup4
61         docutils
62         javalang
63         future
64         lxml
65         sphinx
66       ];
67     };
68
69     sphinx-tabs = pythonPackages.buildPythonPackage rec {
70       pname = "sphinx-tabs";
71       version = "3.1.0";
72       name = "${pname}-${version}";
73
74       src = pythonPackages.fetchPypi {
75         inherit pname version;
76         sha256 = "0kv935qhml40mly33rk5am128g2ygqkfvizh33vf29hjkf32mvjy";
77       };
78
79       propagatedBuildInputs = with pythonPackages; [
80         docutils
81         pygments
82         sphinx
83       ];
84     };
85
86   };
87 in
88   self