summary refs log tree commit diff
path: root/pkgs/development/libraries/openjpeg
diff options
context:
space:
mode:
authorcodyopel <codyopel@gmail.com>2015-02-20 22:20:19 -0500
committercodyopel <codyopel@gmail.com>2015-02-20 22:20:19 -0500
commitf10a8f8501b789dbc7c4e13badf0301c498a3deb (patch)
tree50d9afb12711847f4656a88356ff50cc88fe9994 /pkgs/development/libraries/openjpeg
parent1aed33f68b055180d0d52ff04699b0ca0ab05257 (diff)
downloadnixpkgs-f10a8f8501b789dbc7c4e13badf0301c498a3deb.tar
nixpkgs-f10a8f8501b789dbc7c4e13badf0301c498a3deb.tar.gz
nixpkgs-f10a8f8501b789dbc7c4e13badf0301c498a3deb.tar.bz2
nixpkgs-f10a8f8501b789dbc7c4e13badf0301c498a3deb.tar.lz
nixpkgs-f10a8f8501b789dbc7c4e13badf0301c498a3deb.tar.xz
nixpkgs-f10a8f8501b789dbc7c4e13badf0301c498a3deb.tar.zst
nixpkgs-f10a8f8501b789dbc7c4e13badf0301c498a3deb.zip
openjpeg: refactor to generic, add 1.x & 2.0.0 -> 2.1.0
Diffstat (limited to 'pkgs/development/libraries/openjpeg')
-rw-r--r--pkgs/development/libraries/openjpeg/1.x.nix7
-rw-r--r--pkgs/development/libraries/openjpeg/2.x.nix7
-rw-r--r--pkgs/development/libraries/openjpeg/default.nix40
-rw-r--r--pkgs/development/libraries/openjpeg/generic.nix87
4 files changed, 101 insertions, 40 deletions
diff --git a/pkgs/development/libraries/openjpeg/1.x.nix b/pkgs/development/libraries/openjpeg/1.x.nix
new file mode 100644
index 00000000000..2147bab0a6a
--- /dev/null
+++ b/pkgs/development/libraries/openjpeg/1.x.nix
@@ -0,0 +1,7 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "${branch}.2";
+  branch = "1.5";
+  sha256 = "11waq9w215zvzxrpv40afyd18qf79mxc28fda80bm3ax98cpppqm";
+})
diff --git a/pkgs/development/libraries/openjpeg/2.x.nix b/pkgs/development/libraries/openjpeg/2.x.nix
new file mode 100644
index 00000000000..f6b3ce3a9cd
--- /dev/null
+++ b/pkgs/development/libraries/openjpeg/2.x.nix
@@ -0,0 +1,7 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "${branch}.0";
+  branch = "2.1";
+  sha256 = "00zzm303zvv4ijzancrsb1cqbph3pgz0nky92k9qx3fq9y0vnchj";
+})
diff --git a/pkgs/development/libraries/openjpeg/default.nix b/pkgs/development/libraries/openjpeg/default.nix
deleted file mode 100644
index 7f23929efb0..00000000000
--- a/pkgs/development/libraries/openjpeg/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, libpng, libtiff, lcms, cmake, glib/*passthru only*/ }:
-
-stdenv.mkDerivation rec {
-  name = "openjpeg-2.0.0";
-  passthru = {
-    incDir = "openjpeg-2.0";
-  };
-
-  src = fetchurl {
-    url = "http://openjpeg.googlecode.com/files/${name}.tar.gz";
-    sha1 = "0af78ab2283b43421458f80373422d8029a9f7a7";
-  };
-
-  buildInputs = [ cmake ];
-  nativebuildInputs = [ pkgconfig ];
-  propagatedBuildInputs = [ libpng libtiff lcms ]; # in closure anyway
-
-  postInstall = glib.flattenInclude + ''
-    mkdir -p "$out/lib/pkgconfig"
-    cat >"$out/lib/pkgconfig/libopenjp2.pc" <<EOF
-    prefix=$out
-    libdir=$out/lib
-    includedir=$out/include
-
-    Name: openjp2
-    Description: JPEG2000 library (Part 1 and 2)
-    URL: http://www.openjpeg.org/
-    Version: @OPENJPEG_VERSION@
-    Libs: -L$out/lib -lopenjp2
-    Cflags: -I$out/include
-    EOF
-  '';
-
-  meta = {
-    homepage = http://www.openjpeg.org/;
-    description = "Open-source JPEG 2000 codec written in C language";
-    license = stdenv.lib.licenses.bsd2;
-    platforms = stdenv.lib.platforms.all;
-  };
-}
diff --git a/pkgs/development/libraries/openjpeg/generic.nix b/pkgs/development/libraries/openjpeg/generic.nix
new file mode 100644
index 00000000000..4418ecd1fd0
--- /dev/null
+++ b/pkgs/development/libraries/openjpeg/generic.nix
@@ -0,0 +1,87 @@
+{ stdenv, fetchurl, cmake, pkgconfig, libpng, libtiff, lcms2, glib/*passthru only*/
+, sharedLibsSupport ? true # Build shared libraries
+, codecSupport ? true # Codec executables
+, mj2Support ? true # MJ2 executables
+, jpwlLibSupport ? true # JPWL library & executables
+, jpipLibSupport ? true # JPIP library & executables
+, jpipServerSupport ? false, curl ? null, fcgi ? null # JPIP Server
+#, opjViewerSupport ? false, wxGTK ? null # OPJViewer executable
+, openjpegJarSupport ? false, jdk ? null # Openjpeg jar (Java)
+, jp3dSupport ? true # # JP3D comp
+, thirdPartySupport ? false # Third party libraries - OFF: only build when found, ON: always build
+, testsSupport ? false
+# Inherit generics
+, branch, sha256, version, ...
+}:
+
+assert jpipServerSupport -> (jpipLibSupport && (curl != null) && (fcgi != null));
+#assert opjViewerSupport -> (wxGTK != null);
+assert openjpegJarSupport -> (jdk != null);
+assert testsSupport -> codecSupport;
+
+let
+  mkFlag = optSet: flag: if optSet then "-D${flag}=ON" else "-D${flag}=OFF";
+in
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "openjpeg-${version}";
+  inherit branch;
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://gentoo/distfiles/${name}.tar.gz";
+    inherit sha256;
+  };
+
+  cmakeFlags = [
+    (mkFlag sharedLibsSupport "BUILD_SHARED_LIBS")
+    (mkFlag codecSupport "BUILD_CODEC")
+    (mkFlag mj2Support "BUILD_MJ2")
+    (mkFlag jpwlLibSupport "BUILD_JPWL")
+    (mkFlag jpipLibSupport "BUILD_JPIP")
+    (mkFlag jpipServerSupport "BUILD_JPIP_SERVER")
+    #(mkFlag opjViewerSupport "BUILD_VIEWER")
+    (mkFlag openjpegJarSupport "BUILD_JAVA")
+    (mkFlag jp3dSupport "BUILD_JP3D")
+    (mkFlag thirdPartySupport "BUILD_THIRDPARTY")
+    (mkFlag testsSupport "BUILD_TESTING")
+  ];
+
+  nativebuildInputs = [ pkgconfig ];
+
+  buildInputs = [ cmake ]
+    ++ optionals jpipServerSupport [ curl fcgi ]
+    #++ optional opjViewerSupport wxGTK
+    ++ optional openjpegJarSupport jdk;
+
+  propagatedBuildInputs = [ libpng libtiff lcms2 ];
+
+  postInstall = glib.flattenInclude + ''
+    mkdir -p "$out/lib/pkgconfig"
+    cat > "$out/lib/pkgconfig/libopenjp2.pc" <<EOF
+    prefix=$out
+    libdir=$out/lib
+    includedir=$out/include
+
+    Name: openjp2
+    Description: JPEG2000 library (Part 1 and 2)
+    URL: http://www.openjpeg.org/
+    Version: @OPENJPEG_VERSION@
+    Libs: -L$out/lib -lopenjp2
+    Cflags: -I$out/include
+    EOF
+  '';
+
+  passthru = {
+    incDir = "openjpeg-${branch}";
+  };
+
+  meta = {
+    description = "Open-source JPEG 2000 codec written in C language";
+    homepage    = http://www.openjpeg.org/;
+    license     = licenses.bsd2;
+    maintainer  = with maintainers; [ codyopel ];
+    platforms   = platforms.all;
+  };
+}