From de64c6f296ea6f89b29e59dadc03b13824ad2d26 Mon Sep 17 00:00:00 2001
From: Chris Hodapp <hodapp87@gmail.com>
Date: Thu, 21 Jun 2018 16:58:34 -0400
Subject: [PATCH] libfive: init at 2018-07-01

---
 .../development/libraries/libfive/default.nix | 30 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 ++
 2 files changed, 32 insertions(+)
 create mode 100644 pkgs/development/libraries/libfive/default.nix

diff --git a/pkgs/development/libraries/libfive/default.nix b/pkgs/development/libraries/libfive/default.nix
new file mode 100644
index 000000000000..2c3085fc384f
--- /dev/null
+++ b/pkgs/development/libraries/libfive/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, cmake, ninja, pkgconfig, eigen3_3,
+zlib, libpng, boost, qt5, guile
+}:
+
+stdenv.mkDerivation rec {
+  name = "libfive-${version}";
+  version = "2018-07-01";
+
+  src = fetchFromGitHub {
+    owner  = "libfive";
+    repo   = "libfive";
+    rev    = "0f517dde9521d751310a22f85ee69b2c84690267";
+    sha256 = "0bfxysf5f4ripgcv546il8wnw5p0d4s75kdjlwvj32549537hlz0";
+  };
+  nativeBuildInputs = [ cmake ninja pkgconfig ];
+  buildInputs = [ eigen3_3 zlib libpng boost qt5.qtimageformats guile ];
+
+  # Link "Studio" binary to "libfive-studio" to be more obvious:
+  postFixup = ''
+    ln -s "$out/bin/Studio" "$out/bin/libfive-studio"
+  '';
+  
+  meta = with stdenv.lib; {
+    description = "Infrastructure for solid modeling with F-Reps in C, C++, and Guile";
+    homepage = https://libfive.com/;
+    maintainers = with maintainers; [ hodapp ];
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index dfa2a3b66967..f468c2b8d9f6 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -10158,6 +10158,8 @@ with pkgs;
 
   libf2c = callPackage ../development/libraries/libf2c {};
 
+  libfive = callPackage ../development/libraries/libfive {};
+
   libfixposix = callPackage ../development/libraries/libfixposix {};
 
   libffcall = callPackage ../development/libraries/libffcall { };