summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorJosef Kemetmüller <josef.kemetmueller@gmail.com>2018-09-12 00:17:44 +0200
committerJosef Kemetmüller <josef.kemetmueller@gmail.com>2018-09-12 20:58:26 +0200
commitd726c0ff1dcf4bbe3ac4fc6df5d0635d9d00e69c (patch)
treea50338b8c6c0dbe288dea69405b755a5b7abf139 /pkgs/development
parent8955ec6c735f3000b00b45fb2c696b92f4d5c3c1 (diff)
downloadnixlib-d726c0ff1dcf4bbe3ac4fc6df5d0635d9d00e69c.tar
nixlib-d726c0ff1dcf4bbe3ac4fc6df5d0635d9d00e69c.tar.gz
nixlib-d726c0ff1dcf4bbe3ac4fc6df5d0635d9d00e69c.tar.bz2
nixlib-d726c0ff1dcf4bbe3ac4fc6df5d0635d9d00e69c.tar.lz
nixlib-d726c0ff1dcf4bbe3ac4fc6df5d0635d9d00e69c.tar.xz
nixlib-d726c0ff1dcf4bbe3ac4fc6df5d0635d9d00e69c.tar.zst
nixlib-d726c0ff1dcf4bbe3ac4fc6df5d0635d9d00e69c.zip
scs: Fix darwin build
Additionally we make the unit-test deterministic by specifying a seed
instead of using something random.
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/libraries/science/math/scs/default.nix24
1 files changed, 15 insertions, 9 deletions
diff --git a/pkgs/development/libraries/science/math/scs/default.nix b/pkgs/development/libraries/science/math/scs/default.nix
index 0539083e823c..f9d1a84b1f03 100644
--- a/pkgs/development/libraries/science/math/scs/default.nix
+++ b/pkgs/development/libraries/science/math/scs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, blas, liblapack, gfortran }:
+{ stdenv, fetchFromGitHub, blas, liblapack, gfortran, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
   name = "scs-${version}";
@@ -11,24 +11,30 @@ stdenv.mkDerivation rec {
     sha256 = "17lbcmcsniqlyzgbzmjipfd0rrk25a8hzh7l5wl2wp1iwsd8c3a9";
   };
 
-  buildInputs = [ blas liblapack gfortran.cc.lib ];
-
   # Actually link and add libgfortran to the rpath
-  patchPhase = ''
-    sed -i 's/#-lgfortran/-lgfortran/' scs.mk
+  postPatch = ''
+    substituteInPlace scs.mk \
+      --replace "#-lgfortran" "-lgfortran" \
+      --replace "gcc" "cc"
   '';
 
+  nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+  buildInputs = [ blas liblapack gfortran.cc.lib ];
+
   doCheck = true;
 
-  # Test demo requires passing any int as $1; 42 chosen arbitrarily
-  checkPhase = ''
-    ./out/demo_socp_indirect 42
+  # Test demo requires passing data and seed; numbers chosen arbitrarily.
+  postCheck = ''
+    ./out/demo_socp_indirect 42 0.42 0.42 42
   '';
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/lib
     cp -r include $out/
-    cp out/*.a out/*.so $out/lib/
+    cp out/*.a out/*.so out/*.dylib $out/lib/
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {