nixos/uptime-kuma: Add additional lockdown settings to systemd unit (#361452)
[NixPkgs.git] / pkgs / by-name / no / nomacs / package.nix
blob4c8a1465fc61d30741e2d87be8bf5cfa97f46800
1 { lib
2 , cmake
3 , exiv2
4 , fetchFromGitHub
5 , libraw
6 , libsForQt5
7 , libtiff
8 , opencv4
9 , pkg-config
10 , stdenv
13 stdenv.mkDerivation (finalAttrs: {
14   pname = "nomacs";
15   version = "3.19.1";
17   src = fetchFromGitHub {
18     owner = "nomacs";
19     repo = "nomacs";
20     rev = finalAttrs.version;
21     fetchSubmodules = false; # We'll use our own
22     hash = "sha256-NRwZ/ShJaLCMFv7QdfRoJY5zQFo18cAVWGRpS3ap3Rw=";
23   };
25   outputs = [ "out" ]
26     # man pages are not installed on Darwin, see cmake/{Mac,Unix}BuildTarget.cmake
27     ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ "man" ];
29   sourceRoot = "${finalAttrs.src.name}/ImageLounge";
31   nativeBuildInputs = [
32     cmake
33     libsForQt5.wrapQtAppsHook
34     pkg-config
35   ];
37   buildInputs = [
38     exiv2
39     libraw
40     libtiff
41     # Once python stops relying on `propagatedBuildInputs` (https://github.com/NixOS/nixpkgs/issues/272178), deprecate `cxxdev` and switch to `dev`;
42     # note `dev` is selected by `mkDerivation` automatically, so one should omit `getOutput "dev"`;
43     # see: https://github.com/NixOS/nixpkgs/pull/314186#issuecomment-2129974277
44     (lib.getOutput "cxxdev" opencv4)
45   ] ++ (with libsForQt5; [
46     kimageformats
47     qtbase
48     qtimageformats
49     qtsvg
50     qttools
51     quazip
52   ]);
54   cmakeFlags = [
55     (lib.cmakeBool "ENABLE_OPENCV" true)
56     (lib.cmakeBool "ENABLE_QUAZIP" true)
57     (lib.cmakeBool "ENABLE_RAW" true)
58     (lib.cmakeBool "ENABLE_TIFF" true)
59     (lib.cmakeBool "ENABLE_TRANSLATIONS" true)
60     (lib.cmakeBool "USE_SYSTEM_QUAZIP" true)
61   ];
63   postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
64     mkdir -p $out/{Applications,lib}
65     mv $out/nomacs.app $out/Applications/nomacs.app
66     mv $out/libnomacsCore.dylib $out/lib/libnomacsCore.dylib
67   '';
69   meta = {
70     homepage = "https://nomacs.org";
71     description = "Qt-based image viewer";
72     longDescription = ''
73       nomacs is a free, open source image viewer, which supports multiple
74       platforms. You can use it for viewing all common image formats including
75       RAW and psd images.
77       nomacs features semi-transparent widgets that display additional
78       information such as thumbnails, metadata or histogram. It is able to
79       browse images in zip or MS Office files which can be extracted to a
80       directory. Metadata stored with the image can be displayed and you can add
81       notes to images. A thumbnail preview of the current folder is included as
82       well as a file explorer panel which allows switching between
83       folders. Within a directory you can apply a file filter, so that only
84       images are displayed whose filenames have a certain string or match a
85       regular expression. Activating the cache allows for instantly switching
86       between images.
87     '';
88     changelog = "https://github.com/nomacs/nomacs/releases/tag/${finalAttrs.src.rev}";
89     license = with lib.licenses; [ gpl3Plus ];
90     mainProgram = "nomacs";
91     maintainers = with lib.maintainers; [ mindavi ];
92     inherit (libsForQt5.qtbase.meta) platforms;
93   };