summary refs log tree commit diff
path: root/pkgs/development/libraries/ceres-solver
diff options
context:
space:
mode:
authorLuis G. Torres <lgtorres42@gmail.com>2015-03-12 15:48:58 -0400
committerLuis G. Torres <lgtorres42@gmail.com>2015-03-12 16:04:04 -0400
commit92eaff008e90c982b095275cb5250ec0c1a60c24 (patch)
tree2a6f3eab5f62a1e17eedc3a8442c2316455be6d8 /pkgs/development/libraries/ceres-solver
parenta5ae04f1795ea6b0d742cfa2f9d0d84ec01baa0c (diff)
downloadnixlib-92eaff008e90c982b095275cb5250ec0c1a60c24.tar
nixlib-92eaff008e90c982b095275cb5250ec0c1a60c24.tar.gz
nixlib-92eaff008e90c982b095275cb5250ec0c1a60c24.tar.bz2
nixlib-92eaff008e90c982b095275cb5250ec0c1a60c24.tar.lz
nixlib-92eaff008e90c982b095275cb5250ec0c1a60c24.tar.xz
nixlib-92eaff008e90c982b095275cb5250ec0c1a60c24.tar.zst
nixlib-92eaff008e90c982b095275cb5250ec0c1a60c24.zip
Added derivation for google ceres-solver optimization library for C++
Diffstat (limited to 'pkgs/development/libraries/ceres-solver')
-rw-r--r--pkgs/development/libraries/ceres-solver/default.nix51
1 files changed, 51 insertions, 0 deletions
diff --git a/pkgs/development/libraries/ceres-solver/default.nix b/pkgs/development/libraries/ceres-solver/default.nix
new file mode 100644
index 000000000000..4dce56a8f1ab
--- /dev/null
+++ b/pkgs/development/libraries/ceres-solver/default.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, eigen
+, fetchurl
+, cmake
+, google-gflags ? null
+, glog ? null
+, runTests ? false
+}:
+
+# google-gflags is required to run tests
+assert runTests -> google-gflags != null;
+
+let
+  version = "1.10.0";
+
+  # glog currently doesn't build on darwin
+  # Issue: https://code.google.com/p/google-glog/issues/detail?id=121
+  useGlog = glog != null && !stdenv.isDarwin;
+
+in
+stdenv.mkDerivation {
+  name = "ceres-solver-${version}";
+
+  src = fetchurl {
+    url = "http://ceres-solver.org/ceres-solver-${version}.tar.gz";
+    sha256 = "20bb5db05c3e3e14a4062e2cf2b0742d2653359549ecded3e0653104ef3deb17";
+  };
+
+  buildInputs = [ cmake ]
+    ++ stdenv.lib.optional useGlog glog
+    ++ stdenv.lib.optional (google-gflags != null) google-gflags;
+
+  inherit eigen;
+
+  doCheck = runTests;
+
+  checkTarget = "test";
+
+  cmakeFlags = "
+    -DEIGEN_INCLUDE_DIR=${eigen}/include/eigen3
+    ${if !useGlog then "-DMINIGLOG=ON" else ""}
+  ";
+
+  meta = with stdenv.lib; {
+    description = "C++ library for modeling and solving large, complicated optimization problems";
+    license = licenses.bsd3;
+    homepage = "http://ceres-solver.org";
+    maintainers = with stdenv.lib.maintainers; [ giogadi ];
+    inherit version;
+  };
+}