2021-12-18 08:16:34 +00:00
|
|
|
{ stdenv, lib, fetchFromGitHub, qtbase, qt3d, qmake, wrapQtAppsHook, harfbuzz
|
|
|
|
, pkgconfig, mupdf, zlib, freetype, libGLU, gumbo, jbig2dec, openjpeg_2 }:
|
|
|
|
|
|
|
|
stdenv.mkDerivation rec {
|
|
|
|
pname = "sioyek";
|
2022-02-26 06:21:51 +00:00
|
|
|
version = "1.1.0";
|
2021-12-18 08:16:34 +00:00
|
|
|
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "ahrm";
|
|
|
|
repo = pname;
|
|
|
|
rev = "v${version}";
|
2022-02-26 06:21:51 +00:00
|
|
|
sha256 = "sha256-d9Cm77SjjDnF1C/qT2J3ywUqedpDYnfzKq+ohirn2eM=";
|
2021-12-18 08:16:34 +00:00
|
|
|
fetchSubmodules = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
nativeBuildInputs = [ qmake wrapQtAppsHook pkgconfig ];
|
|
|
|
|
|
|
|
buildInputs = [
|
|
|
|
qtbase
|
|
|
|
qt3d
|
|
|
|
harfbuzz
|
|
|
|
|
|
|
|
# Replacing the application's vendored dependencies with the system
|
|
|
|
# libraries.
|
|
|
|
mupdf
|
|
|
|
zlib
|
|
|
|
|
|
|
|
# Since we're using libraries from the system, we'll also have to
|
|
|
|
# link several libraries from the application manually.
|
|
|
|
gumbo
|
|
|
|
jbig2dec
|
|
|
|
openjpeg_2
|
|
|
|
];
|
|
|
|
|
|
|
|
postPatch = ''
|
|
|
|
substituteInPlace pdf_viewer_build_config.pro \
|
|
|
|
--replace "-Lmupdf/build/release -lmupdf -lmupdf-third -lmupdf-threads" "-L${mupdf.dev}/lib -lmupdf -lmupdf-third -lharfbuzz -lfreetype -lgumbo -ljbig2dec -lopenjp2 -ljpeg" \
|
|
|
|
--replace 'INCLUDEPATH += ./pdf_viewer\' 'INCLUDEPATH += ./pdf_viewer ${mupdf.dev}/include ${zlib.dev}/include'
|
|
|
|
|
|
|
|
# Remove and replace it with packages from nixpkgs
|
|
|
|
sed -i -e '4,6d' pdf_viewer_build_config.pro
|
|
|
|
'' + lib.optionalString stdenv.isLinux ''
|
|
|
|
substituteInPlace pdf_viewer/main.cpp \
|
|
|
|
--replace "/usr/share/sioyek" "$out/share/sioyek" \
|
|
|
|
--replace "/etc/sioyek" "$out/etc/sioyek"
|
|
|
|
'';
|
|
|
|
|
2022-01-12 02:46:25 +00:00
|
|
|
qmakeFlags = lib.optional stdenv.isLinux "DEFINES+=LINUX_STANDARD_PATHS";
|
2021-12-18 08:16:34 +00:00
|
|
|
|
|
|
|
preBuild = ''
|
|
|
|
# Remove and replace it with packages from nixpkgs.
|
|
|
|
rm -r mupdf zlib
|
|
|
|
'';
|
|
|
|
|
|
|
|
# Taken from `build_linux.sh` script.
|
|
|
|
postInstall = ''
|
|
|
|
install -Dm644 tutorial.pdf -t $out/share/sioyek
|
|
|
|
install -Dm644 pdf_viewer/shaders/* -t $out/share/sioyek/shaders
|
|
|
|
install -Dm644 pdf_viewer/keys.config -t $out/etc/sioyek
|
|
|
|
install -Dm644 pdf_viewer/prefs.config -t $out/etc/sioyek
|
|
|
|
install -Dm644 pdf_viewer/keys_user.config -t $out/share/sioyek
|
|
|
|
install -Dm644 pdf_viewer/prefs_user.config -t $out/share/sioyek
|
|
|
|
'';
|
|
|
|
|
|
|
|
meta = with lib; {
|
|
|
|
description =
|
|
|
|
"PDF viewer designed for reading research papers and technical books";
|
|
|
|
homepage = "https://sioyek.info";
|
|
|
|
license = licenses.gpl3;
|
|
|
|
};
|
|
|
|
}
|