media-libs/babl: arm stable, bug #591618
[gentoo.git] / x11-libs / fltk / fltk-1.3.3-r5.ebuild
1 # Copyright 1999-2016 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Id$
4
5 EAPI=6
6 inherit autotools fdo-mime flag-o-matic multilib-minimal
7
8 DESCRIPTION="C++ user interface toolkit for X and OpenGL"
9 HOMEPAGE="http://www.fltk.org/"
10 SRC_URI="http://fltk.org/pub/${PN}/${PV}/${P}-source.tar.gz"
11
12 SLOT="1"
13 LICENSE="FLTK LGPL-2"
14 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x86-macos"
15 IUSE="cairo debug doc examples games +opengl static-libs +threads +xft +xinerama"
16
17 RDEPEND="
18         >=media-libs/libpng-1.2:0=[${MULTILIB_USEDEP}]
19         sys-libs/zlib[${MULTILIB_USEDEP}]
20         virtual/jpeg:0=[${MULTILIB_USEDEP}]
21         x11-libs/libICE[${MULTILIB_USEDEP}]
22         x11-libs/libSM[${MULTILIB_USEDEP}]
23         x11-libs/libXcursor[${MULTILIB_USEDEP}]
24         x11-libs/libXext[${MULTILIB_USEDEP}]
25         x11-libs/libXfixes[${MULTILIB_USEDEP}]
26         x11-libs/libXt[${MULTILIB_USEDEP}]
27         cairo? ( x11-libs/cairo[${MULTILIB_USEDEP},X] )
28         opengl? (
29                 virtual/glu[${MULTILIB_USEDEP}]
30                 virtual/opengl[${MULTILIB_USEDEP}]
31         )
32         xft? ( x11-libs/libXft[${MULTILIB_USEDEP}] )
33         xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
34 "
35 DEPEND="
36         ${RDEPEND}
37         x11-proto/xextproto
38         doc? ( app-doc/doxygen )
39         xinerama? ( x11-proto/xineramaproto )
40 "
41
42 DOCS=(
43         ANNOUNCEMENT
44         CHANGES
45         CREDITS
46         README
47 )
48 FLTK_GAMES="
49         blocks
50         checkers
51         sudoku
52 "
53
54 PATCHES=(
55         "${FILESDIR}"/${PN}-1.3.0-share.patch
56         "${FILESDIR}"/${PN}-1.3.2-conf-tests.patch
57         "${FILESDIR}"/${PN}-1.3.2-desktop.patch
58         "${FILESDIR}"/${PN}-1.3.2-jpeg-9a.patch
59         "${FILESDIR}"/${PN}-1.3.3-fl_open_display.patch
60         "${FILESDIR}"/${PN}-1.3.3-fltk-config.patch
61         "${FILESDIR}"/${PN}-1.3.3-makefile-dirs.patch
62         "${FILESDIR}"/${PN}-1.3.3-visibility.patch
63         "${FILESDIR}"/${PN}-1.3.3-xutf8-visibility.patch
64 )
65
66 pkg_setup() {
67         unset FLTK_LIBDIRS
68 }
69
70 src_prepare() {
71         default
72
73         rm -rf zlib jpeg png || die
74
75         sed -i \
76                 -e 's:@HLINKS@::g' FL/Makefile.in || die
77         # docs in proper docdir
78         sed -i \
79                 -e "/^docdir/s:fltk:${PF}/html:" \
80                 -e "/SILENT:/d" \
81                 makeinclude.in || die
82         sed -e "s/7/${PV}/" \
83                 < "${FILESDIR}"/FLTKConfig.cmake \
84                 > CMake/FLTKConfig.cmake || die
85         sed -e 's:-Os::g' -i configure.in || die
86
87         # also in Makefile:config.guess config.sub:
88         cp misc/config.{guess,sub} . || die
89
90         eautoconf
91         multilib_copy_sources
92 }
93
94 multilib_src_configure() {
95         local FLTK_INCDIR=${EPREFIX}/usr/include/fltk
96         local FLTK_LIBDIR=${EPREFIX}/usr/$(get_libdir)/fltk
97         FLTK_LIBDIRS+=${FLTK_LIBDIRS+:}${FLTK_LIBDIR}
98
99         multilib_is_native_abi && use prefix &&
100                 append-ldflags -Wl,-rpath -Wl,"${FLTK_LIBDIR}"
101
102         econf \
103                 $(use_enable cairo) \
104                 $(use_enable debug) \
105                 $(use_enable opengl gl) \
106                 $(use_enable threads) \
107                 $(use_enable xft) \
108                 $(use_enable xinerama) \
109                 --disable-localjpeg \
110                 --disable-localpng \
111                 --disable-localzlib \
112                 --docdir="${EPREFIX}/usr/share/doc/${PF}/html" \
113                 --enable-largefile \
114                 --enable-shared \
115                 --enable-xcursor \
116                 --enable-xdbe \
117                 --enable-xfixes \
118                 --includedir=${FLTK_INCDIR} \
119                 --libdir=${FLTK_LIBDIR}
120 }
121
122 multilib_src_compile() {
123         # Prevent reconfigure on non-native ABIs.
124         touch -r makeinclude config.{guess,sub} || die
125
126         default
127
128         if multilib_is_native_abi; then
129                 emake -C fluid
130                 use doc && emake -C documentation html
131                 use games && emake -C test ${FLTK_GAMES}
132         fi
133 }
134
135 multilib_src_test() {
136         emake -C fluid
137         emake -C test
138 }
139
140 multilib_src_install() {
141         default
142
143         if multilib_is_native_abi; then
144                 emake -C fluid DESTDIR="${D}" install-linux install
145
146                 use doc && \
147                         emake -C documentation DESTDIR="${D}" install
148
149                 use games && \
150                         emake -C test DESTDIR="${D}" install-linux
151         fi
152 }
153
154 multilib_src_install_all() {
155         for app in fluid $(usex games "${FLTK_GAMES}" ''); do
156                 dosym \
157                         /usr/share/icons/hicolor/32x32/apps/${app}.png \
158                         /usr/share/pixmaps/${app}.png
159         done
160
161         if use examples; then
162                 insinto /usr/share/doc/${PF}/examples
163                 doins test/*.{h,cxx,fl} test/demo.menu
164         fi
165
166         insinto /usr/share/cmake/Modules
167         doins CMake/FLTK*.cmake
168
169         echo "LDPATH=${FLTK_LIBDIRS}" > 99fltk || die
170         echo "FLTK_DOCDIR=${EPREFIX}/usr/share/doc/${PF}/html" >> 99fltk || die
171         doenvd 99fltk
172
173         # FIXME: This is bad, but building only shared libraries is hardly supported
174         # FIXME: The executables in test/ are linking statically against libfltk
175         if ! use static-libs; then
176                 rm "${ED}"/usr/lib*/fltk/*.a || die
177         fi
178
179         prune_libtool_files
180 }
181
182 pkg_postinst() {
183         fdo-mime_desktop_database_update
184 }
185
186 pkg_postrm() {
187         fdo-mime_desktop_database_update
188 }