Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add new entry in Release_Notes.
[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         sphinx-tabs
24       ];
25       phases = [ "unpackPhase" "buildPhase" "installPhase" ];
26       buildPhase = ''
27         cd docs
28         rm -rf build # this is not done in your directory, this is on the copy made by the Nix build daemon
29         sphinx-build -b html source build
30       '';
31       installPhase = ''
32         mkdir -p $out
33         mv build/* $out/
34       '';
35     };
36
37     sphinx-tabs = pythonPackages.buildPythonPackage rec {
38       pname = "sphinx-tabs";
39       version = "3.1.0";
40       name = "${pname}-${version}";
41
42       src = pythonPackages.fetchPypi {
43         inherit pname version;
44         sha256 = "0kv935qhml40mly33rk5am128g2ygqkfvizh33vf29hjkf32mvjy";
45       };
46
47       propagatedBuildInputs = with pythonPackages; [
48         docutils
49         pygments
50         sphinx
51       ];
52     };
53
54   };
55 in
56   self