blob: 20010db208024f6875a718e15da1d2af77280275 (
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
|
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake xdg
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 debug dedicated +fluidsynth icu +lzma lzo +openmedia +png +sdl timidity +truetype +zlib"
REQUIRED_USE="!dedicated? ( || ( allegro sdl ) )"
# TODO: On master (after 13.x):
# - icu-layoutex is gone (https://github.com/OpenTTD/OpenTTD/commit/81d4fa69990abbc18bd83d60658b0eedd66b7447)
# - icu-le-hb looks like it might be too (https://github.com/OpenTTD/OpenTTD/issues/6922)
RDEPEND="
dedicated? (
acct-group/openttd
acct-user/openttd
app-misc/dtach
)
!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:= )
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_prepare() {
# Drop automagic LTO usage
sed -i -e '/check_ipo_supported(RESULT IPO_FOUND)/d' CMakeLists.txt || die
# Don't force _FORTIFY_SOURCE via CMake
# (we already set it in the toolchain by default with a minimum level
# of _FORTIFY_SOURCE=2)
sed -i -e '/-D_FORTIFY_SOURCE/d' cmake/CompileFlags.cmake || die
cmake_src_prepare
}
src_configure() {
local mycmakeargs=(
-DCMAKE_INSTALL_BINDIR=bin
-DCMAKE_INSTALL_DATADIR=share
-DOPTION_DEDICATED=$(usex dedicated)
-DOPTION_USE_ASSERTS=$(usex debug)
-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-r1 openttd
newinitd "${FILESDIR}"/openttd.initd-r3 openttd
fi
}
pkg_postinst() {
xdg_pkg_postinst
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 ${EROOT}/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
}
|