Gentoo Archives: gentoo-commits

From: Haelwenn Monnier <contact@×××××××××.me>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/proj/guru:master commit in: games-emulation/citra/, games-emulation/citra-canary/
Date: Mon, 30 Jan 2023 18:24:45
Message-Id: 1675074825.f5eb9139008b7003f65c94e82bb984829d964900.lanodan@gentoo
1 commit: f5eb9139008b7003f65c94e82bb984829d964900
2 Author: Samuel Bauer <samuel.bauer <AT> yahoo <DOT> fr>
3 AuthorDate: Mon Jan 30 10:33:45 2023 +0000
4 Commit: Haelwenn Monnier <contact <AT> hacktivis <DOT> me>
5 CommitDate: Mon Jan 30 10:33:45 2023 +0000
6 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=f5eb9139
7
8 games-emulation/citra*: updates
9
10 Signed-off-by: Samuel Bauer <samuel.bauer <AT> yahoo.fr>
11
12 .../citra-canary/citra-canary-9999.ebuild | 72 ++++++++++++----------
13 games-emulation/citra/citra-9999.ebuild | 28 ++++++---
14 2 files changed, 58 insertions(+), 42 deletions(-)
15
16 diff --git a/games-emulation/citra-canary/citra-canary-9999.ebuild b/games-emulation/citra-canary/citra-canary-9999.ebuild
17 index 7a950802d..f1859c3a5 100644
18 --- a/games-emulation/citra-canary/citra-canary-9999.ebuild
19 +++ b/games-emulation/citra-canary/citra-canary-9999.ebuild
20 @@ -1,4 +1,4 @@
21 -# Copyright 2019-2022 Gentoo Authors
22 +# Copyright 2019-2023 Gentoo Authors
23 # Distributed under the terms of the GNU General Public License v2
24
25 EAPI=8
26 @@ -8,19 +8,17 @@ inherit cmake git-r3 xdg
27 DESCRIPTION="A Nintendo 3DS Emulator"
28 HOMEPAGE="https://citra-emu.org"
29 EGIT_REPO_URI="https://github.com/citra-emu/citra-canary"
30 -EGIT_SUBMODULES=( '*'
31 - '-boost' '-catch' '-cryptopp' '-cubeb' '-enet'
32 - '-inih' '-libressl' '-libusb' '-teakra' '-zstd'
33 - '-externals/dynarmic/externals/fmt'
34 - '-externals/dynarmic/externals/xbyak'
35 +EGIT_SUBMODULES=(
36 + 'catch2' 'discord-rpc' 'dynarmic' 'libyuv'
37 + 'lodepng' 'nihstro' 'soundtouch' 'xbyak'
38 )
39
40 LICENSE="GPL-2"
41 SLOT="0"
42 KEYWORDS=""
43 -IUSE="cubeb +hle-sound nls +qt5 sdl system-libfmt +telemetry video"
44 +IUSE="cubeb +hle-sound nls +qt5 sdl +system-libfmt +telemetry video"
45
46 -DEPEND="
47 +RDEPEND="
48 cubeb? ( media-libs/cubeb )
49 !hle-sound? ( media-libs/fdk-aac )
50 hle-sound? ( media-video/ffmpeg[fdk] )
51 @@ -34,24 +32,25 @@ DEPEND="
52 media-libs/libsdl2
53 >=dev-libs/inih-52
54 )
55 - system-libfmt? ( <=dev-libs/libfmt-8 )
56 - video? ( media-video/ffmpeg )
57 - >=dev-libs/openssl-1.1
58 + system-libfmt? ( >=dev-libs/libfmt-9:= )
59 + video? ( media-video/ffmpeg:= )
60 + >=dev-libs/openssl-1.1:=
61 app-arch/zstd
62 - dev-cpp/catch:0
63 - dev-cpp/robin-map
64 dev-libs/boost:=
65 - dev-libs/crypto++
66 + dev-libs/crypto++:=
67 dev-libs/teakra
68 - net-libs/enet:1.3
69 + net-libs/enet:1.3=
70 virtual/libusb:1
71 "
72 -RDEPEND="${DEPEND}"
73 +DEPEND="${RDEPEND}"
74 +BDEPEND="dev-cpp/cpp-httplib
75 + dev-cpp/cpp-jwt
76 + dev-cpp/robin-map"
77 REQUIRED_USE="|| ( qt5 sdl )"
78
79 src_unpack() {
80 - if use system-libfmt; then
81 - EGIT_SUBMODULES+=( "-fmt" "-externals/dynarmic/externals/fmt" )
82 + if ! use system-libfmt; then
83 + EGIT_SUBMODULES+=( 'fmt' )
84 fi
85 git-r3_src_unpack
86
87 @@ -81,7 +80,7 @@ src_prepare() {
88 sed -i '/install/s/citra\./citra-canary./' CMakeLists.txt || die
89
90 # Dynarmic: ensure those are unbundled
91 - for ext in fmt catch robin-map; do
92 + for ext in fmt robin-map; do
93 rm -rf externals/dynarmic/externals/${ext} || die
94 done
95
96 @@ -113,10 +112,7 @@ src_prepare() {
97
98 if use system-libfmt; then # Unbundle libfmt
99 sed -i -e '/fmt/d' externals/CMakeLists.txt || die
100 - sed -i -e 's/fmt/&::&/' -e '1ifind_package(fmt)' \
101 - src/{core,citra,citra_qt,dedicated_room,input_common,tests,video_core}/CMakeLists.txt || die
102 - sed -i -e '1ifind_package(fmt)' externals/dynarmic/src/CMakeLists.txt || die
103 - sed -i -e '/^#pragma once$/a#include <algorithm>' src/common/logging/log.h || die
104 + sed -i -e '/find_package(Threads/afind_package(fmt)' CMakeLists.txt || die
105 fi
106
107 # Unbundle teakra
108 @@ -140,14 +136,7 @@ src_prepare() {
109 -e '1ifind_package(PkgConfig REQUIRED)\npkg_check_modules(CRYPTOPP REQUIRED libcryptopp)' \
110 src/dedicated_room/CMakeLists.txt \
111 src/core/CMakeLists.txt || die
112 - sed -i -e '/cryptopp/d' externals/CMakeLists.txt || die
113 -
114 - # Unbundle catch
115 - sed -i -e '1ifind_package(Catch2)' src/tests/CMakeLists.txt externals/dynarmic/tests/CMakeLists.txt || die
116 - sed -i -e '/target_link_libraries/s/catch/Catch2::Catch2/' externals/dynarmic/tests/CMakeLists.txt || die
117 - sed -i -e '/target_link_libraries/s/catch-single-include/Catch2::Catch2/' src/tests/CMakeLists.txt || die
118 - sed -i -e '/catch/d' externals/CMakeLists.txt externals/dynarmic/externals/CMakeLists.txt || die
119 - grep -rl 'include <catch.hpp>' externals/dynarmic | xargs sed -i -e '/include/s:catch.hpp:catch/&:' || die
120 + sed -i -e '/cryptopp-cmake/d' externals/CMakeLists.txt || die
121
122 # Unbundle cubeb
123 sed -i -e '/CUBEB/,/endif()/d' externals/CMakeLists.txt || die
124 @@ -155,7 +144,20 @@ src_prepare() {
125 sed -i -e '$afind_package(cubeb REQUIRED)\n' CMakeLists.txt || die
126 fi
127
128 - # TODO unbundle xbyak (wait for 5.96 in ytree)
129 + # Unbundle cpp-httplib
130 + sed -i -e '/# httplib/,/target_link_libraries(httplib/d' externals/CMakeLists.txt || die
131 + sed -i -e 's/ httplib//' src/{web_service,network,core}/CMakeLists.txt || die
132 +
133 + # Unbundle cpp-jwt
134 + sed -i -e '/# cpp-jwt/,/CPP_JWT_USE_VENDORED_NLOHMANN_JSON/d' externals/CMakeLists.txt || die
135 + sed -i -e 's/ cpp-jwt//' src/web_service/CMakeLists.txt || die
136 +
137 + # Unbundle xbyak
138 + sed -i -e '/^install(/,/^)$/d' externals/xbyak/CMakeLists.txt || die
139 +
140 + # Do not install dynarmic
141 + sed -i -e '/^# Install/,$d' externals/dynarmic/CMakeLists.txt || die
142 +
143 cmake_src_prepare
144 }
145
146 @@ -171,9 +173,15 @@ src_configure() {
147 -DENABLE_WEB_SERVICE=$(usex telemetry)
148 -DGENERATE_QT_TRANSLATION=$(use qt5 && usex nls || echo OFF)
149 -DUSE_SYSTEM_BOOST=ON
150 + -DUSE_SYSTEM_SDL2=ON
151 )
152 cmake_src_configure
153
154 # This would be better in src_unpack but it would be unlinked
155 mv "${S}"/compatibility_list.json "${BUILD_DIR}"/dist/compatibility_list/ || die
156 }
157 +
158 +src_install() {
159 + cmake_src_install
160 + rm -rf "${D}"/usr/$(get_libdir)/cmake
161 +}
162
163 diff --git a/games-emulation/citra/citra-9999.ebuild b/games-emulation/citra/citra-9999.ebuild
164 index 2bf048892..2a6d8e781 100644
165 --- a/games-emulation/citra/citra-9999.ebuild
166 +++ b/games-emulation/citra/citra-9999.ebuild
167 @@ -1,4 +1,4 @@
168 -# Copyright 2019-2022 Gentoo Authors
169 +# Copyright 2019-2023 Gentoo Authors
170 # Distributed under the terms of the GNU General Public License v2
171
172 EAPI=8
173 @@ -16,7 +16,7 @@ EGIT_SUBMODULES=(
174 LICENSE="GPL-2"
175 SLOT="0"
176 KEYWORDS=""
177 -IUSE="cubeb +hle-sound nls +qt5 sdl system-libfmt +telemetry video"
178 +IUSE="cubeb +hle-sound nls +qt5 sdl +system-libfmt +telemetry video"
179
180 RDEPEND="
181 cubeb? ( media-libs/cubeb )
182 @@ -32,7 +32,7 @@ RDEPEND="
183 media-libs/libsdl2
184 >=dev-libs/inih-52
185 )
186 - system-libfmt? ( <=dev-libs/libfmt-8:= )
187 + system-libfmt? ( >=dev-libs/libfmt-9:= )
188 video? ( media-video/ffmpeg:= )
189 >=dev-libs/openssl-1.1:=
190 app-arch/zstd
191 @@ -42,8 +42,8 @@ RDEPEND="
192 net-libs/enet:1.3=
193 virtual/libusb:1
194 "
195 -DEPEND="${RDEPEND}
196 - dev-cpp/cpp-httplib
197 +DEPEND="${RDEPEND}"
198 +BDEPEND="dev-cpp/cpp-httplib
199 dev-cpp/cpp-jwt
200 dev-cpp/robin-map"
201 REQUIRED_USE="|| ( qt5 sdl )"
202 @@ -94,10 +94,7 @@ src_prepare() {
203
204 if use system-libfmt; then # Unbundle libfmt
205 sed -i -e '/fmt/d' externals/CMakeLists.txt || die
206 - sed -i -e 's/fmt/&::&/' -e '1ifind_package(fmt)' \
207 - src/{core,citra,citra_qt,dedicated_room,input_common,tests,video_core}/CMakeLists.txt || die
208 - sed -i -e '1ifind_package(fmt)' externals/dynarmic/src/CMakeLists.txt || die
209 - sed -i -e '/^#pragma once$/a#include <algorithm>' src/common/logging/log.h || die
210 + sed -i -e '/find_package(Threads/afind_package(fmt)' CMakeLists.txt || die
211 fi
212
213 # Unbundle teakra
214 @@ -121,7 +118,7 @@ src_prepare() {
215 -e '1ifind_package(PkgConfig REQUIRED)\npkg_check_modules(CRYPTOPP REQUIRED libcryptopp)' \
216 src/dedicated_room/CMakeLists.txt \
217 src/core/CMakeLists.txt || die
218 - sed -i -e '/cryptopp/d' externals/CMakeLists.txt || die
219 + sed -i -e '/cryptopp-cmake/d' externals/CMakeLists.txt || die
220
221 # Unbundle cubeb
222 sed -i -e '/CUBEB/,/endif()/d' externals/CMakeLists.txt || die
223 @@ -137,6 +134,12 @@ src_prepare() {
224 sed -i -e '/# cpp-jwt/,/CPP_JWT_USE_VENDORED_NLOHMANN_JSON/d' externals/CMakeLists.txt || die
225 sed -i -e 's/ cpp-jwt//' src/web_service/CMakeLists.txt || die
226
227 + # Unbundle xbyak
228 + sed -i -e '/^install(/,/^)$/d' externals/xbyak/CMakeLists.txt || die
229 +
230 + # Do not install dynarmic
231 + sed -i -e '/^# Install/,$d' externals/dynarmic/CMakeLists.txt || die
232 +
233 cmake_src_prepare
234 }
235
236 @@ -159,3 +162,8 @@ src_configure() {
237 # This would be better in src_unpack but it would be unlinked
238 mv "${S}"/compatibility_list.json "${BUILD_DIR}"/dist/compatibility_list/ || die
239 }
240 +
241 +src_install() {
242 + cmake_src_install
243 + rm -rf "${D}"/usr/$(get_libdir)/cmake
244 +}