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

EAPI=8

inherit autotools

if [[ -z ${PV%%*9999} ]]; then
	EGIT_REPO_URI="https://github.com/Thomas-Tsai/${PN}.git"
	inherit git-r3
else
	[[ -n ${PV%%*_p*} ]] && MY_PV="${PV}"
	SRC_URI="
		https://github.com/Thomas-Tsai/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
	"
	KEYWORDS="~amd64 ~x86"
fi
DESCRIPTION="Partition cloning tool"
HOMEPAGE="https://partclone.org"

LICENSE="GPL-2"
SLOT="0"
IUSE="apfs btrfs +e2fs exfat f2fs fat fuse hfs minix ncurses nilfs2 ntfs"
IUSE+=" reiserfs static test ufs vmfs xfs"
RESTRICT="!test? ( test )"
REQUIRED_USE="static? ( !fuse )"

RDEPEND="
	app-arch/zstd:=
	dev-libs/isa-l
	dev-libs/openssl:0=
	sys-apps/util-linux
	virtual/zlib:=
	e2fs? ( sys-fs/e2fsprogs )
	btrfs? ( sys-apps/util-linux )
	fuse? ( sys-fs/fuse:3 )
	ncurses? ( sys-libs/ncurses:0= )
	nilfs2? ( sys-fs/nilfs-utils )
	ntfs? ( sys-fs/ntfs3g )
	reiserfs? ( sys-fs/progsreiserfs )
	xfs? ( dev-libs/userspace-rcu )
	static? (
		app-arch/zstd:=[static-libs]
		dev-libs/openssl:0[static-libs]
		virtual/zlib:=[static-libs]
		e2fs? ( sys-fs/e2fsprogs[static-libs] )
		btrfs? ( sys-apps/util-linux[static-libs] )
		ncurses? ( sys-libs/ncurses:0[static-libs] )
		nilfs2? ( sys-fs/nilfs-utils[static-libs] )
		ntfs? ( sys-fs/ntfs3g[static-libs] )
		reiserfs? ( sys-fs/progsreiserfs[static-libs] )
		xfs? ( dev-libs/userspace-rcu[static-libs] )
	)
	!static? (
		dev-libs/xxhash
	)
"
DEPEND="
	${RDEPEND}
"
BDEPEND="
	virtual/pkgconfig
"

PATCHES=(
	"${FILESDIR}"/${PN}-0.3.47-fix-ncurses-linking.patch
)

DOCS=(
	AUTHORS
	ChangeLog
	HACKING
	NEWS
	README.md
)

src_prepare() {
	default
	eautoreconf
}

src_configure() {
	local myconf=(
		$(use_enable e2fs extfs)
		$(use_enable apfs)
		$(use_enable btrfs)
		$(use_enable exfat)
		$(use_enable f2fs)
		$(use_enable fat)
		$(use_enable fuse)
		$(use_enable hfs hfsp)
		$(use_enable minix)
		$(use_enable ncurses ncursesw)
		$(use_enable nilfs2)
		$(use_enable ntfs)
		$(use_enable reiserfs)
		$(use_enable test fs-test)
		$(use_enable static static-linking)
		$(use_enable vmfs)
		$(use_enable ufs)
		$(use_enable xfs)
		--disable-jfs
		--disable-reiser4

		$(usev static --disable-xxhash)
	)
	econf "${myconf[@]}"
}

src_test() {
	local -x TERM=dummy
	default
}
