ripasso-cursive: cosmetic changes (#361736)
[NixPkgs.git] / pkgs / by-name / sc / scalp / package.nix
blobfcd0ce58c24f05d4b963c18e3a3410489a29bd22
2   lib,
3   stdenv,
4   fetchgit,
5   cmake,
6   withGurobi ? false,
7   gurobi,
8   withCplex ? false,
9   cplex,
10   withLpsolve ? true,
11   lp_solve,
12   unstableGitUpdater,
15 stdenv.mkDerivation rec {
16   pname = "scalp";
17   version = "0-unstable-2024-08-28";
19   src = fetchgit {
20     url = "https://digidev.digi.e-technik.uni-kassel.de/git/scalp.git";
21     # mirrored at https://git.sr.ht/~weijia/scalp
22     rev = "4a8e8b850a57328d9377ea7955c27c437394ebd3";
23     hash = "sha256-6OEf3yWFBmTKgeTMojRMRf/t9Ec1i851Lx3mQjCeOuw=";
24   };
26   postPatch =
27     ''
28       substituteInPlace CMakeLists.txt \
29         --replace-fail "\''$ORIGIN" "\''${CMAKE_INSTALL_PREFIX}/lib" \
30         --replace-fail "-m64" ""
31       substituteInPlace src/tests/CMakeLists.txt \
32         --replace-fail "src/tests/" ""
33     ''
34     + lib.optionalString withGurobi ''
35       substituteInPlace CMakeExtensions/FindGurobi.cmake \
36         --replace-fail "\''${GUROBI_VERSION}" '"${lib.versions.major gurobi.version}${lib.versions.minor gurobi.version}"'
37     '';
39   nativeBuildInputs = [
40     cmake
41   ];
43   buildInputs =
44     lib.optionals withGurobi [
45       gurobi
46     ]
47     ++ lib.optionals withCplex [
48       cplex
49     ]
50     ++ lib.optionals withLpsolve [
51       lp_solve
52     ];
54   cmakeFlags =
55     [
56       (lib.cmakeBool "BUILD_TESTS" doCheck)
57     ]
58     ++ lib.optionals withGurobi [
59       (lib.cmakeFeature "GUROBI_ROOT_DIR" "${gurobi}")
60     ]
61     ++ lib.optionals withCplex [
62       (lib.cmakeFeature "CPLEX_ROOT_DIR" "${cplex}")
63     ]
64     ++ lib.optionals withLpsolve [
65       (lib.cmakeFeature "LPSOLVE_ROOT_DIR" "${lp_solve}")
66     ];
68   doCheck = true;
70   passthru.updateScript = unstableGitUpdater { };
72   meta = {
73     description = "Scalable Linear Programming Library";
74     mainProgram = "scalp";
75     homepage = "https://digidev.digi.e-technik.uni-kassel.de/scalp/";
76     license = lib.licenses.lgpl3Only;
77     platforms = lib.platforms.unix;
78     maintainers = with lib.maintainers; [ wegank ];
79   };