diff --git a/x11-libs/fltk/Manifest b/x11-libs/fltk/Manifest index e624e9ce136e4..3864bc1468322 100644 --- a/x11-libs/fltk/Manifest +++ b/x11-libs/fltk/Manifest @@ -1 +1,2 @@ DIST fltk-1.3.5-source.tar.gz 5261324 BLAKE2B df05989d6581b570c689e29e9f31e5fc85fa91dee1296d70b5f5c3b4aab527749850ea78bec3ef5947151b21598c3bb04e52f78b5e6db179e7fd922627862b5e SHA512 db7ea7c5f3489195a48216037b9371a50f1119ae7692d66f71b6711e5ccf78814670581bae015e408dee15c4bba921728309372c1cffc90113cdc092e8540821 +DIST fltk-1.3.8-source.tar.gz 5335306 BLAKE2B 8c2d2fca4243c0e7c5a8aa46083940f99c8b3e7873d39d6e590a4b66587876393f209e5e7e5eaf4a4cc13f0f97cb03671d97129853b0146eeab409aaf687935e SHA512 5c1cbfc156c49888e25b90dcb9b1ab86a03447e08e00864c3c7ae8a0e32cfbd9154ee630054235c9edfd29fd1d0371ae77eff7b78094fb660dbbdec5cecfc8fb diff --git a/x11-libs/fltk/fltk-1.3.8.ebuild b/x11-libs/fltk/fltk-1.3.8.ebuild new file mode 100644 index 0000000000000..ef4d15d613304 --- /dev/null +++ b/x11-libs/fltk/fltk-1.3.8.ebuild @@ -0,0 +1,200 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic xdg-utils multilib-minimal + +DESCRIPTION="C++ user interface toolkit for X and OpenGL" +HOMEPAGE="https://www.fltk.org/" +SRC_URI="https://www.fltk.org/pub/${PN}/${PV}/${P}-source.tar.gz" + +SLOT="1" +LICENSE="FLTK LGPL-2" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="cairo debug doc examples games +opengl static-libs +threads +xft +xinerama" + +RDEPEND=" + media-libs/libjpeg-turbo:0=[${MULTILIB_USEDEP}] + >=media-libs/libpng-1.2:0=[${MULTILIB_USEDEP}] + sys-libs/zlib[${MULTILIB_USEDEP}] + x11-libs/libICE[${MULTILIB_USEDEP}] + x11-libs/libSM[${MULTILIB_USEDEP}] + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXt[${MULTILIB_USEDEP}] + cairo? ( x11-libs/cairo[${MULTILIB_USEDEP},X] ) + opengl? ( + virtual/glu[${MULTILIB_USEDEP}] + virtual/opengl[${MULTILIB_USEDEP}] + ) + xft? ( x11-libs/libXft[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) +" +DEPEND=" + ${RDEPEND} + virtual/pkgconfig + x11-base/xorg-proto + doc? ( app-doc/doxygen ) +" +DOCS=( + ANNOUNCEMENT + CHANGES + CHANGES_1.0 + CHANGES_1.1 + CREDITS + README + README.abi-version.txt + README.Cairo.txt + README.CMake.txt + README.MSWindows.txt + README.OSX.txt + README.Unix.txt +) +FLTK_GAMES=" + blocks + checkers + sudoku +" +PATCHES=( + "${FILESDIR}"/${PN}-1.3.0-share.patch + "${FILESDIR}"/${PN}-1.3.4-conf-tests.patch + "${FILESDIR}"/${PN}-1.3.3-makefile-dirs.patch + "${FILESDIR}"/${PN}-1.3.3-visibility.patch +) + +pkg_setup() { + unset FLTK_LIBDIRS +} + +src_prepare() { + default + + rm -rf zlib jpeg png || die + + sed -i \ + -e 's:@HLINKS@::g' FL/Makefile.in || die + sed -i \ + -e '/x-fluid/d' fluid/Makefile || die + sed -i \ + -e '/C\(XX\)\?FLAGS=/s:@C\(XX\)\?FLAGS@::' \ + -e '/^LDFLAGS=/d' \ + "${S}/fltk-config.in" || die + # docs in proper docdir + sed -i \ + -e "/^docdir/s:fltk:${PF}/html:" \ + -e "/SILENT:/d" \ + makeinclude.in || die + + # also in Makefile:config.guess config.sub: + cp misc/config.{guess,sub} . || die + + cp fluid/{,x-}fluid.desktop || die + + eaclocal + eautoconf + multilib_copy_sources +} + +multilib_src_configure() { + unset FLTK_LIBDIRS + + local FLTK_INCDIR=${EPREFIX}/usr/include/fltk + local FLTK_LIBDIR=${EPREFIX}/usr/$(get_libdir)/fltk + FLTK_LIBDIRS+=${FLTK_LIBDIRS+:}${FLTK_LIBDIR} + + multilib_is_native_abi && use prefix && + append-ldflags -Wl,-rpath -Wl,"${FLTK_LIBDIR}" + + econf \ + $(use_enable cairo) \ + $(use_enable debug) \ + $(use_enable opengl gl) \ + $(use_enable threads) \ + $(use_enable xft) \ + $(use_enable xinerama) \ + --disable-localjpeg \ + --disable-localpng \ + --disable-localzlib \ + --docdir="${EPREFIX}/usr/share/doc/${PF}/html" \ + --enable-largefile \ + --enable-shared \ + --enable-xcursor \ + --enable-xdbe \ + --enable-xfixes \ + --includedir=${FLTK_INCDIR} \ + --libdir=${FLTK_LIBDIR} \ + DSOFLAGS="${LDFLAGS}" \ + LDFLAGS="${LDFLAGS}" +} + +multilib_src_compile() { + # Prevent reconfigure on non-native ABIs. + touch -r makeinclude config.{guess,sub} || die + + default + + if multilib_is_native_abi; then + emake -C fluid + use doc && emake -C documentation html + use games && emake -C test ${FLTK_GAMES} + fi +} + +multilib_src_test() { + emake -C fluid + emake -C test +} + +multilib_src_install() { + default + + if multilib_is_native_abi; then + emake -C fluid DESTDIR="${D}" install-linux install + + use doc && \ + emake -C documentation DESTDIR="${D}" install + + use games && \ + emake -C test DESTDIR="${D}" install-linux + fi +} + +multilib_src_install_all() { + for app in fluid $(usex games "${FLTK_GAMES}" ''); do + dosym \ + ../icons/hicolor/32x32/apps/${app}.png \ + /usr/share/pixmaps/${app}.png + done + + if use examples; then + docinto examples + dodoc -r test/*.{h,cxx,fl} test/demo.menu + fi + + insinto /usr/share/cmake/Modules + doins CMake/FLTK*.cmake + + echo "LDPATH=${FLTK_LIBDIRS}" > 99fltk || die + echo "FLTK_DOCDIR=${EPREFIX}/usr/share/doc/${PF}/html" >> 99fltk || die + doenvd 99fltk + + # FIXME: This is bad, but building only shared libraries is hardly supported + # FIXME: The executables in test/ are linking statically against libfltk + if ! use static-libs; then + rm "${ED}"/usr/lib*/fltk/*.a || die + fi + + find "${D}" -name '*.la' -delete || die +} + +pkg_postinst() { + xdg_desktop_database_update + xdg_icon_cache_update +} + +pkg_postrm() { + xdg_desktop_database_update + xdg_icon_cache_update +}