evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / sc / scs / package.nix
blob1ba3eb5912b8fd4c9571598af7ab62279d5389cc
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   blas,
6   lapack,
7   gfortran,
8   fixDarwinDylibNames,
9   nix-update-script,
12 assert (!blas.isILP64) && (!lapack.isILP64);
14 stdenv.mkDerivation rec {
15   pname = "scs";
16   version = "3.2.7";
18   src = fetchFromGitHub {
19     owner = "cvxgrp";
20     repo = "scs";
21     rev = "refs/tags/${version}";
22     hash = "sha256-Y28LrYUuDaXPO8sce1pJIfG3A03rw7BumVgxCIKRn+U=";
23   };
25   # Actually link and add libgfortran to the rpath
26   postPatch = ''
27     substituteInPlace scs.mk \
28       --replace "#-lgfortran" "-lgfortran" \
29       --replace "gcc" "cc"
30   '';
32   nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
34   buildInputs = [
35     blas
36     lapack
37     gfortran.cc.lib
38   ];
40   doCheck = true;
42   # Test demo requires passing data and seed; numbers chosen arbitrarily.
43   postCheck = ''
44     ./out/demo_socp_indirect 42 0.42 0.42 42
45   '';
47   installPhase = ''
48     runHook preInstall
49     mkdir -p $out/lib
50     cp -r include $out/
51     cp out/*.a out/*.so out/*.dylib $out/lib/
52     runHook postInstall
53   '';
55   passthru = {
56     updateScript = nix-update-script { };
57   };
59   meta = {
60     description = "Splitting Conic Solver";
61     longDescription = ''
62       Numerical optimization package for solving large-scale convex cone problems
63     '';
64     homepage = "https://github.com/cvxgrp/scs";
65     changelog = "https://github.com/cvxgrp/scs/releases/tag/${version}";
66     license = lib.licenses.mit;
67     platforms = lib.platforms.all;
68     maintainers = with lib.maintainers; [ bhipple ];
69   };