summaryrefslogtreecommitdiff
blob: aaeac2d9a8f23006aefe8ae787203bc68c5f9dff (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
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit cmake xdg-utils

DESCRIPTION="A clone of Transport Tycoon Deluxe"
HOMEPAGE="https://www.openttd.org/"
SRC_URI="https://cdn.openttd.org/openttd-releases/${PV}/${P}-source.tar.xz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"

IUSE="allegro cpu_flags_x86_sse dedicated +fluidsynth icu +lzma lzo +openmedia +png +sdl timidity +truetype +zlib"
REQUIRED_USE="!dedicated? ( || ( allegro sdl ) )"

RESTRICT="test" # needs a graphics set in order to test

RDEPEND="
	dedicated? (
		acct-group/openttd
		acct-user/openttd
	)
	!dedicated? (
		allegro? ( media-libs/allegro:5 )
		fluidsynth? ( media-sound/fluidsynth )
		icu? (
			dev-libs/icu-layoutex:=
			dev-libs/icu-le-hb
			>=dev-libs/icu-58.1:=
		)
		sdl? ( media-libs/libsdl2[sound,video] )
		truetype? (
			media-libs/fontconfig
			media-libs/freetype:2
			sys-libs/zlib:=
		)
	)
	lzma? ( app-arch/xz-utils )
	lzo? ( dev-libs/lzo:2 )
	png? ( media-libs/libpng:0= )
	zlib? ( sys-libs/zlib:= )
"
DEPEND="${RDEPEND}"
BDEPEND="
	>=games-util/grfcodec-6.0.6_p20210310
	virtual/pkgconfig
"
PDEPEND="
	!dedicated? (
		openmedia? (
			>=games-misc/openmsx-0.4.0
			>=games-misc/opensfx-1.0.1
		)
	)
	openmedia? ( >=games-misc/opengfx-0.6.1 )
	timidity? ( media-sound/timidity++ )
"

DOCS=( docs/directory_structure.md )
PATCHES=( "${FILESDIR}/${PN}-1.11.2_dont_compress_man.patch" )

src_configure() {
	local mycmakeargs=(
		-DCMAKE_INSTALL_BINDIR=bin
		-DCMAKE_INSTALL_DATADIR=share
		-DOPTION_DEDICATED=$(usex dedicated)
		-DCMAKE_DISABLE_FIND_PACKAGE_Allegro=$(usex !allegro)
		-DCMAKE_DISABLE_FIND_PACKAGE_Freetype=$(usex !truetype)
		-DCMAKE_DISABLE_FIND_PACKAGE_Fontconfig=$(usex !truetype)
		-DCMAKE_DISABLE_FIND_PACKAGE_Fluidsynth=$(usex !fluidsynth)
		-DCMAKE_DISABLE_FIND_PACKAGE_ICU=$(usex !icu)
		-DCMAKE_DISABLE_FIND_PACKAGE_LibLZMA=$(usex !lzma)
		-DCMAKE_DISABLE_FIND_PACKAGE_LZO=$(usex !lzo)
		-DCMAKE_DISABLE_FIND_PACKAGE_PNG=$(usex !png)
		# N.B. regarding #807364 and #828984: CMAKE_DISABLE_FIND_PACKAGE_SDL is used only
		# with USE="allegro -sdl" combination flags. There no other way to
		# completely disable SDL1 support.
		-DCMAKE_DISABLE_FIND_PACKAGE_SDL=ON
		-DCMAKE_DISABLE_FIND_PACKAGE_SDL2=$(usex !sdl)
		-DCMAKE_DISABLE_FIND_PACKAGE_SSE=$(usex !cpu_flags_x86_sse)
		-DCMAKE_DISABLE_FIND_PACKAGE_ZLIB=$(usex !zlib)
	)

	cmake_src_configure
}

src_install() {
	cmake_src_install
	if use dedicated ; then
		newconfd "${FILESDIR}"/openttd.confd openttd
		newinitd "${FILESDIR}"/openttd.initd-r2 openttd
	fi
}

pkg_postinst() {
	xdg_icon_cache_update

	if ! use openmedia ; then
		elog
		elog "OpenTTD was compiled without the 'openmedia' USE flag."
		elog
		elog "In order to play, you must at least install"
		elog "games-misc/opengfx, and games-misc/opensfx, or copy the "
		elog "following 6 files from a version of Transport Tycoon Deluxe"
		elog "(Windows or DOS) to shared or personal location."
		elog "See /usr/share/doc/${PF}/directory_structure.md for more info."
		elog
		elog "From the Windows version you need: "
		elog "sample.cat trg1r.grf trgcr.grf trghr.grf trgir.grf trgtr.grf"
		elog "OR from the DOS version you need: "
		elog "SAMPLE.CAT TRG1.GRF TRGC.GRF TRGH.GRF TRGI.GRF TRGT.GRF"
	fi
}

pkg_postrm() {
	xdg_icon_cache_update
}