Skip to content

Commit

Permalink
games-emulation/dolphin: bump up to 5.0_p20210506
Browse files Browse the repository at this point in the history
Reported-by: Toralf Förster
Closes: https://bugs.gentoo.org/789609
Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Sergei Trofimovich <[email protected]>
  • Loading branch information
Sergei Trofimovich committed May 12, 2021
1 parent 9a9faf9 commit 48f3056
Show file tree
Hide file tree
Showing 2 changed files with 196 additions and 0 deletions.
1 change: 1 addition & 0 deletions games-emulation/dolphin/Manifest
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
DIST dolphin-5.0_p20200705.tar.gz 41580877 BLAKE2B 78fce8cb10543857633d66789999b0ebb8f195e10652b9316f3346d5c84797dea96a31f509f86cb9470b4b9677ca58c4a865494121277cd0bc7dcc93932da9f4 SHA512 8b1aed8c98ff7205d7b1716aea3faad0bfa3d1ff3fe3a616431a421ae62592a57887e18295276b7a0fee52d19e641b72d5dc00e071cefea7fbe40adc9f3f01a1
DIST dolphin-5.0_p20210506.tar.gz 42098693 BLAKE2B bb9e5b5eb344bd944753c0198d5835109399fdfae46e6858833e5f279ff1979d39e0c512bedb96a91a1241fff525c6f945d16ce1a6b6cc22798490d73b853862 SHA512 5d23e9356995011a0e7b07622d58c8dddc5134a4ec83b3d9343b9eca8d0d2c200ea8c9a299c6aa2550ca74d8e28e258531368f7c167fe620053eb2a0f73b1f2f
195 changes: 195 additions & 0 deletions games-emulation/dolphin/dolphin-5.0_p20210506.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

PLOCALES="ar ca cs da de el en es fa fr hr hu it ja ko ms nb nl pl pt pt_BR ro ru sr sv tr zh_CN zh_TW"
PLOCALE_BACKUP="en"

inherit cmake desktop xdg-utils l10n pax-utils

if [[ ${PV} == *9999 ]]
then
EGIT_REPO_URI="https://github.com/dolphin-emu/dolphin"
inherit git-r3
else
inherit vcs-snapshot
commit=eb5cd9be78c76b9ccbab9e5fbd1721ef6876cd68
SRC_URI="https://github.com/dolphin-emu/dolphin/archive/${commit}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~arm64"
fi

DESCRIPTION="Gamecube and Wii game emulator"
HOMEPAGE="https://www.dolphin-emu.org/"

LICENSE="GPL-2"
SLOT="0"
IUSE="alsa bluetooth discord-presence doc +evdev ffmpeg log lto profile pulseaudio +qt5 systemd upnp vulkan"

RDEPEND="
dev-libs/hidapi:0=
>=dev-libs/libfmt-7.1:0=
dev-libs/lzo:2=
dev-libs/pugixml:0=
media-libs/libpng:0=
media-libs/libsfml
media-libs/mesa[egl]
net-libs/enet:1.3
net-libs/mbedtls:0=
net-misc/curl:0=
sys-libs/readline:0=
sys-libs/zlib:0=
x11-libs/libXext
x11-libs/libXi
x11-libs/libXrandr
virtual/libusb:1
virtual/opengl
alsa? ( media-libs/alsa-lib )
bluetooth? ( net-wireless/bluez )
evdev? (
dev-libs/libevdev
virtual/udev
)
ffmpeg? ( media-video/ffmpeg:= )
profile? ( dev-util/oprofile )
pulseaudio? ( media-sound/pulseaudio )
qt5? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtwidgets:5
)
systemd? ( sys-apps/systemd:0= )
upnp? ( net-libs/miniupnpc )
"
DEPEND="${RDEPEND}"
BDEPEND="
sys-devel/gettext
virtual/pkgconfig"

# vulkan-loader required for vulkan backend which can be selected
# at runtime.
RDEPEND="${RDEPEND}
vulkan? ( media-libs/vulkan-loader )"

src_prepare() {
cmake_src_prepare

# Remove all the bundled libraries that support system-installed
# preference. See CMakeLists.txt for conditional 'add_subdirectory' calls.
local KEEP_SOURCES=(
Bochs_disasm
FreeSurround

# vulkan's API is not backwards-compatible:
# new release dropped VK_PRESENT_MODE_RANGE_SIZE_KHR
# but dolphin still relies on it, bug #729832
Vulkan

cpp-optparse
# no support for for using system library
glslang
imgui

# not packaged, tiny header library
rangeset

# FIXME: xxhash can't be found by cmake
xxhash
# no support for for using system library
minizip
# soundtouch uses shorts, not floats
soundtouch
cubeb
discord-rpc
# Their build set up solely relies on the build in gtest.
gtest
# gentoo's version requires exception support.
# dolphin disables exceptions and fails the build.
picojson
# No code to detect shared library.
zstd
)
local s
for s in "${KEEP_SOURCES[@]}"; do
mv -v "Externals/${s}" . || die
done
einfo "removing sources: $(echo Externals/*)"
rm -r Externals/* || die "Failed to delete Externals dir."
for s in "${KEEP_SOURCES[@]}"; do
mv -v "${s}" "Externals/" || die
done

remove_locale() {
# Ensure preservation of the backup locale when no valid LINGUA is set
if [[ "${PLOCALE_BACKUP}" == "${1}" ]] && [[ "${PLOCALE_BACKUP}" == "$(l10n_get_locales)" ]]; then
return
else
rm "Languages/po/${1}.po" || die
fi
}

l10n_find_plocales_changes "Languages/po/" "" '.po'
l10n_for_each_disabled_locale_do remove_locale

# About 50% compile-time speedup
use vulkan || sed -i -e '/Externals\/glslang/d' CMakeLists.txt

# Remove dirty suffix: needed for netplay
sed -i -e 's/--dirty/&=""/' CMakeLists.txt
}

src_configure() {
local mycmakeargs=(
# Use ccache only when user did set FEATURES=ccache (or similar)
# not when ccache binary is present in system (automagic).
-DCCACHE_BIN=CCACHE_BIN-NOTFOUND
-DENABLE_ALSA=$(usex alsa)
-DENABLE_BLUEZ=$(usex bluetooth)
-DENABLE_EVDEV=$(usex evdev)
-DENCODE_FRAMEDUMPS=$(usex ffmpeg)
-DENABLE_LLVM=OFF
-DENABLE_LTO=$(usex lto)
-DENABLE_PULSEAUDIO=$(usex pulseaudio)
-DENABLE_QT=$(usex qt5)
-DENABLE_SDL=OFF # not supported: #666558
-DENABLE_VULKAN=$(usex vulkan)
-DFASTLOG=$(usex log)
-DOPROFILING=$(usex profile)
-DUSE_DISCORD_PRESENCE=$(usex discord-presence)
-DUSE_SHARED_ENET=ON
-DUSE_UPNP=$(usex upnp)

# Undo cmake.eclass's defaults.
# All dolphin's libraries are private
# and rely on circular dependency resolution.
-DBUILD_SHARED_LIBS=OFF

# Avoid warning spam around unset variables.
-Wno-dev
)

cmake_src_configure
}

src_install() {
cmake_src_install

dodoc Readme.md
if use doc; then
dodoc -r docs/ActionReplay docs/DSP docs/WiiMote
fi

doicon -s 48 Data/dolphin-emu.png
doicon -s scalable Data/dolphin-emu.svg
doicon Data/dolphin-emu.svg
}

pkg_postinst() {
# Add pax markings for hardened systems
pax-mark -m "${EPREFIX}"/usr/games/bin/"${PN}"-emu
xdg_icon_cache_update
}

pkg_postrm() {
xdg_icon_cache_update
}

0 comments on commit 48f3056

Please sign in to comment.