gentoo-ebuilds/sci-visualization/gle/gle-4.3.6-r1.ebuild
Andrey Grozin 7d9ef11296
sci-visualization/gle: ebuild improvements
Signed-off-by: Andrey Grozin <grozin@gentoo.org>
2025-05-16 19:29:33 +07:00

110 lines
2.7 KiB
Bash

# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
CMAKE_BUILD_TYPE=Release
inherit cmake elisp-common flag-o-matic
DESCRIPTION="Graphics Layout Engine"
HOMEPAGE="https://glx.sourceforge.io/ https://github.com/vlabella/GLE/"
SRC_URI="https://github.com/vlabella/GLE/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
https://github.com/vlabella/gle-library/archive/refs/tags/v${PV}.tar.gz -> ${PN}-library-${PV}.tar.gz
doc? ( https://github.com/vlabella/gle-manual/archive/refs/tags/v${PV}.tar.gz -> ${PN}-manual-${PV}.tar.gz )
emacs? ( https://dev.gentoo.org/~grozin/gle-mode.el.gz )"
S="${WORKDIR}"/GLE-${PV}/src
LICENSE="BSD gui? ( GPL-2+ )"
SLOT="0"
KEYWORDS="~amd64"
IUSE="doc emacs gui manip"
DEPEND="app-text/ghostscript-gpl
app-text/poppler
dev-libs/boost
media-libs/libjpeg-turbo
media-libs/libpng
media-libs/tiff
sys-libs/zlib
x11-libs/cairo
x11-libs/pixman
gui? (
media-libs/freeglut
media-libs/glu
dev-qt/qtcore:5
dev-qt/qtdbus:5
dev-qt/qtgui:5
dev-qt/qtnetwork:5
dev-qt/qtopengl:5
dev-qt/qtwidgets:5
)
manip? ( sys-libs/ncurses:0 )
emacs? ( app-editors/emacs:* )"
RDEPEND="${DEPEND}
virtual/latex-base"
BDEPEND="kde-frameworks/extra-cmake-modules
doc? ( virtual/latex-base )"
PATCHES=(
"${FILESDIR}"/cmake-cmp0177.patch
"${FILESDIR}"/install-dirs.patch
"${FILESDIR}"/top_dir.patch
"${FILESDIR}"/zstd-shared.patch
)
SITEFILE="64${PN}-gentoo.el"
src_prepare() {
cmake_src_prepare
if use doc; then
pushd "$WORKDIR"/gle-manual-${PV} > /dev/null || die "pushd gle_manual failed"
eapply "${FILESDIR}"/latexmk.patch
popd > /dev/null
fi
}
src_configure() {
# -Werror=odr
# https://bugs.gentoo.org/927779
# https://github.com/vlabella/GLE/issues/35
filter-lto
local mycmakeargs=(
-DGLEDOC=share/doc/${PF}
-DGLE_EXAMPLES_LIBRARY_PATH="${WORKDIR}"/gle-library-${PV}
-DBUILD_GUI=$(usex gui)
-DBUILD_MANIP=$(usex manip)
)
cmake_src_configure
}
src_compile() {
cmake_src_compile
use emacs && elisp-compile "${WORKDIR}"/*.el
# I don't really understand why is this hack needed
sed -e 's/|+//' -i "${BUILD_DIR}"/gle/cmake_install.cmake
}
src_install() {
export GLE_TOP="${D}"/usr/share/gle
cmake_src_install
#GLE_TOP="${D}"/usr/share/${PN} "${D}"/usr/bin/gle.bin -mkinittex
if use doc; then
pushd "$WORKDIR"/gle-manual-${PV} > /dev/null || die "pushd gle_manual failed"
export PATH="${D}"/usr/bin:${PATH}
make -f Makefile.gcc GLE="${D}"/usr/bin/gle
dodoc gle-manual.pdf
popd > /dev/null
fi
if use emacs; then
elisp-install ${PN} "${WORKDIR}"/*.el "${WORKDIR}"/*.elc
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
fi
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}