games-engines/openmw: add 0.51.0

Closes: https://bugs.gentoo.org/976979
Signed-off-by: Alexey Sokolov <alexey+gentoo@asokolov.org>
Part-of: https://codeberg.org/gentoo/gentoo/pulls/1143
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Alexey Sokolov
2026-06-12 00:56:25 +01:00
committed by Sam James
parent 8a357ff550
commit f6a9037e1a
3 changed files with 207 additions and 0 deletions

View File

@@ -1,2 +1,3 @@
DIST openmw-0.50.0.tar.gz 6244084 BLAKE2B b2354d3e6328db54d4ddad9d7805d6af0c3dcf480e1ee24a37100389c1ab5c2a509692a0dfd0863c27e306e60cf35e5baf3d2db325b152ef7f28f8ac7fc5b072 SHA512 9221a3825da265b2145b7cf4a5f197b52ac890e27e0c303358b92c7030e92787d039afb4f66bde39304937bd9f9f00e4f66b10c07abf108eabbd818aab3a513b
DIST openmw-0.51.0.tar.gz 6325148 BLAKE2B 828a0c5663bee6ffafdabbe521d8400f7f28a1732ab922ddb9fbd78591a4549b48fdb556e2fb02e54a4695370855adb77fe21b78e64582fb7ad561a2886ca377 SHA512 a993896fe3f9e0c3c4b5d32cf893d88ac09cfefa8ef3afeb3c0e7b726a71272a07350109657effb1dfdc205db49cf02d23d10880d8468206f95b4cd7b146695f
DIST openmw-template-8966dab24692555eec720c854fb0f73d108070cd.omwgame 139730 BLAKE2B bf7f96912fd828078c62d112f3ff83e9a35298516135fb46b15ed01fc0260247cc0cba4aa3bbc55bf6a688f216384dbd9a5aa3328c4387b9b180b80f7463963e SHA512 6e38642bcf013c5f496a9cb0bf3ec7c9553b6e86b836e7844824c5a05f556c9391167214469b6318401684b702d7569896bf743c85aee4198612b3315ba778d6

View File

@@ -0,0 +1,15 @@
Fix build with GCC 17
https://bugs.gentoo.org/976979
https://gitlab.com/OpenMW/openmw/-/merge_requests/5346
--- a/apps/wizard/unshield/inisettings.hpp
+++ b/apps/wizard/unshield/inisettings.hpp
@@ -1,6 +1,7 @@
#ifndef INISETTINGS_HPP
#define INISETTINGS_HPP
+#include <fstream>
#include <QHash>
#include <QVariant>

View File

@@ -0,0 +1,191 @@
# 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 readme.gentoo-r1 xdg
DESCRIPTION="Open source reimplementation of TES III: Morrowind"
HOMEPAGE="https://openmw.org/ https://gitlab.com/OpenMW/openmw"
if [[ ${PV} == *9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/OpenMW/openmw.git"
else
SRC_URI="https://github.com/OpenMW/openmw/archive/${P}.tar.gz"
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}/game_template/data/template.omwgame
-> openmw-template-${MY_TEMPLATE_COMMIT}.omwgame
)
"
LICENSE="GPL-3 MIT BitstreamVera ZLIB"
SLOT="0"
IUSE="doc devtools +gui +osg-fork test"
REQUIRED_USE="${LUA_REQUIRED_USE}"
RESTRICT="!test? ( test )"
# 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-cpp/yaml-cpp:=
dev-db/sqlite:3
dev-games/recastnavigation:=
dev-libs/collada-dom:=
>=dev-games/mygui-3.4.3:=
dev-libs/boost:=[zlib]
dev-libs/icu:=
dev-libs/tinyxml[stl]
media-libs/libsdl2[joystick,opengl,video]
media-libs/openal
media-video/ffmpeg:=
>=sci-physics/bullet-2.86:=[double-precision]
virtual/zlib:=
virtual/opengl
osg-fork? ( >=dev-games/openscenegraph-openmw-3.6:=[collada(-),jpeg,png,sdl,svg,truetype,zlib] )
!osg-fork? ( >=dev-games/openscenegraph-3.6.5:=[collada(-),jpeg,png,sdl,svg,truetype,zlib] )
gui? (
app-arch/unshield:=
dev-qt/qtbase:6[gui,network,opengl,widgets]
dev-qt/qtsvg:6
)
"
BDEPEND="
virtual/pkgconfig
doc? (
app-text/doxygen[dot]
dev-python/sphinx
)
gui? (
dev-qt/qttools:6[linguist]
)
test? (
dev-cpp/gtest
)
"
PATCHES=(
"${FILESDIR}/openmw-0.51.0-gcc17.patch"
)
src_configure() {
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 gui)
-DBUILD_OPENCS=$(usex devtools $(usex gui))
-DBUILD_WIZARD=$(usex gui)
-DBUILD_NIFTEST=$(usex devtools)
-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
-DOPENMW_USE_SYSTEM_SQLITE3=ON
-DQT_DIR="${ESYSROOT}/usr/lib64/cmake/Qt6"
)
if [[ ${ELUA} == luajit ]]; then
mycmakeargs+=(
-DUSE_LUAJIT=ON
)
else
mycmakeargs+=(
-DUSE_LUAJIT=OFF
-DLua_FIND_VERSION_MAJOR=$(ver_cut 1 $(lua_get_version))
-DLua_FIND_VERSION_MINOR=$(ver_cut 2 $(lua_get_version))
-DLua_FIND_VERSION_COUNT=2
-DLua_FIND_VERSION_EXACT=ON
)
fi
if use test ; then
mkdir -p "${BUILD_DIR}"/apps/components_tests/data || die
cp "${DISTDIR}"/openmw-template-${MY_TEMPLATE_COMMIT}.omwgame \
"${BUILD_DIR}"/apps/components_tests/data/template.omwgame || die
fi
cmake_src_configure
}
src_compile() {
cmake_src_compile
if use doc ; then
cmake_src_compile doc
find "${BUILD_DIR}"/docs/Doxygen/html \
-name '*.md5' -type f -delete || die
HTML_DOCS=( "${BUILD_DIR}"/docs/Doxygen/html/. )
fi
}
src_test() {
# Lua 5.x is supported in theory, but don't work as well, the test fails
# Upstream recommends luajit, but it has less arch coverage
if [[ ${ELUA} != luajit ]]; then
elog "Skipping tests on ${ELUA}"
return
fi
pushd "${BUILD_DIR}" > /dev/null || die
./components-tests || die
./openmw-tests || die
if use gui && use devtools; then
./openmw-cs-tests || die
fi
popd > /dev/null || die
}
src_install() {
cmake_src_install
local DOC_CONTENTS="
You need the original Morrowind data files. If you haven't
installed them yet, you can install them straight via the
installation wizard which is the officially supported method
(either by using the launcher or by calling 'openmw-wizard'
directly).\n"
if ! use gui ; then
DOC_CONTENTS+="\n\n
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
Additionally; you must import the Morrowind.ini file before
running openmw with the Morrowind data files for the first
time. Typically this can be done like so:\n\n
\t mkdir -p ~/.config/openmw\n
\t openmw-iniimporter /path/to/Morrowind.ini ~/.config/openmw/openmw.cfg"
fi
readme.gentoo_create_doc
}
pkg_postinst() {
xdg_pkg_postinst
readme.gentoo_print_elog
}