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 000000000000000..eb38b07feb45b6e --- /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 000000000000000..352c26a6a80c46f --- /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 = [ + # Finding lcms2 directly is only supported when building with + # vcpkg. This patch allows it to directly search for the + # corresponding libraries and header files. + ./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; + }; +})