summaryrefslogtreecommitdiff
blob: 65afd2a5beb6f9c7b1d5339cdb8bd5d7e2dd9291 (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
# Copyright 1999-2021 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://scummvm.org/frs/scummvm/${PV}/${P}.tar.xz"
	KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86"
	S="${WORKDIR}/${PN}-${P}"
fi

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

RDEPEND="
	>=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 )
	gtk? (
		dev-libs/glib:2
		x11-libs/gtk+:3
	)
	jpeg? ( virtual/jpeg:0 )
	mp3? ( media-libs/libmad )
	mpeg2? ( media-libs/libmpeg2 )
	net? (
		media-libs/sdl2-net
		net-misc/curl
	)
	opengl? ( || (
		virtual/opengl
		media-libs/mesa[gles2]
		media-libs/mesa[gles1]
	) )
	png? ( media-libs/libpng:0 )
	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
	)
	zlib? ( sys-libs/zlib:= )
"
DEPEND="${RDEPEND}"
BDEPEND="
	app-arch/xz-utils
	truetype? ( virtual/pkgconfig )
	x86? ( dev-lang/nasm )
"

S="${WORKDIR}/${P/_/}"

PATCHES=(
	"${FILESDIR}/${P}-ultima_engine_lua_dep.patch"
	"${FILESDIR}/${P}-fluidsynth-2.2.patch"
)

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)
		$(usex fluidsynth '' --disable-fluidsynth)
		$(use_enable fribidi)
		$(use_enable gtk)
		$(use_enable jpeg)
		$(use_enable lua)
		$(use_enable mp3 mad)
		$(use_enable mpeg2)
		$(use_enable net libcurl)
		$(use_enable net sdlnet)
		$(use_enable png)
		$(use_enable sndio)
		$(use_enable speech tts)
		$(use_enable theora theoradec)
		$(use_enable truetype freetype2)
		$(usex unsupported --enable-all-engines '')
		$(use_enable vorbis)
		$(use_enable zlib)
		$(use_enable x86 nasm)
	)
	echo "configure ${myconf[@]}"
	# NOT AN AUTOCONF SCRIPT SO DONT CALL ECONF
	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
}