blob: c82dc3221892706cb610957c08fbcd40c6b08ae6 (
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
|
# Copyright 2022-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PLOCALES="ar_SA bg_BG ca_ES cs da de el en_GB eo es et_EE fa_IR fi fr fy ga he_IL hr hu id it ja_JP ko la lt my_MM nb nl pl pt pt_BR ro ru sk sl tr tt_RU uk_UA zh_CN zh_TW"
inherit branding cmake flag-o-matic plocale xdg
MY_PV=$(ver_cut 1-2)
VIDEOS_PV=2.2
VIDEOS_P=${PN}-videos-${VIDEOS_PV}.wz
DESCRIPTION="3D real-time strategy game"
HOMEPAGE="https://wz2100.net/"
SRC_URI="
https://downloads.sourceforge.net/warzone2100/releases/${PV}/${PN}_src.tar.xz -> ${P}.tar.xz
videos? ( https://downloads.sourceforge.net/warzone2100/warzone2100/Videos/${VIDEOS_PV}/high-quality-en/sequences.wz -> ${VIDEOS_P} )
"
S="${WORKDIR}/${PN}"
LICENSE="GPL-2+ CC-BY-SA-3.0 public-domain vulkan? ( GPL-3 )"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
# Upstream requested debug support
IUSE="debug discord nls videos vulkan"
COMMON_DEPEND="
dev-libs/fribidi
>=dev-games/physfs-2[zip]
dev-db/sqlite:3
>=dev-libs/libsodium-1.0.14:=
dev-libs/libzip:=
>=dev-libs/protobuf-2.6.1:=
media-libs/freetype:2
media-libs/harfbuzz:=
media-libs/libjpeg-turbo
media-libs/libogg
media-libs/libpng:=
>=media-libs/libsdl3-3.2.12[opengl,X]
media-libs/libtheora:=
media-libs/libvorbis
media-libs/openal
media-libs/opus
media-libs/opusfile
net-libs/miniupnpc:=
net-misc/curl
virtual/zlib:=
nls? ( virtual/libintl )
vulkan? ( media-libs/libsdl3[vulkan] )
"
DEPEND="
${COMMON_DEPEND}
dev-libs/date
media-libs/fontconfig
"
RDEPEND="
${COMMON_DEPEND}
media-fonts/dejavu
"
BDEPEND="
app-arch/zip
app-text/asciidoc
games-util/basis_universal
virtual/pkgconfig
nls? ( sys-devel/gettext )
"
HTML_DOCS=( doc/quickstartguide.html doc/docbook-xsl.css doc/ScriptingManual.htm )
DOCS=( README.md doc/images doc/Scripting.md doc/js-globals.md )
PATCHES=(
"${FILESDIR}"/${PN}-4.6.1-clang-fmt-stdlib-include.patch
"${FILESDIR}"/${PN}-4.7.0-vulkan.patch
"${FILESDIR}"/${PN}-4.7.0-c++20.patch
)
src_unpack() {
unpack ${P}.tar.xz
}
src_prepare() {
sed -i -e 's/#top_builddir/top_builddir/' po/Makevars || die
# Delete translations we're not using
cleanup_po() {
local locale=${1}
einfo "Cleaning up disabled locale: ${locale}"
rm po/${locale}.po || die
}
plocale_for_each_disabled_locale cleanup_po
# Unbundle date (which also fixes build w/ C++20)
cp "${ESYSROOT}"/usr/include/date/date.h 3rdparty/date/ || die
# Overridden in src_configure
sed -i -e '/set.*CMAKE_CXX_STANDARD/d' CMakeLists.txt || die
sed -i -e 's:cxx_std_17:cxx_std_20:' \
3rdparty/GameNetworkingSockets/src/CMakeLists.txt || die
cmake_src_prepare
}
src_configure() {
# ODR violations (bison, yy_*, bug #859268)
filter-lto
# bug #976363
append-cxxflags -std=gnu++20
# TODO: unbundle dev-cpp/nlohmann_json
# TODO: unbundle dev-libs/libfmt
# TODO: unbundle SQLiteCpp
# TODO: unbundle dev-libs/inih
local mycmakeargs=(
-DCMAKE_CXX_STANDARD="20"
-DWZ_DISTRIBUTOR="${BRANDING_OS_PRETTY_NAME}"
-DWZ_ENABLE_WARNINGS_AS_ERRORS=OFF
-DWZ_ENABLE_BACKEND_VULKAN=$(usex vulkan)
-DWZ_SKIP_ELF_SEPARATE_DEBUG=ON
-DWZ_USE_SYSTEM_LIBJPEG_TURBO=ON
-DBUILD_SHARED_LIBS=OFF
-DENABLE_NLS=$(usex nls)
-DENABLE_DISCORD=$(usex discord)
-DFMT_INSTALL=OFF
-DSQLITECPP_INSTALL=OFF
)
cmake_src_configure
}
src_compile() {
cmake_src_compile
asciidoc -b html5 doc/quickstartguide.asciidoc || die
}
src_install() {
cmake_src_install
# We cover licencing within the ebuild itself
rm "${ED}"/usr/share/doc/${PF}/COPYING* \
"${ED}"/usr/share/doc/${PF}/copyright || die
docompress -x /usr/share/man/man6/warzone2100.6.gz
if use videos ; then
insinto /usr/share/${PN}
newins "${DISTDIR}"/${VIDEOS_P} sequences.wz
fi
}
|