add sci-libs/lemon
[nodoc-overlay.git] / sci-libs / lemon / lemon-1.3.1.ebuild
1 # Copyright 1999-2025 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=8
5
6 # Needed to build tests for now
7 CMAKE_MAKEFILE_GENERATOR=emake
8 inherit cmake
9
10 DESCRIPTION="C++ template static library of common data structures and algorithms"
11 # the official website seems to no longer be available
12 HOMEPAGE="https://github.com/The-OpenROAD-Project/lemon-graph"
13 SRC_URI="https://github.com/The-OpenROAD-Project/lemon-graph/archive/refs/tags/${PV}.tar.gz"
14
15 S="${WORKDIR}/${PN}-graph-${PV}"
16
17 LICENSE="Boost-1.0"
18 SLOT="0"
19 KEYWORDS="~amd64 ~x86"
20 IUSE="+coin doc glpk static-libs test"
21
22 REQUIRED_USE="|| ( coin glpk )"
23 RESTRICT="!test? ( test )"
24
25 RDEPEND="
26 coin? (
27 sci-libs/coinor-cbc:=
28 sci-libs/coinor-clp:=
29 )
30 glpk? ( sci-mathematics/glpk:= )
31 "
32 DEPEND="${RDEPEND}"
33 BDEPEND="
34 doc? (
35 app-text/doxygen
36 app-text/ghostscript-gpl
37 <dev-libs/mathjax-3
38 )
39 "
40
41 PATCHES=(
42 "${FILESDIR}"/${PN}-multilib.patch
43 "${FILESDIR}"/${PN}-as-needed.patch
44 "${FILESDIR}"/${P}-cmake4.patch # bug 967729
45 "${FILESDIR}"/${PN}-disable-broken-tests.patch
46 )
47
48 src_prepare() {
49 cmake_comment_add_subdirectory demo
50
51 use doc || cmake_comment_add_subdirectory doc
52 use test || cmake_comment_add_subdirectory test
53
54 cmake_src_prepare
55 }
56
57 src_configure() {
58 local mycmakeargs=(
59 -DLEMON_ENABLE_COIN=$(usex coin)
60 -DLEMON_ENABLE_GLPK=$(usex glpk)
61 )
62
63 use coin && mycmakeargs+=( -DCOIN_ROOT_DIR="${EPREFIX}/usr" )
64
65 if use doc; then
66 mycmakeargs+=(
67 -DLEMON_DOC_MATHJAX_RELPATH="${EPREFIX}/usr/share/mathjax"
68 -DLEMON_DOC_SOURCE_BROWSER=$(usex doc)
69 -DLEMON_DOC_USE_MATHJAX=$(usex doc)
70 )
71 fi
72
73 cmake_src_configure
74 }
75
76 src_test() {
77 pushd "${S}" > /dev/null || die
78 emake -C "${BUILD_DIR}" check
79 popd > /dev/null || die
80 }
81
82 src_install() {
83 cmake_src_install
84
85 # TODO: Upstream needs to see the light of GNUInstallDirs
86 if use doc; then
87 mv "${ED}"/usr/share/doc/lemon/html "${ED}"/usr/share/doc/${PF} || die
88 rmdir "${ED}"/usr/share/doc/lemon || die
89 fi
90 }