diff options
Diffstat (limited to 'pkgs/build-support/coq/default.nix')
-rw-r--r-- | pkgs/build-support/coq/default.nix | 39 |
1 files changed, 13 insertions, 26 deletions
diff --git a/pkgs/build-support/coq/default.nix b/pkgs/build-support/coq/default.nix index 70c62c659a2d2..a681bbda5575d 100644 --- a/pkgs/build-support/coq/default.nix +++ b/pkgs/build-support/coq/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, coqPackages, coq, which, fetchzip }@args: +{ lib, stdenv, coqPackages, coq, fetchzip }@args: let lib = import ./extra-lib.nix {inherit (args) lib;}; in with builtins; with lib; let @@ -15,12 +15,8 @@ in releaseRev ? (v: v), displayVersion ? {}, release ? {}, - buildInputs ? [], - nativeBuildInputs ? [], extraBuildInputs ? [], extraNativeBuildInputs ? [], - overrideBuildInputs ? [], - overrideNativeBuildInputs ? [], namePrefix ? [ "coq" ], enableParallelBuilding ? true, extraInstallFlags ? [], @@ -39,11 +35,7 @@ let args-to-remove = foldl (flip remove) ([ "version" "fetcher" "repo" "owner" "domain" "releaseRev" "displayVersion" "defaultVersion" "useMelquiondRemake" - "release" - "buildInputs" "nativeBuildInputs" - "extraBuildInputs" "extraNativeBuildInputs" - "overrideBuildInputs" "overrideNativeBuildInputs" - "namePrefix" + "release" "extraBuildInputs" "extraNativeBuildInputs" "extraPropagatedBuildInputs" "namePrefix" "meta" "useDune2ifVersion" "useDune2" "opam-name" "extraInstallFlags" "setCOQBIN" "mlPlugin" "dropAttrs" "dropDerivationAttrs" "keepAttrs" ] ++ dropAttrs) keepAttrs; @@ -65,16 +57,9 @@ let ] "") + optionalString (v == null) "-broken"; append-version = p: n: p + display-pkg n "" coqPackages.${n}.version + "-"; prefix-name = foldl append-version "" namePrefix; + var-coqlib-install = + (optionalString (versions.isGe "8.7" coq.coq-version || coq.coq-version == "dev") "COQMF_") + "COQLIB"; useDune2 = args.useDune2 or (useDune2ifVersion fetched.version); - coqlib-flags = switch coq.coq-version [ - { case = v: versions.isLe "8.6" v && v != "dev" ; - out = [ "COQLIB=$(out)/lib/coq/${coq.coq-version}/" ]; } - ] [ "COQLIBINSTALL=$(out)/lib/coq/${coq.coq-version}/user-contrib" - "COQPLUGININSTALL=$(OCAMLFIND_DESTDIR)" ]; - docdir-flags = switch coq.coq-version [ - { case = v: versions.isLe "8.6" v && v != "dev"; - out = [ "DOCDIR=$(out)/share/coq/${coq.coq-version}/" ]; } - ] [ "COQDOCINSTALL=$(out)/share/coq/${coq.coq-version}/user-contrib" ]; in stdenv.mkDerivation (removeAttrs ({ @@ -83,12 +68,12 @@ stdenv.mkDerivation (removeAttrs ({ inherit (fetched) version src; - nativeBuildInputs = args.overrideNativeBuildInputs - or ([ which ] ++ optional useDune2 coq.ocamlPackages.dune_2 - ++ optional (useDune2 || mlPlugin) coq.ocaml - ++ (args.nativeBuildInputs or []) ++ extraNativeBuildInputs); - buildInputs = args.overrideBuildInputs - or ([ coq ] ++ (args.buildInputs or []) ++ extraBuildInputs); + nativeBuildInputs = [ coq ] + ++ optionals useDune2 [coq.ocaml coq.ocamlPackages.dune_2] + ++ optionals mlPlugin coq.ocamlNativeBuildInputs + ++ extraNativeBuildInputs; + buildInputs = optionals mlPlugin coq.ocamlBuildInputs + ++ extraBuildInputs; inherit enableParallelBuilding; meta = ({ platforms = coq.meta.platforms; } // @@ -103,7 +88,9 @@ stdenv.mkDerivation (removeAttrs ({ // (optionalAttrs setCOQBIN { COQBIN = "${coq}/bin/"; }) // (optionalAttrs (!args?installPhase && !args?useMelquiondRemake) { installFlags = - [ "DESTDIR=$(out)" ] ++ coqlib-flags ++ docdir-flags ++ + [ "${var-coqlib-install}=$(out)/lib/coq/${coq.coq-version}/" ] ++ + optional (match ".*doc$" (args.installTargets or "") != null) + "DOCDIR=$(out)/share/coq/${coq.coq-version}/" ++ extraInstallFlags; }) // (optionalAttrs useDune2 { |