about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/openjpeg
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/openjpeg')
-rw-r--r--nixpkgs/pkgs/development/libraries/openjpeg/1.x.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/openjpeg/2.x.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/openjpeg/fix-cmake-config-includedir.patch55
-rw-r--r--nixpkgs/pkgs/development/libraries/openjpeg/generic.nix76
4 files changed, 156 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/openjpeg/1.x.nix b/nixpkgs/pkgs/development/libraries/openjpeg/1.x.nix
new file mode 100644
index 000000000000..dfa5605dec8b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/openjpeg/1.x.nix
@@ -0,0 +1,8 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "1.5.2";
+  branch = "1.5";
+  revision = "version.1.5.2";
+  sha256 = "1dvvpvb597i5z8srz2v4c5dsbxb966h125jx3m2z0r2gd2wvpfkp";
+})
diff --git a/nixpkgs/pkgs/development/libraries/openjpeg/2.x.nix b/nixpkgs/pkgs/development/libraries/openjpeg/2.x.nix
new file mode 100644
index 000000000000..e865e2e8549d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/openjpeg/2.x.nix
@@ -0,0 +1,17 @@
+{ callPackage, fetchpatch, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "2.3.1";
+  branch = "2.3";
+  revision = "v${version}";
+  sha256 = "1dn98d2dfa1lqyxxmab6rrcv52dyhjr4g7i4xf2w54fqsx14ynrb";
+
+  extraFlags = [
+    "-DOPENJPEG_INSTALL_INCLUDE_DIR=${placeholder "dev"}/include/openjpeg-${branch}"
+    "-DOPENJPEG_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/openjpeg-${branch}"
+  ];
+
+  patches = [
+    ./fix-cmake-config-includedir.patch
+  ];
+})
diff --git a/nixpkgs/pkgs/development/libraries/openjpeg/fix-cmake-config-includedir.patch b/nixpkgs/pkgs/development/libraries/openjpeg/fix-cmake-config-includedir.patch
new file mode 100644
index 000000000000..6ff720ead4e1
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/openjpeg/fix-cmake-config-includedir.patch
@@ -0,0 +1,55 @@
+--- a/cmake/OpenJPEGConfig.cmake.in
++++ b/cmake/OpenJPEGConfig.cmake.in
+@@ -32,7 +32,7 @@
+   set(INC_DIR "@CMAKE_INSTALL_PREFIX@/@OPENJPEG_INSTALL_INCLUDE_DIR@")
+   file(RELATIVE_PATH PKG_TO_INC_RPATH "${PKG_DIR}" "${INC_DIR}")
+ 
+-  get_filename_component(OPENJPEG_INCLUDE_DIRS "${SELF_DIR}/${PKG_TO_INC_RPATH}" ABSOLUTE)
++  get_filename_component(OPENJPEG_INCLUDE_DIRS "@OPENJPEG_INSTALL_INCLUDE_DIR@" ABSOLUTE)
+ 
+ else()
+   if(EXISTS ${SELF_DIR}/OpenJPEGExports.cmake)
+--- a/src/lib/openjp2/libopenjp2.pc.cmake.in
++++ b/src/lib/openjp2/libopenjp2.pc.cmake.in
+@@ -3,7 +3,7 @@
+ mandir=${prefix}/@OPENJPEG_INSTALL_MAN_DIR@
+ docdir=${prefix}/@OPENJPEG_INSTALL_DOC_DIR@
+ libdir=${prefix}/@OPENJPEG_INSTALL_LIB_DIR@
+-includedir=${prefix}/@OPENJPEG_INSTALL_INCLUDE_DIR@
++includedir=@OPENJPEG_INSTALL_INCLUDE_DIR@
+ 
+ Name: openjp2
+ Description: JPEG2000 library (Part 1 and 2)
+--- a/src/lib/openjp3d/libopenjp3d.pc.cmake.in
++++ b/src/lib/openjp3d/libopenjp3d.pc.cmake.in
+@@ -3,7 +3,7 @@
+ mandir=${prefix}/@OPENJPEG_INSTALL_MAN_DIR@
+ docdir=${prefix}/@OPENJPEG_INSTALL_DOC_DIR@
+ libdir=${prefix}/@OPENJPEG_INSTALL_LIB_DIR@
+-includedir=${prefix}/@OPENJPEG_INSTALL_INCLUDE_DIR@
++includedir=@OPENJPEG_INSTALL_INCLUDE_DIR@
+ 
+ Name: openjp3d
+ Description: JPEG2000 Extensions for three-dimensional data (Part 10)
+--- a/src/lib/openjpip/libopenjpip.pc.cmake.in
++++ b/src/lib/openjpip/libopenjpip.pc.cmake.in
+@@ -3,7 +3,7 @@
+ mandir=${prefix}/@OPENJPEG_INSTALL_MAN_DIR@
+ docdir=${prefix}/@OPENJPEG_INSTALL_DOC_DIR@
+ libdir=${prefix}/@OPENJPEG_INSTALL_LIB_DIR@
+-includedir=${prefix}/@OPENJPEG_INSTALL_INCLUDE_DIR@
++includedir=@OPENJPEG_INSTALL_INCLUDE_DIR@
+ 
+ Name: openjpip
+ Description: JPEG2000 Interactivity tools, APIs and protocols (Part 9)
+--- a/src/lib/openjpwl/libopenjpwl.pc.cmake.in
++++ b/src/lib/openjpwl/libopenjpwl.pc.cmake.in
+@@ -3,7 +3,7 @@
+ mandir=${prefix}/@OPENJPEG_INSTALL_MAN_DIR@
+ docdir=${prefix}/@OPENJPEG_INSTALL_DOC_DIR@
+ libdir=${prefix}/@OPENJPEG_INSTALL_LIB_DIR@
+-includedir=${prefix}/@OPENJPEG_INSTALL_INCLUDE_DIR@
++includedir=@OPENJPEG_INSTALL_INCLUDE_DIR@
+ 
+ Name: openjpwl
+ Description: JPEG2000 Wireless library (Part 11)
diff --git a/nixpkgs/pkgs/development/libraries/openjpeg/generic.nix b/nixpkgs/pkgs/development/libraries/openjpeg/generic.nix
new file mode 100644
index 000000000000..d3130a64b030
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/openjpeg/generic.nix
@@ -0,0 +1,76 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, libpng, libtiff, lcms2
+, mj2Support ? true # MJ2 executables
+, jpwlLibSupport ? true # JPWL library & executables
+, jpipLibSupport ? false # JPIP library & executables
+, jpipServerSupport ? false, curl ? null, fcgi ? null # JPIP Server
+#, opjViewerSupport ? false, wxGTK ? null # OPJViewer executable
+, openjpegJarSupport ? false # Openjpeg jar (Java)
+, jp3dSupport ? true # # JP3D comp
+, thirdPartySupport ? false # Third party libraries - OFF: only build when found, ON: always build
+, testsSupport ? false
+, jdk ? null
+# Inherit generics
+, branch, version, revision, sha256, patches ? [], extraFlags ? [], ...
+}:
+
+assert jpipServerSupport -> jpipLibSupport && curl != null && fcgi != null;
+#assert opjViewerSupport -> (wxGTK != null);
+assert (openjpegJarSupport || jpipLibSupport) -> jdk != null;
+
+let
+  inherit (stdenv.lib) optional optionals;
+  mkFlag = optSet: flag: "-D${flag}=${if optSet then "ON" else "OFF"}";
+in
+
+stdenv.mkDerivation rec {
+  name = "openjpeg-${version}";
+
+  src = fetchFromGitHub {
+    owner = "uclouvain";
+    repo = "openjpeg";
+    rev = revision;
+    inherit sha256;
+  };
+
+  inherit patches;
+
+  outputs = [ "out" "dev" ];
+
+  cmakeFlags = [
+    "-DCMAKE_INSTALL_NAME_DIR=\${CMAKE_INSTALL_PREFIX}/lib"
+    "-DBUILD_SHARED_LIBS=ON"
+    "-DBUILD_CODEC=ON"
+    (mkFlag mj2Support "BUILD_MJ2")
+    (mkFlag jpwlLibSupport "BUILD_JPWL")
+    (mkFlag jpipLibSupport "BUILD_JPIP")
+    (mkFlag jpipServerSupport "BUILD_JPIP_SERVER")
+    #(mkFlag opjViewerSupport "BUILD_VIEWER")
+    "-DBUILD_VIEWER=OFF"
+    (mkFlag openjpegJarSupport "BUILD_JAVA")
+    (mkFlag jp3dSupport "BUILD_JP3D")
+    (mkFlag thirdPartySupport "BUILD_THIRDPARTY")
+    (mkFlag testsSupport "BUILD_TESTING")
+  ] ++ extraFlags;
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [ ]
+    ++ optionals jpipServerSupport [ curl fcgi ]
+    #++ optional opjViewerSupport wxGTK
+    ++ optional (openjpegJarSupport || jpipLibSupport) jdk;
+
+  propagatedBuildInputs = [ libpng libtiff lcms2 ];
+
+  passthru = {
+    incDir = "openjpeg-${branch}";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Open-source JPEG 2000 codec written in C language";
+    homepage = http://www.openjpeg.org/;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ codyopel ];
+    platforms = platforms.all;
+  };
+}