about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/ceres-solver/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/ceres-solver/default.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/ceres-solver/default.nix27
1 files changed, 24 insertions, 3 deletions
diff --git a/nixpkgs/pkgs/development/libraries/ceres-solver/default.nix b/nixpkgs/pkgs/development/libraries/ceres-solver/default.nix
index 794a09749c55..f5c000f2271e 100644
--- a/nixpkgs/pkgs/development/libraries/ceres-solver/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ceres-solver/default.nix
@@ -1,10 +1,16 @@
-{ lib, stdenv
-, eigen
+{ lib
+, stdenv
+, fetchpatch
 , fetchurl
+, blas
 , cmake
+, eigen
 , gflags
 , glog
+, suitesparse
 , runTests ? false
+, enableStatic ? stdenv.hostPlatform.isStatic
+, withBlas ? true
 }:
 
 # gflags is required to run tests
@@ -19,9 +25,24 @@ stdenv.mkDerivation rec {
     sha256 = "00vng9vnmdb1qga01m0why90m0041w7bn6kxa2h4m26aflfqla8h";
   };
 
+  outputs = [ "out" "dev" ];
+
+  patches = [
+    # Enable GNUInstallDirs, see: https://github.com/ceres-solver/ceres-solver/pull/706
+    (fetchpatch {
+      url = "https://github.com/ceres-solver/ceres-solver/commit/4998c549396d36a491f1c0638fe57824a40bcb0d.patch";
+      sha256 = "sha256-mF6Zh2fDVzg2kD4nI2dd9rp4NpvPErmwfdYo5JaBmCA=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake ];
   buildInputs = lib.optional runTests gflags;
-  propagatedBuildInputs = [ eigen glog ];
+  propagatedBuildInputs = [ eigen glog ]
+  ++ lib.optionals withBlas [ blas suitesparse ];
+
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=${if enableStatic then "OFF" else "ON"}"
+  ];
 
   # The Basel BUILD file conflicts with the cmake build directory on
   # case-insensitive filesystems, eg. darwin.