# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

# ebuild generated by hackport 0.8.1.0.9999
# hackport: flags: selftest:test

CABAL_FEATURES=""
inherit haskell-cabal

DESCRIPTION="GHC build system"
HOMEPAGE="https://gitlab.haskell.org/ghc/ghc/-/tree/master/hadrian#readme"
SRC_URI="https://downloads.haskell.org/ghc/${PV/_/-}/ghc-${PV}-src.tar.xz"

LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64"
IUSE="static test +threaded"
RESTRICT="!test? ( test )"
S="${WORKDIR}/ghc-${PV}/hadrian"
CABAL_FILE="${S}/hadrian.cabal"

PATCHES=(
	"${FILESDIR}/${PN}-9.4.4-cabal-3_8.patch"
)

CABAL_CHDEPS=(
	'Cabal                >= 3.2     && < 3.7' 'Cabal >= 3.2'
)

RDEPEND="
	>=dev-haskell/cabal-3.2:=
	>=dev-haskell/extra-1.4.7:=
	>=dev-haskell/unordered-containers-0.2.1:= <dev-haskell/unordered-containers-0.3:=
	>=dev-lang/ghc-8.4.3:=
	>=dev-util/shake-0.18.3:= <dev-util/shake-0.20:=
	static? (
		dev-libs/libffi[static-libs]
		dev-libs/gmp[static-libs]
	)
	test? (
		>=dev-haskell/quickcheck-2.6:= <dev-haskell/quickcheck-2.15:=
	)
"
DEPEND="${RDEPEND}
	>=dev-haskell/cabal-2.2.0.1
"

src_configure() {
	local configure_flags=(
		$(cabal_flag test selftest)
		$(cabal_flag threaded threaded)
	)

	if use static; then
		configure_flags+=(
			--disable-shared
			--enable-static
			--disable-executable-dynamic
			--enable-executable-static
		)
	fi

	haskell-cabal_src_configure "${configure_flags[@]}"
}