# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 # ebuild generated by hackport 0.8.5.1.9999 #hackport: flags: +small_base CABAL_FEATURES="test-suite" inherit haskell-cabal DESCRIPTION="Alex is a tool for generating lexical analysers in Haskell" HOMEPAGE="https://www.haskell.org/alex/" GIT_REPO="https://github.com/haskell/${CABAL_PN}" GIT_COMMIT="f8fe5f0a294c3ac45ca0374b9b63f5db51a23a2e" GIT_P="${CABAL_PN}-${GIT_COMMIT}" GIT_S="${WORKDIR}/${GIT_P}" SRC_URI+=" doc? ( ${GIT_REPO}/archive/${GIT_COMMIT}.tar.gz -> ${GIT_P}.tar.gz )" LICENSE="BSD" SLOT="0" KEYWORDS="~amd64" IUSE="doc" RDEPEND=">=dev-lang/ghc-9.0.2:= " DEPEND="${RDEPEND} >=dev-haskell/cabal-3.4.1.0 doc? ( dev-python/sphinx dev-python/sphinx-rtd-theme ) " src_prepare() { if use doc; then cp -a "${GIT_S}/doc/" "${S}" || die eapply "${FILESDIR}/${PN}-3.5.1.0-fix-docs.patch" fi haskell-cabal_src_prepare } src_configure() { # make sure we don't accidentally use those # installed in system haskell-cabal_src_configure \ --with-alex=false \ --with-happy=false \ --flag=small_base } src_compile() { haskell-cabal_src_compile if use doc; then emake -C "${S}/doc/" -j1 fi } src_test() { # 1. workaround Setup.hs deadlock: https://github.com/haskell/cabal/issues/2398 # 2. use freshly built ALEX= binary and datadir path alex_datadir="${S}"/data \ emake -k -C tests all ALEX="${S}"/dist/build/alex/alex } src_install() { haskell-cabal_src_install if use doc; then dodoc -r "${S}/doc/_build/html" fi }