Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib, stdenv, fetchFromGitHub, callPackage, jq, cmake, flex, bison, gecode, mpfr, cbc, zlib }: 2 3stdenv.mkDerivation (finalAttrs: { 4 pname = "minizinc"; 5 version = "2.7.4"; 6 7 src = fetchFromGitHub { 8 owner = "MiniZinc"; 9 repo = "libminizinc"; 10 rev = finalAttrs.version; 11 sha256 = "sha256-Zq5gAwe9IQmknSDilFyHhSk5ZCQ8EfBOiM6Oef2WxYg="; 12 }; 13 14 nativeBuildInputs = [ bison cmake flex jq ]; 15 16 buildInputs = [ gecode mpfr cbc zlib ]; 17 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 ''; 27 28 passthru.tests = { 29 simple = callPackage ./simple-test { }; 30 }; 31 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 }; 46})