app-text/sile: restrict to lua 5.3+
[sgilles-overlay.git] / app-text / mupdf / mupdf-1.12.0-r99.ebuild
blob8f1be480e5423b3caba40519e0ecea2b34d37fd3
1 # Copyright 1999-2017 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
4 EAPI=6
6 inherit flag-o-matic toolchain-funcs xdg
8 DESCRIPTION="a lightweight PDF viewer and toolkit written in portable C"
9 HOMEPAGE="https://mupdf.com/"
10 SRC_URI="https://mupdf.com/downloads/${P}-source.tar.gz"
12 LICENSE="AGPL-3"
13 SLOT="0/${PV}"
14 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos"
15 IUSE="X +curl djvu javascript lcms libressl opengl +openssl static static-libs vanilla"
17 LIB_DEPEND="
18         djvu? ( app-text/djvu )
19         !libressl? ( dev-libs/openssl:0[static-libs?] )
20         libressl? ( dev-libs/libressl[static-libs?] )
21         javascript? ( >=dev-lang/mujs-0_p20160504 )
22         media-libs/freetype:2[static-libs?]
23         media-libs/harfbuzz[static-libs?]
24         media-libs/jbig2dec[static-libs?]
25         media-libs/libpng:0[static-libs?]
26         >=media-libs/openjpeg-2.1:2[static-libs?]
27         net-misc/curl[static-libs?]
28         virtual/jpeg[static-libs?]
29         X? ( x11-libs/libX11[static-libs?]
30                 x11-libs/libXext[static-libs?] )
31         opengl? ( >=media-libs/glfw-3.2 )"
32 RDEPEND="${LIB_DEPEND}"
33 DEPEND="${RDEPEND}
34         virtual/pkgconfig
35         static-libs? ( ${LIB_DEPEND} )
36         static? ( ${LIB_DEPEND//?}
37                 app-arch/bzip2[static-libs]
38                 x11-libs/libXau[static-libs]
39                 x11-libs/libXdmcp[static-libs]
40                 x11-libs/libxcb[static-libs] )"
42 REQUIRED_USE="opengl? ( X !static !static-libs )"
44 S=${WORKDIR}/${P}-source
46 PATCHES=(
47                 "${FILESDIR}"/${PN}-1.12-CFLAGS.patch
48                 "${FILESDIR}"/${PN}-1.9a-debug-build.patch
49                 "${FILESDIR}"/${PN}-1.10a-add-desktop-pc-xpm-files.patch
50                 "${FILESDIR}"/${PN}-1.11-openssl-curl-x11.patch
51                 "${FILESDIR}"/${PN}-1.11-system-glfw.patch
52                 "${FILESDIR}"/${PN}-1.11-drop-libmupdfthird.patch
53                 "${FILESDIR}"/${PN}-1.12-djvu-support.patch
56 src_prepare() {
57         xdg_src_prepare
58         use hppa && append-cflags -ffunction-sections
60         # specialized lcms2, keep it if wanted inside lubmupdfthird
61         if ! use lcms ; then
62                 rm -rf thirdparty/lcms2
63         fi
65         rm -rf thirdparty/{README,curl,freeglut,freetype,harfbuzz,jbig2dec,libjpeg,mujs,openjpeg,zlib} || die
66         for my_third in thirdparty/* ; do
67                 ewarn "Bundled thirdparty lib: ${my_third}"
68         done
70         if has_version ">=media-libs/openjpeg-2.1:2" ; then
71                 # Remove a switch, which prevents using shared libraries for openjpeg2.
72                 # See http://www.linuxfromscratch.org/blfs/view/cvs/pst/mupdf.html
73                 sed '/OPJ_STATIC$/d' -i source/fitz/load-jpx.c
74         fi
76         use javascript || \
77                 sed -e 's/define FZ_ENABLE_JS 1/define FZ_ENABLE_JS 0/' \
78                         -i include/mupdf/fitz/config.h
80         use djvu || \
81                 sed -e 's/FZ_ENABLE_DJVU 1/FZ_ENABLE_DJVU 0/' \
82                         -i include/mupdf/fitz/config.h
84         sed -e "/^libdir=/s:/lib:/$(get_libdir):" \
85                 -e "/^prefix=/s:=.*:=${EROOT}/usr:" \
86                 -i platform/debian/${PN}.pc || die
88         use vanilla || eapply \
89                 "${FILESDIR}"/${PN}-1.3-zoom-2.patch
91         sed -e "s/HAVE_GLUT := yes/HAVE_GLUT := $(usex opengl yes no)/" \
92         -i Makerules
94         sed -e "1iOS = Linux" \
95                 -e "1iCC = $(tc-getCC)" \
96                 -e "1iLD = $(tc-getCC)" \
97                 -e "1iAR = $(tc-getAR)" \
98                 -e "1iverbose = yes" \
99                 -e "1ibuild = debug" \
100                 -e "1iprefix = ${ED}usr" \
101                 -e "1ilibdir = ${ED}usr/$(get_libdir)" \
102                 -e "1idocdir = ${ED}usr/share/doc/${PF}" \
103                 -e "1iWANT_X11 = $(usex X)" \
104                 -e "1iWANT_OPENSSL = $(usex openssl)" \
105                 -e "1iWANT_CURL = $(usex curl)" \
106                 -e "1iWANT_DJVU = $(usex djvu)" \
107                 -e "1iHAVE_MUJS = $(usex javascript)" \
108                 -e "1iMUJS_LIBS = $(usex javascript -lmujs '')" \
109                 -e "1iMUJS_CFLAGS =" \
110                 -e "1iHAVE_GLFW = $(usex opengl yes no)" \
111                 -e "1iHAVE_GLUT = $(usex opengl yes no)" \
112                 -i Makerules || die
114         if use static-libs || use static ; then
115                 cp -a "${S}" "${S}"-static || die
116                 #add missing Libs.private for xcb and freetype
117                 sed -e 's:\(pkg-config --libs\):\1 --static:' \
118                     -e '/^SYS_X11_LIBS = /s:\(.*\):\1 -lpthread:' \
119                     -e '/^SYS_FREETYPE_LIBS = /s:\(.*\):\1 -lbz2:' \
120                         -i "${S}"-static/Makerules || die
121         fi
123         my_soname=libmupdf.so.${PV}
124         my_soname_js_none=libmupdf-js-none.so.${PV}
125         sed -e "\$a\$(MUPDF_LIB): \$(MUPDF_JS_NONE_LIB)" \
126                 -e "\$a\\\t\$(QUIET_LINK) \$(CC) \$(LDFLAGS) --shared -Wl,-soname -Wl,${my_soname} -Wl,--no-undefined -o \$@ \$^ \$(MUPDF_JS_NONE_LIB) \$(LIBS)" \
127                 -e "/^MUPDF_LIB =/s:=.*:= \$(OUT)/${my_soname}:" \
128                 -e "\$a\$(MUPDF_JS_NONE_LIB):" \
129                 -e "\$a\\\t\$(QUIET_LINK) \$(CC) \$(LDFLAGS) --shared -Wl,-soname -Wl,${my_soname_js_none} -Wl,--no-undefined -o \$@ \$^ \$(LIBS)" \
130                 -e "/install/s: COPYING : :" \
131                 -i Makefile || die
134 src_compile() {
135         use lcms && emake XCFLAGS="-fpic" third
136         emake XCFLAGS="-fpic"
137         use static-libs && \
138                 emake -C "${S}"-static build/debug/lib${PN}{,-js-none}.a
139         use static && \
140                 emake -C "${S}"-static XLIBS="-static"
143 src_install() {
144         if use X ; then
145                 domenu platform/debian/${PN}.desktop
146                 doicon platform/debian/${PN}.xpm
147         else
148                 rm docs/man/${PN}.1
149         fi
151         emake install
152         dosym ${my_soname} /usr/$(get_libdir)/lib${PN}.so
154         use static-libs && \
155                 dolib.a "${S}"-static/build/debug/lib${PN}{,-js-none}.a
156         if use static ; then
157                 dobin "${S}"-static/build/debug/mu{tool,draw}
158                 use X && dobin "${S}"-static/build/debug/${PN}-x11
159         fi
160         if use X ; then
161                 if use opengl ; then
162                         einfo "mupdf symlink points to mupdf-gl (bug 616654)"
163                         dosym ${PN}-gl /usr/bin/${PN}
164                 else
165                         einfo "mupdf symlink points to mupdf-x11 (bug 616654)"
166                         dosym ${PN}-x11 /usr/bin/${PN}
167                 fi
168         fi
169         insinto /usr/$(get_libdir)/pkgconfig
170         doins platform/debian/${PN}.pc