From f191a4f98fb872dcbe07738d6879be3ec9ed597b Mon Sep 17 00:00:00 2001 From: aleksana Date: Wed, 27 Mar 2024 22:47:08 +0800 Subject: [PATCH] pdf4qt: init at 1.3.7 --- pkgs/by-name/pd/pdf4qt/find_lcms2_path.patch | 21 ++++++ pkgs/by-name/pd/pdf4qt/package.nix | 67 ++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 pkgs/by-name/pd/pdf4qt/find_lcms2_path.patch create mode 100644 pkgs/by-name/pd/pdf4qt/package.nix diff --git a/pkgs/by-name/pd/pdf4qt/find_lcms2_path.patch b/pkgs/by-name/pd/pdf4qt/find_lcms2_path.patch new file mode 100644 index 00000000000000..eb38b07feb45b6 --- /dev/null +++ b/pkgs/by-name/pd/pdf4qt/find_lcms2_path.patch @@ -0,0 +1,21 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 98752ec..aa029b3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -55,7 +55,15 @@ endif() + qt_standard_project_setup() + + find_package(OpenSSL REQUIRED) +-find_package(lcms REQUIRED) ++SET(LCMS2_NAMES ${LCMS2_NAMES} lcms2 liblcms2 liblcms2_static) ++FIND_LIBRARY(LCMS2_LIBRARY NAMES ${LCMS2_NAMES} ) ++FIND_PATH(LCMS2_INCLUDE_DIR lcms2.h) ++add_library(lcms2::lcms2 UNKNOWN IMPORTED) ++set_target_properties(lcms2::lcms2 PROPERTIES ++ IMPORTED_LOCATION ${LCMS2_LIBRARY} ++ INTERFACE_INCLUDE_DIRECTORIES ${LCMS2_INCLUDE_DIR} ++ INTERFACE_COMPILE_DEFINITIONS "HAVE_LCMS2=1;CMS_NO_REGISTER_KEYWORD=1") ++set_property(GLOBAL APPEND PROPERTY INTERNAL_DEPS_PROP lcms2::lcms2) + find_package(ZLIB REQUIRED) + find_package(Freetype REQUIRED) + find_package(OpenJPEG CONFIG REQUIRED) diff --git a/pkgs/by-name/pd/pdf4qt/package.nix b/pkgs/by-name/pd/pdf4qt/package.nix new file mode 100644 index 00000000000000..95152518f7994d --- /dev/null +++ b/pkgs/by-name/pd/pdf4qt/package.nix @@ -0,0 +1,67 @@ +{ lib +, stdenv +, fetchFromGitHub +, substituteAll +, lcms +, cmake +, pkg-config +, qt6 +, openjpeg +, tbb_2021_8 +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "pdf4qt"; + version = "1.3.7"; + + src = fetchFromGitHub { + owner = "JakubMelka"; + repo = "PDF4QT"; + rev = "v${finalAttrs.version}"; + hash = "sha256-wZJDMLEaHGBPSToQ+ObSfB5tw/fTIX1i5tmNPmIa7Ck="; + }; + + patches = [ + # lcms2 cmake module only appears when built with vcpkg. + # We directly search for the corresponding libraries and + # header files instead. + ./find_lcms2_path.patch + ]; + + nativeBuildInputs = [ + cmake + pkg-config + qt6.qttools + qt6.wrapQtAppsHook + ]; + + buildInputs = [ + qt6.qtbase + qt6.qtwayland + qt6.qtsvg + qt6.qtspeech + lcms + openjpeg + tbb_2021_8 + ]; + + cmakeFlags = [ + (lib.cmakeBool "PDF4QT_INSTALL_TO_USR" false) + ]; + + meta = { + description = "Open source PDF editor"; + longDescription = '' + This software is consisting of PDF rendering library, + and several applications, such as advanced document + viewer, command line tool, and document page + manipulator application. Software is implementing PDF + functionality based on PDF Reference 2.0. + ''; + homepage = "https://jakubmelka.github.io"; + license = lib.licenses.lgpl3Only; + mainProgram = "Pdf4QtViewerLite"; + maintainers = with lib.maintainers; [ aleksana ]; + platforms = lib.platforms.linux; + }; +})