diff options
author | Théo Zimmermann <theo.zimmermann@univ-paris-diderot.fr> | 2017-11-08 15:32:12 +0100 |
---|---|---|
committer | Théo Zimmermann <theo.zimmermann@univ-paris-diderot.fr> | 2017-11-09 09:09:22 +0100 |
commit | 25904a7915c7586d4e39416d6cc87d433ff8f95e (patch) | |
tree | 4b82099ad6dd11dff25e78bddbef0cb2083d87dc /default.nix | |
parent | 360d28670511d51c2b63692c9ce0f7ebe5f1ae3e (diff) |
Introduce default.nix for Nix users.
This file can be used to get in an environment ready to compile Coq
(with `nix-shell`) or to compile and install Coq (with `nix-build`).
Diffstat (limited to 'default.nix')
-rw-r--r-- | default.nix | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/default.nix b/default.nix new file mode 100644 index 000000000..9efabdbc2 --- /dev/null +++ b/default.nix @@ -0,0 +1,64 @@ +# How to use? + +# If you have Nix installed, you can get in an environment with everything +# needed to compile Coq and CoqIDE by running: +# $ nix-shell +# at the root of the Coq repository. + +# How to tweak default arguments? + +# nix-shell supports the --arg option (see Nix doc) that allows you for +# instance to do this: +# $ nix-shell --arg ocamlPackages "(import <nixpkgs> {}).ocamlPackages_latest" --arg buildIde false + +# You can also compile Coq and "install" it by running: +# $ make clean # (only needed if you have left-over compilation files) +# $ nix-build +# at the root of the Coq repository. +# nix-build also supports the --arg option, so you will be able to do: +# $ nix-build --arg doCheck false +# if you want to speed up things by not running the test-suite. +# Once the build is finished, you will find, in the current directory, +# a symlink to where Coq was installed. + +{ pkgs ? (import <nixpkgs> {}), ocamlPackages ? pkgs.ocamlPackages, + buildIde ? true, doCheck ? true }: + +with pkgs; + +stdenv.mkDerivation rec { + + name = "coq"; + + buildInputs = (with ocamlPackages; [ + + # Coq dependencies + ocaml + findlib + camlp5_strict + + ]) ++ (if buildIde then [ + + # CoqIDE dependencies + ocamlPackages.lablgtk + + ] else []) ++ (if doCheck then [ + + # Test-suite dependencies + python + rsync + which + + ] else []); + + src = + if lib.inNixShell then null + else + with builtins; filterSource + (path: _: !elem (baseNameOf path) [".git" "result" "bin"]) ./.; + + prefixKey = "-prefix "; + + inherit doCheck; + +} |