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

EAPI=7

inherit cmake flag-o-matic

# guard against forgetfulness, https://bugs.gentoo.org/795936
GIT_COMMIT_0190="de40ad007797e0dcd8b7126f27bb87401d224240"
GIT_COMMIT="GIT_COMMIT_${PV//./}"
GIT_COMMIT="${!GIT_COMMIT}"

DESCRIPTION="A tiny but valid init for containers"
HOMEPAGE="https://github.com/krallin/tini"
SRC_URI="https://github.com/krallin/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 arm arm64 hppa ppc64 ~riscv ~x86"
IUSE="+args +static"

src_prepare() {

	[[ -z ${GIT_COMMIT} ]] && die "forgetful maintainer! please define GIT_COMMIT_${PV//./} on bump"

	cmake_src_prepare

	local sed_args=(
		# Do not strip binary
		-e 's/-Wl,-s")$/")/'

		# Remove -Werror and -pedantic-errors in order to allow macro
		# redefinition, so that CFLAGS="-U_FORTIFY_SOURCE" does not
		# trigger an error due to add_definitions(-D_FORTIFY_SOURCE=2)
		# in CMakeLists.txt (bug 626438).
		-e "s/ -Werror / /"
		-e "s/ -pedantic-errors / /"
	)

	sed -i "${sed_args[@]}" \
		-e "s/git.*status --porcelain.*/true/" \
		-e "s/git.*log -n 1.*/true/" \
		-e "s/git.\${tini_VERSION_GIT}/git.${GIT_COMMIT}/" \
		CMakeLists.txt || die
}

src_configure() {
	local mycmakeargs=()
	use args || mycmakeargs+=(-DMINIMAL=ON)

	cmake_src_configure
}

src_compile() {
	append-cflags -DPR_SET_CHILD_SUBREAPER=36 -DPR_GET_CHILD_SUBREAPER=37
	cmake_src_compile
}

src_install() {
	cmake_src_install
	if use static; then
		mv "${ED}"/usr/bin/{${PN}-static,${PN}} || die
	else
		rm "${ED}"/usr/bin/${PN}-static || die
	fi
}