biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / minizinc / default.nix
blob9859cf2c948d0c5731bc6f12cb28bf21b3d014f4
1 { lib, stdenv, fetchFromGitHub, callPackage, jq, cmake, flex, bison, gecode, mpfr, cbc, zlib }:
3 stdenv.mkDerivation (finalAttrs: {
4   pname = "minizinc";
5   version = "2.8.3";
7   src = fetchFromGitHub {
8     owner = "MiniZinc";
9     repo = "libminizinc";
10     rev = finalAttrs.version;
11     sha256 = "sha256-/1rMrmwx8oYuiIoaS7YjDOey4jBCTJgzrPv6U0Vid8A=";
12   };
14   nativeBuildInputs = [ bison cmake flex jq ];
16   buildInputs = [ gecode mpfr cbc zlib ];
18   postInstall = ''
19     mkdir -p $out/share/minizinc/solvers/
20     jq \
21       '.version = "${gecode.version}"
22        | .mznlib = "${gecode}/share/gecode/mznlib"
23        | .executable = "${gecode}/bin/fzn-gecode"' \
24        ${./gecode.msc} \
25        >$out/share/minizinc/solvers/gecode.msc
26   '';
28   passthru.tests = {
29     simple = callPackage ./simple-test { };
30   };
32   meta = with lib; {
33     homepage = "https://www.minizinc.org/";
34     description = "A medium-level constraint modelling language";
35     longDescription = ''
36       MiniZinc is a medium-level constraint modelling
37       language. It is high-level enough to express most
38       constraint problems easily, but low-level enough
39       that it can be mapped onto existing solvers easily and consistently.
40       It is a subset of the higher-level language Zinc.
41     '';
42     license = licenses.mpl20;
43     platforms = platforms.unix;
44     maintainers = [ maintainers.sheenobu ];
45   };