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/default.nix67
1 files changed, 67 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/openjpeg/default.nix b/nixpkgs/pkgs/development/libraries/openjpeg/default.nix
new file mode 100644
index 000000000000..12b05df234d8
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/openjpeg/default.nix
@@ -0,0 +1,67 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config
+, libdeflate, libpng, libtiff, zlib, lcms2, jpylyzer
+, jpipLibSupport ? false # JPIP library & executables
+, jpipServerSupport ? false, curl, fcgi # JPIP Server
+, jdk
+, poppler
+}:
+
+let
+  mkFlag = optSet: flag: "-D${flag}=${if optSet then "ON" else "OFF"}";
+in
+
+stdenv.mkDerivation rec {
+  pname = "openjpeg";
+  version = "2.5.2";
+
+  src = fetchFromGitHub {
+    owner = "uclouvain";
+    repo = "openjpeg";
+    rev = "v${version}";
+    hash = "sha256-mQ9B3MJY2/bg0yY/7jUJrAXM6ozAHT5fmwES5Q1SGxw=";
+  };
+
+  outputs = [ "out" "dev" ];
+
+  cmakeFlags = [
+    "-DCMAKE_INSTALL_NAME_DIR=\${CMAKE_INSTALL_PREFIX}/lib"
+    "-DBUILD_SHARED_LIBS=ON"
+    "-DBUILD_CODEC=ON"
+    "-DBUILD_THIRDPARTY=OFF"
+    (mkFlag jpipLibSupport "BUILD_JPIP")
+    (mkFlag jpipServerSupport "BUILD_JPIP_SERVER")
+    "-DBUILD_VIEWER=OFF"
+    "-DBUILD_JAVA=OFF"
+    (mkFlag doCheck "BUILD_TESTING")
+  ];
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ libpng libtiff zlib lcms2 ]
+    ++ lib.optionals jpipServerSupport [ curl fcgi ]
+    ++ lib.optional (jpipLibSupport) jdk;
+
+  doCheck = (!stdenv.isAarch64 && !stdenv.hostPlatform.isPower64); # tests fail on aarch64-linux and powerpc64
+  nativeCheckInputs = [ jpylyzer ];
+  checkPhase = ''
+    substituteInPlace ../tools/ctest_scripts/travis-ci.cmake \
+      --replace "JPYLYZER_EXECUTABLE=" "JPYLYZER_EXECUTABLE=\"$(command -v jpylyzer)\" # "
+    OPJ_SOURCE_DIR=.. ctest -S ../tools/ctest_scripts/travis-ci.cmake
+  '';
+
+  passthru = {
+    incDir = "openjpeg-${lib.versions.majorMinor version}";
+    tests = {
+      inherit poppler;
+    };
+  };
+
+  meta = with lib; {
+    description = "Open-source JPEG 2000 codec written in C language";
+    homepage = "https://www.openjpeg.org/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ codyopel ];
+    platforms = platforms.all;
+    changelog = "https://github.com/uclouvain/openjpeg/blob/v${version}/CHANGELOG.md";
+  };
+}