nixpkgs/pkgs/applications/graphics/hdrmerge/default.nix
stuebinm ff1a94e523 treewide: add meta.mainProgram to packages with a single binary
The nixpkgs-unstable channel's programs.sqlite was used to identify
packages producing exactly one binary, and these automatically added
to their package definitions wherever possible.
2024-03-19 03:14:51 +01:00

81 lines
1.8 KiB
Nix

{ lib
, mkDerivation
, fetchpatch
, fetchFromGitHub
, cmake
, qtbase
, wrapQtAppsHook
, libraw
, exiv2
, zlib
, alglib
, pkg-config
, makeDesktopItem
, copyDesktopItems
}:
mkDerivation rec {
pname = "hdrmerge";
version = "unstable-2023-01-04";
src = fetchFromGitHub {
owner = "jcelaya";
repo = "hdrmerge";
rev = "ca38b54f980564942a7f2b014a5f57a64c1d9019";
hash = "sha256-DleYgpDXP0NvbmEURXnBfe3OYnT1CaQq+Mw93JQQprE=";
};
nativeBuildInputs = [
cmake
pkg-config
wrapQtAppsHook
copyDesktopItems
];
buildInputs = [ qtbase libraw exiv2 zlib alglib ];
cmakeFlags = [
"-DALGLIB_DIR:PATH=${alglib}"
];
CXXFLAGS = [
# GCC 13: error: 'uint32_t' does not name a type
"-include cstdint"
];
patches = [
# https://github.com/jcelaya/hdrmerge/pull/222
(fetchpatch {
name = "exiv2-0.28.patch";
url = "https://github.com/jcelaya/hdrmerge/commit/377d8e6f3c7cdd1a45b63bce2493ad177dde03fb.patch";
hash = "sha256-lXHML6zGkVeWKvmY5ECoJL2xjmtZz77XJd5prpgJiZo=";
})
];
desktopItems = [
(makeDesktopItem {
name = "HDRMerge";
genericName = "HDR raw image merge";
desktopName = "HDRMerge";
comment = meta.description;
icon = "hdrmerge";
exec = "hdrmerge %F";
categories = [ "Graphics" ];
mimeTypes = [ "image/x-dcraw" "image/x-adobe-dng" ];
terminal = false;
})
];
postInstall = ''
install -Dm444 ../data/images/icon.png $out/share/icons/hicolor/128x128/apps/hdrmerge.png
'';
meta = with lib; {
homepage = "https://github.com/jcelaya/hdrmerge";
description = "Combines two or more raw images into an HDR";
mainProgram = "hdrmerge";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = [ maintainers.paperdigits ];
};
}