summaryrefslogtreecommitdiff
path: root/app-arch/7-zip/7-zip-21.07-r2.ebuild
blob: 81229fc6571334907b920ca7c5d5a566cd2e79c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# Copyright 2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit toolchain-funcs

MY_PV=${PV%%_*}
MY_PV=${MY_PV//./}

DESCRIPTION="File archiver with a high compression ratio"
HOMEPAGE="https://7-zip.org/"
SRC_URI="https://7-zip.org/a/7z${MY_PV}-src.tar.xz"

LICENSE="LGPL-2.1+ BSD rar? ( unRAR )"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="+asm rar"

BDEPEND="
	asm? ( dev-lang/jwasm )
"
RDEPEND="!app-arch/p7zip"

S=${WORKDIR}

PATCHES=(
	"${FILESDIR}/7-zip-flags.patch"
	"${FILESDIR}/7-zip-less-asm.patch"
)

src_compile() {
	cd CPP/7zip/Bundles/Alone2 || die
	local myemakeargs=(
		CC="$(tc-getCC) ${CFLAGS} -fno-strict-aliasing ${LDFLAGS}"
		CXX="$(tc-getCXX) ${CXXFLAGS} -fno-strict-aliasing ${LDFLAGS}"
	)
	if use asm; then
		myemakeargs+=(USE_ASM=1 USE_JWASM=1)
		if use amd64; then
			myemakeargs+=(IS_X64=1)
		elif use arm64; then
			myemakeargs+=(IS_ARM64=1)
		elif use x86; then
			myemakeargs+=(IS_X86=1)
		else
			einfo "asm is not supported on this arch, ignoring"
		fi
	fi
	use rar || myemakeargs+=(DISABLE_RAR=1)
	mkdir -p b/g || die
	emake -f ../../cmpl_gcc.mak "${myemakeargs[@]}"
}

src_install() {
	dobin CPP/7zip/Bundles/Alone2/b/g/7zz
	dosym 7zz /usr/bin/7z
	dodoc DOC/*
}