aboutsummaryrefslogtreecommitdiffstats
path: root/games-emulation/cemu/cemu-2.0_p20240315.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'games-emulation/cemu/cemu-2.0_p20240315.ebuild')
-rw-r--r--games-emulation/cemu/cemu-2.0_p20240315.ebuild91
1 files changed, 91 insertions, 0 deletions
diff --git a/games-emulation/cemu/cemu-2.0_p20240315.ebuild b/games-emulation/cemu/cemu-2.0_p20240315.ebuild
new file mode 100644
index 0000000..b5defc3
--- /dev/null
+++ b/games-emulation/cemu/cemu-2.0_p20240315.ebuild
@@ -0,0 +1,91 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake desktop xdg
+
+DESCRIPTION="Wii U emulator."
+HOMEPAGE="https://cemu.info/ https://github.com/cemu-project/Cemu"
+SHA="eaa82817dd235b5067002df76b06e66a550ac1d3"
+MY_PN="Cemu"
+GLSLANG_SHA="36d08c0d940cf307a23928299ef52c7970d8cee6"
+IMGUI_PV="1.88"
+SRC_URI="https://github.com/cemu-project/${MY_PN}/archive/${SHA}.tar.gz -> ${P}.tar.gz
+ https://github.com/ocornut/imgui/archive/refs/tags/v${IMGUI_PV}.tar.gz -> ${PN}-imgui-${IMGUI_PV}.tar.gz
+ https://github.com/KhronosGroup/glslang/archive/${GLSLANG_SHA}.tar.gz -> glslang-${GLSLANG_SHA:0:7}.tar.gz"
+
+LICENSE="MPL-2.0 ISC"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+cubeb discord +sdl +vulkan"
+
+DEPEND="app-arch/zarchive
+ app-arch/zstd
+ cubeb? ( media-libs/cubeb )
+ dev-libs/boost
+ dev-libs/glib
+ dev-libs/hidapi
+ >=dev-libs/libfmt-9.1.0:=
+ dev-libs/libzip
+ dev-libs/openssl
+ dev-libs/pugixml
+ dev-libs/rapidjson
+ dev-libs/wayland
+ media-libs/libglvnd
+ media-libs/libsdl2[haptic,joystick,threads]
+ net-misc/curl
+ sys-libs/zlib
+ vulkan? ( dev-util/vulkan-headers )
+ x11-libs/gtk+:3[wayland]
+ x11-libs/libX11
+ x11-libs/wxGTK:3.2-gtk3[opengl,X]
+ virtual/libusb"
+RDEPEND="${DEPEND}"
+BDEPEND="media-libs/glm"
+
+S="${WORKDIR}/${MY_PN}-${SHA}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0002-remove-default-from-system-g.patch"
+)
+
+src_prepare() {
+ sed -re \
+ 's/^target_link_libraries\(CemuBin.*/target_link_libraries(CemuBin PRIVATE wayland-client/' \
+ -i src/CMakeLists.txt || die
+ mv "${WORKDIR}/glslang-${GLSLANG_SHA}" "${S}/glslang" || die
+ sed -re 's/find_package\(glslang.*/add_subdirectory(glslang)/' -i CMakeLists.txt || die
+ cmake_src_prepare
+ rmdir dependencies/imgui || die
+ mv "${WORKDIR}/imgui-${IMGUI_PV}" dependencies/imgui || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=OFF
+ "-DENABLE_CUBEB=$(usex cubeb)"
+ "-DENABLE_DISCORD_RPC=$(usex discord)"
+ -DENABLE_OPENGL=ON
+ "-DENABLE_SDL=$(usex sdl)"
+ -DENABLE_VCPKG=OFF
+ "-DENABLE_VULKAN=$(usex vulkan)"
+ -DENABLE_WXWIDGETS=ON
+ -DPORTABLE=OFF
+ -DCMAKE_DISABLE_PRECOMPILE_HEADERS=OFF
+ -DALLOW_EXTERNAL_SPIRV_TOOLS=ON
+ -Wno-dev
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ newbin "bin/${MY_PN}_relwithdebinfo" "$MY_PN"
+ insinto "/usr/share/${PN}/gameProfiles"
+ doins -r bin/gameProfiles/default/*
+ insinto "/usr/share/${PN}"
+ doins -r bin/resources bin/shaderCache
+ einstalldocs
+ newicon -s 128 src/resource/logo_icon.png "info.${PN}.${MY_PN}.png"
+ domenu "dist/linux/info.${PN}.${MY_PN}.desktop"
+}