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
156
157
|
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
LUA_COMPAT=( lua5-{1,3,4} luajit )
inherit cmake lua-single xdg-utils
DESCRIPTION="Open-source engine for Heroes of Might and Magic III"
HOMEPAGE="https://vcmi.eu/"
INNO_SHA="96e9566a35fb51ebf13ffbdadfd49a93c1ae5c1a"
DISCORD_PRESENCE_SHA="52501e140db1c18d9da37dff9a9529bc4a9943c2"
SRC_URI="
https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
launcher? (
https://github.com/vcmi/innoextract/archive/${INNO_SHA}.tar.gz -> ${PN}-innoextract-${INNO_SHA}.tar.gz
)
discord? (
https://github.com/vcmi/discord-presence/archive/${DISCORD_PRESENCE_SHA}.tar.gz
-> ${PN}-discord-presence-${DISCORD_PRESENCE_SHA}.tar.gz
)
"
# N.B.: see here for correct commit of innoextract:
# https://github.com/vcmi/vcmi/tree/develop/launcher/lib
LICENSE="GPL-2+ discord? ( MIT ) launcher? ( ZLIB )"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+discord +editor erm +launcher lobby lua +translations +video"
REQUIRED_USE="
erm? ( lua )
lua? ( ${LUA_REQUIRED_USE} )
"
RDEPEND="
dev-cpp/tbb:=
dev-libs/boost:=[nls]
dev-libs/fuzzylite:=
media-libs/libsdl2:=[video]
media-libs/libsquish:=
media-libs/sdl2-image:=
media-libs/sdl2-mixer:=
media-libs/sdl2-ttf:=
virtual/minizip:=
virtual/zlib:=
discord? ( dev-libs/libfmt:= )
editor? (
dev-qt/qtbase:6[gui,network,widgets,xml]
dev-qt/qtsvg:6
)
launcher? (
app-arch/xz-utils
dev-libs/boost:=[bzip2,zlib]
dev-qt/qtbase:6[gui,network,widgets]
)
lobby? ( dev-db/sqlite:3 )
lua? ( ${LUA_DEPS} )
video? ( media-video/ffmpeg:= )
"
# app-arch/innoextract
# XXX: vcmi wants it's own patched version to build extractor as library
DEPEND="
${RDEPEND}
discord? ( dev-cpp/glaze )
"
BDEPEND="
virtual/pkgconfig
launcher? ( translations? ( dev-qt/qttools:6[linguist] ) )
editor? ( translations? ( dev-qt/qttools:6[linguist] ) )
"
src_unpack() {
default
if use launcher; then
rmdir "${S}/launcher/lib/innoextract" || die
mv "${WORKDIR}/innoextract-${INNO_SHA}" "${S}/launcher/lib/innoextract" || die
fi
if use discord; then
rmdir "${S}/client/lib/discord-presence" || die
mv "${WORKDIR}/discord-presence-${DISCORD_PRESENCE_SHA}" "${S}/client/lib/discord-presence" || die
fi
}
src_prepare() {
default
# Avoid GCC ICE with -Wmismatched-tags
sed -i -e '/-Wmismatched-tags/d' CMakeLists.txt || die
# Use FindBoost
sed -i -e 's/cmake_policy(SET CMP0167 NEW)/cmake_policy(SET CMP0167 OLD)/' CMakeLists.txt || die
# Fix launcher linking
sed -i -e '/target_link_libraries(vcmilauncher innoextract)/i\find_package(LibLZMA REQUIRED)' \
-e 's/target_link_libraries(vcmilauncher innoextract)/target_link_libraries(vcmilauncher innoextract Boost::iostreams LibLZMA::LibLZMA)/' \
launcher/CMakeLists.txt || die
if use discord; then
# Drop the CPM bootstrap.
# It downloads deps fmt and glaze which are provided by deps.
sed -i '/include(cmake\/CPM.cmake)/d' \
client/lib/discord-presence/CMakeLists.txt || die
fi
cmake_prepare
}
src_configure() {
local mycmakeargs=(
-DENABLE_DISCORD=$(usex discord)
-DENABLE_EDITOR=$(usex editor)
-DENABLE_ERM=$(usex erm)
-DENABLE_LAUNCHER=$(usex launcher)
-DENABLE_LOBBY=$(usex lobby)
-DENABLE_LUA=$(usex lua)
-DENABLE_TRANSLATIONS=$(usex translations)
-DENABLE_VIDEO=$(usex video)
-DENABLE_BATTLE_AI=ON
-DENABLE_GITVERSION=OFF
-DENABLE_MMAI=OFF
-DENABLE_MONOLITHIC_INSTALL=OFF
-DENABLE_NULLKILLER_AI=ON
-DENABLE_NULLKILLER2_AI=ON
-DENABLE_STUPID_AI=ON
-DFORCE_BUNDLED_FL=OFF
-DBoost_NO_BOOST_CMAKE=ON
)
cmake_src_configure
}
pkg_postinst() {
elog 'For the game to work properly, please copy "Data", "Maps" and "Mp3"'
elog "from Heroes III to \$HOME/.local/share/${PN}."
elog "or use 'vcmibuilder' utility on your:"
elog " a) One or two CD's or CD images"
elog " b) gog.com installer"
elog " c) Directory with installed game"
elog ""
elog "For more information, please visit:"
elog "https://github.com/vcmi/vcmi/blob/${PV}/docs/players/Installation_Linux.md"
elog ""
elog "Also, you may want to install VCMI Extras and Wake of Gods"
elog "mods from the launcher after you start the game."
xdg_desktop_database_update
xdg_icon_cache_update
}
pkg_postrm() {
xdg_desktop_database_update
xdg_icon_cache_update
}
|