diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/openjpeg')
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; + }; +} |