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

EAPI=8

# ebuild generated by hackport 0.9.0.0.9999
#hackport: flags: +game

CABAL_FEATURES=""
inherit haskell-cabal

DESCRIPTION="A game of competitive puzzle-design"
HOMEPAGE="https://mbays.freeshell.org/intricacy"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+curses +sdl sendmail server +sound"

PATCHES=(
	"${FILESDIR}"/${P}-control-monad.patch
	)

CABAL_CHDEPS=(
		'vector >=0.9 && <0.13' 'vector >= 0.9'
		'bytestring >=0.10 && <0.12' 'bytestring >=0.10'
		'memory >=0.11 && <0.18' 'memory >= 0.11'
		'smtp-mail >=0.1.4.1 && <0.4' 'smtp-mail >= 0.1.4.1'
		)

RDEPEND=">=dev-lang/ghc-9.0.2:=
	curses? ( >=dev-haskell/hscurses-1.4:= <dev-haskell/hscurses-1.5:=
			sys-libs/ncurses )
	sdl? ( >=dev-haskell/cryptonite-0.16:= <dev-haskell/cryptonite-0.31:=
		>=dev-haskell/network-simple-0.3:= <dev-haskell/network-simple-0.5:=
		>=dev-haskell/safe-0.3.18:= <dev-haskell/safe-0.4:=
		>=dev-haskell/sdl-0.6.5:= <dev-haskell/sdl-0.7:=
		>=dev-haskell/sdl-gfx-0.6:= <dev-haskell/sdl-gfx-0.8:=
		>=dev-haskell/sdl-ttf-0.6:= <dev-haskell/sdl-ttf-0.7:=
		sound? ( >=dev-haskell/random-1.0:= <dev-haskell/random-1.4:=
			>=dev-haskell/sdl-mixer-0.6:= <dev-haskell/sdl-mixer-0.7:=
			!server? ( >=dev-haskell/memory-0.11:= <dev-haskell/memory-0.19:=
					>=dev-haskell/vector-0.9:= <dev-haskell/vector-0.14:= ) )
		!sound? ( server? ( >=dev-haskell/random-1.0:= <dev-haskell/random-1.4:= )
				!server? ( >=dev-haskell/memory-0.11:= <dev-haskell/memory-0.19:=
					>=dev-haskell/vector-0.9:= <dev-haskell/vector-0.14:= ) ) )
	!sdl? ( curses? ( >=dev-haskell/cryptonite-0.16:= <dev-haskell/cryptonite-0.31:=
				>=dev-haskell/network-simple-0.3:= <dev-haskell/network-simple-0.5:=
				>=dev-haskell/safe-0.3.18:= <dev-haskell/safe-0.4:=
				server? ( >=dev-haskell/random-1.0:= <dev-haskell/random-1.4:= )
				!server? ( >=dev-haskell/memory-0.11:= <dev-haskell/memory-0.19:=
					>=dev-haskell/vector-0.9:= <dev-haskell/vector-0.14:= ) )
		!curses? ( server? ( >=dev-haskell/cryptonite-0.16:= <dev-haskell/cryptonite-0.31:=
					>=dev-haskell/random-1.0:= <dev-haskell/random-1.4:=
					>=dev-haskell/safe-0.3.18:= <dev-haskell/safe-0.4:= ) ) )
	sendmail? ( server? ( >=dev-haskell/smtp-mail-0.1.4.1:= ) )
	server? ( >=dev-haskell/argon2-1.3:=
			>=dev-haskell/email-validate-1.0:= <dev-haskell/email-validate-2.4:=
			>=dev-haskell/feed-1.1:= <dev-haskell/feed-1.4:=
			>=dev-haskell/memory-0.11:=
			>=dev-haskell/mime-mail-0.4.4:= <dev-haskell/mime-mail-0.6:=
			>=dev-haskell/network-fancy-0.1.5:= <dev-haskell/network-fancy-0.3:=
			>=dev-haskell/pipes-4:= <dev-haskell/pipes-4.4:=
			>=dev-haskell/text-0.1:= <dev-haskell/text-3:=
			>=dev-haskell/text-short-0.1:= <dev-haskell/text-short-0.2:=
			>=dev-haskell/vector-0.9:=
			>=dev-haskell/xml-conduit-1.0:= <dev-haskell/xml-conduit-1.10:= )
"
DEPEND="${RDEPEND}
	>=dev-haskell/cabal-3.4.1.0
	curses? ( virtual/pkgconfig )
"

src_configure() {
	haskell-cabal_src_configure \
		$(cabal_flag curses curses) \
		--flag=game \
		$(cabal_flag sdl sdl) \
		$(cabal_flag sendmail sendmail) \
		$(cabal_flag server server) \
		$(cabal_flag sound sound)
}