summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Sokolov <alexey+gentoo@asokolov.org>2024-10-28 21:52:05 +0000
committerSam James <sam@gentoo.org>2024-11-29 00:11:54 +0000
commitb56388833c6fae1dc67abe789f891ca9ba248bc6 (patch)
tree659aeb9fe92cf7a9d0342c0a2dd7ce8cdcef29e6 /games-engines
parentgames-engines/openmw: fix another build failure with gcc 14 (diff)
downloadgentoo-b56388833c6fae1dc67abe789f891ca9ba248bc6.tar.gz
gentoo-b56388833c6fae1dc67abe789f891ca9ba248bc6.tar.bz2
gentoo-b56388833c6fae1dc67abe789f891ca9ba248bc6.zip
games-engines/openmw: update live
* Use Qt 6 * Update USE flag from qt5 to gui * Update directory layout to match upstream * Copy KEYWORDS from release, but drop x86: devs say that it doesn't have enough RAM to even play the vanilla game Closes: https://bugs.gentoo.org/942291 Signed-off-by: Alexey Sokolov <alexey+gentoo@asokolov.org> Co-authored-by: Alec Stewart <alec-stewart@protonmail.com> Co-authored-by: Paul Zander <negril.nx+gentoo@gmail.com> Closes: https://github.com/gentoo/gentoo/pull/39146 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'games-engines')
-rw-r--r--games-engines/openmw/openmw-9999.ebuild70
1 files changed, 45 insertions, 25 deletions
diff --git a/games-engines/openmw/openmw-9999.ebuild b/games-engines/openmw/openmw-9999.ebuild
index b1a63beee240..ee6896875926 100644
--- a/games-engines/openmw/openmw-9999.ebuild
+++ b/games-engines/openmw/openmw-9999.ebuild
@@ -14,30 +14,37 @@ if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://github.com/OpenMW/openmw.git"
else
SRC_URI="https://github.com/OpenMW/openmw/archive/${P}.tar.gz"
- KEYWORDS="~amd64 ~arm64 ~x86"
S="${WORKDIR}/${PN}-${P}"
+ KEYWORDS="~amd64 ~arm64 ~ppc64"
fi
+# This particular commit is hardcoded in
+# https://gitlab.com/OpenMW/openmw/-/blob/ffe164b28d3a10408e20fdadd2f0168c1e32fd6e/apps/components_tests/CMakeLists.txt#L114-118
MY_TEMPLATE_COMMIT="8966dab24692555eec720c854fb0f73d108070cd"
SRC_URI+="
- test? ( https://gitlab.com/OpenMW/example-suite/-/raw/${MY_TEMPLATE_COMMIT}/data/template.omwgame -> openmw-template-${MY_TEMPLATE_COMMIT}.omwgame )
+ test? (
+ https://gitlab.com/OpenMW/example-suite/-/raw/${MY_TEMPLATE_COMMIT}/game_template/data/template.omwgame
+ -> openmw-template-${MY_TEMPLATE_COMMIT}.omwgame
+ )
"
LICENSE="GPL-3 MIT BitstreamVera ZLIB"
SLOT="0"
-IUSE="doc devtools +osg-fork test +qt5"
+IUSE="doc devtools +gui +osg-fork test"
REQUIRED_USE="${LUA_REQUIRED_USE}"
RESTRICT="!test? ( test )"
-# FIXME: Unbundle dev-games/openscenegraph-qt in extern/osgQt directory,
-# used when BUILD_OPENCS flag is enabled. See bug #676266.
+# TODO: Unbundle dev-games/openscenegraph-qt in extern/osgQt directory,
+# used when BUILD_OPENCS flag is enabled.
+# OpenMW has custom changes to this library.
+# See bug #676266.
RDEPEND="${LUA_DEPS}
app-arch/lz4:=
- >=dev-games/mygui-3.4.3:=
dev-cpp/yaml-cpp:=
dev-db/sqlite:3
dev-games/recastnavigation:=
+ >=dev-games/mygui-3.4.3:=
dev-libs/boost:=[zlib]
dev-libs/icu:=
dev-libs/tinyxml[stl]
@@ -45,16 +52,14 @@ RDEPEND="${LUA_DEPS}
media-libs/openal
media-video/ffmpeg:=
>=sci-physics/bullet-2.86:=[double-precision]
+ sys-libs/zlib
virtual/opengl
osg-fork? ( >=dev-games/openscenegraph-openmw-3.6:=[collada(-),jpeg,png,sdl,svg,truetype,zlib] )
- !osg-fork? ( >=dev-games/openscenegraph-3.5.5:=[collada(-),jpeg,png,sdl,svg,truetype,zlib] )
- qt5? (
+ !osg-fork? ( >=dev-games/openscenegraph-3.6.5:=[collada(-),jpeg,png,sdl,svg,truetype,zlib] )
+ gui? (
app-arch/unshield
- dev-qt/qtcore:5
- dev-qt/qtgui:5
- dev-qt/qtnetwork:5
- dev-qt/qtopengl:5
- dev-qt/qtwidgets:5
+ dev-qt/qtbase:6[gui,network,opengl,widgets]
+ dev-qt/qtsvg:6
)
"
@@ -68,6 +73,9 @@ BDEPEND="
app-text/doxygen[dot]
dev-python/sphinx
)
+ gui? (
+ dev-qt/qttools:6[linguist]
+ )
test? (
dev-cpp/gtest
)
@@ -78,27 +86,34 @@ src_prepare() {
# Use the system tinyxml headers
rm -v extern/oics/tiny{str,xml}* || die
- rm -rv extern/sol3 || die
+
+ # Use the system sol2 (v3) headers
+ rm -r extern/sol3 || die
}
src_configure() {
- use devtools && ! use qt5 &&
- elog "'qt5' USE flag is disabled, 'openmw-cs' will not be installed"
+ use devtools && ! use gui &&
+ elog "'gui' USE flag is disabled, 'openmw-cs' will not be installed"
local mycmakeargs=(
-DBUILD_BSATOOL=$(usex devtools)
-DBUILD_DOCS=$(usex doc)
-DBUILD_ESMTOOL=$(usex devtools)
- -DBUILD_LAUNCHER=$(usex qt5)
+ -DBUILD_LAUNCHER=$(usex gui)
+ -DBUILD_OPENCS=$(usex devtools $(usex gui))
+ -DBUILD_WIZARD=$(usex gui)
-DBUILD_NIFTEST=$(usex devtools)
- -DBUILD_OPENCS=$(usex devtools $(usex qt5))
- -DBUILD_WIZARD=$(usex qt5)
- -DBUILD_UNITTESTS=$(usex test)
+ -DBUILD_COMPONENTS_TESTS=$(usex test)
+ -DBUILD_OPENMW_TESTS=$(usex test)
+ -DBUILD_OPENCS_TESTS=$(usex test $(usex devtools))
+
-DGLOBAL_DATA_PATH="${EPREFIX}/usr/share"
-DICONDIR="${EPREFIX}/usr/share/icons/hicolor/256x256/apps"
-DUSE_SYSTEM_TINYXML=ON
-DOPENMW_USE_SYSTEM_GOOGLETEST=ON
-DOPENMW_USE_SYSTEM_RECASTNAVIGATION=ON
+
+ -DQT_DIR="${ESYSROOT}/usr/lib64/cmake/Qt6"
)
if [[ ${ELUA} == luajit ]]; then
@@ -116,9 +131,9 @@ src_configure() {
fi
if use test ; then
- mkdir -p "${BUILD_DIR}"/apps/openmw_test_suite/data || die
+ mkdir -p "${BUILD_DIR}"/apps/components_tests/data || die
cp "${DISTDIR}"/openmw-template-${MY_TEMPLATE_COMMIT}.omwgame \
- "${BUILD_DIR}"/apps/openmw_test_suite/data/template.omwgame || die
+ "${BUILD_DIR}"/apps/components_tests/data/template.omwgame || die
fi
cmake_src_configure
@@ -142,8 +157,13 @@ src_test() {
elog "Skipping tests on ${ELUA}"
return
fi
+
pushd "${BUILD_DIR}" > /dev/null || die
- ./openmw_test_suite || die
+ ./components-tests || die
+ ./openmw-tests || die
+ if use gui && use devtools; then
+ ./openmw-cs-tests || die
+ fi
popd > /dev/null || die
}
@@ -157,9 +177,9 @@ src_install() {
(either by using the launcher or by calling 'openmw-wizard'
directly).\n"
- if ! use qt5; then
+ if ! use gui ; then
DOC_CONTENTS+="\n\n
- USE flag 'qt5' is disabled, 'openmw-launcher' and
+ USE flag 'gui' is disabled, 'openmw-launcher' and
'openmw-wizard' are not available. You are on your own for
making the Morrowind data files available and pointing
openmw at them.\n\n