about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/science/math/scalp/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/science/math/scalp/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/science/math/scalp/default.nix59
1 files changed, 59 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/science/math/scalp/default.nix b/nixpkgs/pkgs/applications/science/math/scalp/default.nix
new file mode 100644
index 000000000000..fc230a11966f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/scalp/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchgit
+, cmake
+, withGurobi ? false
+, gurobi
+, withCplex ? false
+, cplex
+, withLpsolve ? true
+, lp_solve
+}:
+
+stdenv.mkDerivation rec {
+  pname = "scalp";
+  version = "unstable-2022-03-15";
+
+  src = fetchgit {
+    url = "https://digidev.digi.e-technik.uni-kassel.de/git/scalp.git";
+    # mirrored at https://git.sr.ht/~weijia/scalp
+    rev = "185b84e4ff967f42cf2de5db4db4e6fa0cc18fb8";
+    sha256 = "sha256-NyMZdJwdD3FR6uweYCclJjfcf3Y24Bns1ViwsmJ5izg=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = lib.optionals withGurobi [
+    gurobi
+  ] ++ lib.optionals withCplex [
+    cplex
+  ] ++ lib.optionals withLpsolve [
+    lp_solve
+  ];
+
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace CMakeLists.txt \
+      --replace "\''$ORIGIN" "\''${CMAKE_INSTALL_PREFIX}/lib"
+  '';
+
+  cmakeFlags = [
+    "-DBUILD_TESTS=${lib.boolToString doCheck}"
+  ] ++ lib.optionals withGurobi [
+    "-DGUROBI_DIR=${gurobi}"
+  ] ++ lib.optionals withCplex [
+    "-DCPLEX_DIR=${cplex}"
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Scalable Linear Programming Library";
+    mainProgram = "scalp";
+    homepage = "https://digidev.digi.e-technik.uni-kassel.de/scalp/";
+    license = licenses.lgpl3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ wegank ];
+  };
+}