summaryrefslogtreecommitdiff
blob: db2d168193f033e42cc5b63efd08afbb758eed9f (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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit desktop flag-o-matic toolchain-funcs xdg

DESCRIPTION="Reimplementation of the SCUMM game engine used in Lucasarts adventures"
HOMEPAGE="https://www.scummvm.org/"

if [[ ${PV} == *9999* ]]; then
	inherit git-r3
	EGIT_REPO_URI="https://github.com/scummvm/scummvm"
else
	SRC_URI="https://downloads.scummvm.org/frs/scummvm/${PV}/${P}.tar.xz"
	KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~x86"
	S=${WORKDIR}/${P/_/}
fi

LICENSE="GPL-2+ LGPL-2.1 BSD GPL-3-with-font-exception"
SLOT="0"
IUSE="
	a52 aac alsa debug flac fluidsynth fribidi gif +gtk jpeg lua mpeg2
	mp3 musepack +net opengl openmpt parport png readline sndio speech
	theora truetype unsupported vorbis vpx zlib
"
RESTRICT="test"  # it only looks like there's a test there #77507

DEPEND="
	>=media-libs/libsdl2-2.0.0[sound,joystick,video]
	a52? ( media-libs/a52dec )
	aac? ( media-libs/faad2 )
	alsa? ( media-libs/alsa-lib )
	flac? ( media-libs/flac:= )
	fluidsynth? ( media-sound/fluidsynth:= )
	fribidi? ( dev-libs/fribidi )
	gif? ( media-libs/giflib )
	gtk? (
		dev-libs/glib:2
		x11-libs/gtk+:3
	)
	jpeg? ( media-libs/libjpeg-turbo:= )
	mp3? ( media-libs/libmad )
	mpeg2? ( media-libs/libmpeg2 )
	musepack? ( media-sound/musepack-tools:= )
	net? (
		media-libs/sdl2-net
		net-misc/curl
	)
	opengl? (
		|| (
			virtual/opengl
			media-libs/libglvnd
		)
	)
	openmpt? ( media-libs/libopenmpt:= )
	parport? ( sys-libs/libieee1284:= )
	png? ( media-libs/libpng:0 )
	readline? ( sys-libs/readline:= )
	sndio? ( media-sound/sndio:= )
	speech? ( app-accessibility/speech-dispatcher )
	truetype? ( media-libs/freetype:2 )
	theora? ( media-libs/libtheora )
	vorbis? (
		media-libs/libogg
		media-libs/libvorbis
	)
	vpx? ( media-libs/libvpx:= )
	zlib? ( sys-libs/zlib:= )
"
RDEPEND="
	${DEPEND}
"
BDEPEND="
	app-arch/xz-utils
	truetype? ( virtual/pkgconfig )
	x86? ( dev-lang/nasm )
"

src_prepare() {
	default

	# -g isn't needed for nasm here
	sed -i \
		-e '/NASMFLAGS/ s/-g//' \
		configure || die
	sed -i \
		-e '/INSTALL.*doc/d' \
		-e '/INSTALL.*\/pixmaps/d' \
		-e 's/-s //' \
		ports.mk || die
}

src_configure() {
	use x86 && append-ldflags -Wl,-z,noexecstack
	tc-export STRINGS

	local myconf=(
		--backend=sdl
		--host=${CHOST}
		--enable-verbose-build
		--prefix="${EPREFIX}/usr"
		--libdir="${EPREFIX}/usr/$(get_libdir)"
		--opengl-mode=$(usex opengl auto none)
		--with-sdl-prefix="${EPREFIX}/usr"
		$(use_enable a52)
		$(use_enable aac faad)
		$(use_enable alsa)
		$(use_enable debug)
		$(use_enable !debug release-mode)
		$(use_enable flac)
		$(use_enable fluidsynth)
		$(use_enable fribidi)
		$(use_enable gif)
		$(use_enable gtk)
		$(use_enable jpeg)
		$(use_enable lua)
		# it's exclusive to openmpt, and openmpt is preferred upstream
		--disable-mikmod
		$(use_enable mp3 mad)
		$(use_enable mpeg2)
		$(use_enable musepack mpcdec)
		$(use_enable net libcurl)
		$(use_enable net sdlnet)
		$(use_enable openmpt)
		$(use_enable parport opl2lpt)
		$(use_enable png)
		$(use_enable readline)
		$(use_enable sndio)
		$(use_enable speech tts)
		--enable-text-console
		$(use_enable theora theoradec)
		$(use_enable truetype freetype2)
		$(usex unsupported --enable-all-engines '')
		$(use_enable vorbis)
		$(use_enable vpx)
		$(use_enable zlib)
		$(use_enable x86 nasm)
	)
	echo "configure ${myconf[@]}"
	# not an autoconf script, so don't call econf
	local -x SDL_CONFIG="sdl2-config"
	./configure "${myconf[@]}" ${EXTRA_ECONF} || die
}

src_compile() {
	emake \
		AR="$(tc-getAR) cru" \
		RANLIB="$(tc-getRANLIB)"
}

src_install() {
	default
	doicon -s scalable icons/scummvm.svg
}