forked from suyu/suyu
Compare commits
209 commits
master-bac
...
dev
Author | SHA1 | Date | |
---|---|---|---|
29f7c7d1b9 | |||
8bd3720d36 | |||
|
b6ad090424 | ||
|
ab3e51e50d | ||
|
3dd0802be6 | ||
|
d12b127c45 | ||
|
383a243aa7 | ||
|
fec573fd6a | ||
|
d0afa9b1ad | ||
|
3e7c0343bd | ||
|
460b6be75f | ||
93dc7fb6b2 | |||
|
e0ff7d0a6e | ||
|
fb326514bf | ||
|
e9eb3f3799 | ||
|
5e9a855f1e | ||
|
5eaab8d69b | ||
|
b416389533 | ||
|
2682e7739a | ||
|
2ba2db7795 | ||
|
796ca02437 | ||
|
2a148c7699 | ||
|
a24ee4b6c1 | ||
|
f127dd881d | ||
|
ee4fd3b2ce | ||
|
c433758ed0 | ||
|
7295a6c1ad | ||
|
94251409c1 | ||
|
aaff9411ec | ||
|
3075d74067 | ||
|
f085f7e917 | ||
|
2ceae9a0c1 | ||
|
19c2b08ab4 | ||
|
2a28c85ff9 | ||
15b752d63e | |||
3f178ae15e | |||
5aa53d12df | |||
|
8755d2bad4 | ||
|
44ffa0092e | ||
|
c74679edf3 | ||
012bc479da | |||
|
8cd1409673 | ||
|
714a68d594 | ||
|
70d0df5e55 | ||
|
94a84f5943 | ||
|
c33ccfaa71 | ||
|
d34ec92720 | ||
|
b98bd24d6a | ||
|
bd9f1695cf | ||
|
22f8b858a2 | ||
|
269d113c29 | ||
|
c4bb998c68 | ||
|
1157a4c1f9 | ||
|
5d8f3f7cb1 | ||
|
7fbffdaa11 | ||
|
e1538413e9 | ||
|
6cb26ce7bc | ||
|
777587ef0e | ||
|
f1ef23cc6a | ||
|
09c26cac1c | ||
|
748bda79aa | ||
|
8b6a4c21f3 | ||
|
60d62a9277 | ||
|
45eac175db | ||
|
578642944a | ||
|
c3a09c8d23 | ||
|
2dadadfd2e | ||
|
3a5d86fdfc | ||
|
ad12c0cb94 | ||
|
45dd4afa1f | ||
|
aab8b02793 | ||
|
cc7a70cb6d | ||
|
bc4f5c38fe | ||
|
47ab25dbf7 | ||
|
8b395f188c | ||
|
e29c55dd98 | ||
|
3037f0b869 | ||
|
8b8aa84e70 | ||
|
95bd1120a7 | ||
|
9895cc94d0 | ||
84aa715eb1 | |||
b09f9ee1f4 | |||
|
8c64f9a34d | ||
|
113b014b08 | ||
|
18baf880c4 | ||
|
e5a954617b | ||
|
feb3b6ece3 | ||
|
c41d9d62a3 | ||
|
b2b769e45b | ||
|
de83c5e6a6 | ||
9afd74abde | |||
|
bd5bdbe6c7 | ||
|
ca9c2542b7 | ||
8c44172be9 | |||
|
d29f3066c4 | ||
|
8d402837fd | ||
|
cb9654651a | ||
|
9858de7fce | ||
|
ad32b5371d | ||
|
8dae7d29d6 | ||
|
4a66295a6d | ||
|
72d4d7b1b8 | ||
|
a1db3cb668 | ||
|
ad43131df5 | ||
|
d02af377d4 | ||
|
7a33aedc57 | ||
|
16e19b0b3c | ||
|
362f2047b4 | ||
|
27b3044879 | ||
|
774b4cd466 | ||
|
539849b4d6 | ||
|
769aefe667 | ||
|
6cd282b8e1 | ||
|
d3015162ac | ||
|
def7154dfb | ||
|
afec3b0125 | ||
|
3d241d6c48 | ||
|
9aeaf66e34 | ||
|
88b901a24e | ||
|
c445fa1e3e | ||
|
faf840f7d5 | ||
5db58434e5 | |||
664e77b4d8 | |||
|
51862e862d | ||
|
ba5b604f9a | ||
|
e183fcaf02 | ||
|
95c44a3ee9 | ||
|
18d1af8841 | ||
|
9d8447fa33 | ||
|
d68a62a874 | ||
|
edf7a3be81 | ||
|
16dfc39f89 | ||
|
e8f646b0fd | ||
|
38877eb73b | ||
|
215003ebd9 | ||
|
7ff7a4b67f | ||
|
0cc82a9f5e | ||
|
cdd4ec7663 | ||
|
6d4e438998 | ||
|
e19072e26e | ||
|
356ed8b1b7 | ||
|
8e3190a506 | ||
|
ee5b0a9262 | ||
|
e955bea49f | ||
|
93dcbbeccf | ||
|
8633ba8769 | ||
|
fe65f14e69 | ||
|
f0b13ee2f6 | ||
|
3e8dc06867 | ||
3bfadff6a4 | |||
|
6f0e60b8d3 | ||
|
3ed2cc91fa | ||
|
d5df2ace8e | ||
|
099df26bf6 | ||
|
e4fc3840c1 | ||
|
59275a47e8 | ||
|
923db982f1 | ||
|
036a7e5ace | ||
|
a4ffb72144 | ||
|
a3c9ddb9c8 | ||
|
a882e3aad2 | ||
|
5c00d6e943 | ||
|
357bd403b0 | ||
|
e29d50c295 | ||
|
b5ca0beb34 | ||
|
915331dc91 | ||
|
1c9d3b7fe9 | ||
|
36e984c2f0 | ||
|
72015483da | ||
|
70889bac6d | ||
|
05c5ab14ff | ||
|
04d60c245e | ||
|
35e99a9bff | ||
|
b92e629884 | ||
|
72fa5ff724 | ||
|
2442980941 | ||
|
7267e8ca0d | ||
|
9a78717925 | ||
|
e6d53818b7 | ||
|
5ea1dc73d4 | ||
|
8761ca2983 | ||
|
758e12daa2 | ||
|
6df2ff2592 | ||
|
069482a788 | ||
|
c6b015394b | ||
600f66ebbd | |||
|
885161d45f | ||
|
1f7a8ed4ed | ||
|
d3a82480da | ||
|
f772e7d776 | ||
|
93102c4140 | ||
|
4b917ac0c7 | ||
|
292d02c039 | ||
|
ed20ee50f5 | ||
|
2611f474e2 | ||
|
c6de190c91 | ||
|
13e4a1df23 | ||
|
e0c5a304e2 | ||
|
cdbdf63ebe | ||
|
b9e198f0a8 | ||
|
9c12172ffe | ||
|
ac9963aea8 | ||
|
c4d58ce508 | ||
|
b108b5a8aa | ||
|
fdadc50fff | ||
|
5720814b13 | ||
|
95cf47be69 | ||
|
89d88442c0 | ||
|
159507e2a0 |
910 changed files with 75067 additions and 62468 deletions
|
@ -9,7 +9,7 @@ ccache -s
|
||||||
BUILD_FLAVOR="mainline"
|
BUILD_FLAVOR="mainline"
|
||||||
|
|
||||||
BUILD_TYPE="release"
|
BUILD_TYPE="release"
|
||||||
if [ "${GITHUB_REPOSITORY}" == "yuzu-emu/yuzu" ]; then
|
if [ "${GITHUB_REPOSITORY}" == "suyu-emu/suyu" ]; then
|
||||||
BUILD_TYPE="relWithDebInfo"
|
BUILD_TYPE="relWithDebInfo"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -5,13 +5,13 @@
|
||||||
|
|
||||||
. ./.ci/scripts/common/pre-upload.sh
|
. ./.ci/scripts/common/pre-upload.sh
|
||||||
|
|
||||||
REV_NAME="yuzu-${GITDATE}-${GITREV}"
|
REV_NAME="suyu-${GITDATE}-${GITREV}"
|
||||||
|
|
||||||
BUILD_FLAVOR="mainline"
|
BUILD_FLAVOR="mainline"
|
||||||
|
|
||||||
BUILD_TYPE_LOWER="release"
|
BUILD_TYPE_LOWER="release"
|
||||||
BUILD_TYPE_UPPER="Release"
|
BUILD_TYPE_UPPER="Release"
|
||||||
if [ "${GITHUB_REPOSITORY}" == "yuzu-emu/yuzu" ]; then
|
if [ "${GITHUB_REPOSITORY}" == "suyu-emu/suyu" ]; then
|
||||||
BUILD_TYPE_LOWER="relWithDebInfo"
|
BUILD_TYPE_LOWER="relWithDebInfo"
|
||||||
BUILD_TYPE_UPPER="RelWithDebInfo"
|
BUILD_TYPE_UPPER="RelWithDebInfo"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -19,9 +19,9 @@ cmake .. \
|
||||||
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
|
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
|
||||||
-DENABLE_QT_TRANSLATION=ON \
|
-DENABLE_QT_TRANSLATION=ON \
|
||||||
-DUSE_DISCORD_PRESENCE=ON \
|
-DUSE_DISCORD_PRESENCE=ON \
|
||||||
-DYUZU_CRASH_DUMPS=ON \
|
-DSUYU_CRASH_DUMPS=ON \
|
||||||
-DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \
|
-DSUYU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \
|
||||||
-DYUZU_USE_BUNDLED_FFMPEG=ON \
|
-DSUYU_USE_BUNDLED_FFMPEG=ON \
|
||||||
-GNinja
|
-GNinja
|
||||||
|
|
||||||
ninja
|
ninja
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
mkdir -p "ccache" || true
|
mkdir -p "ccache" || true
|
||||||
chmod a+x ./.ci/scripts/clang/docker.sh
|
chmod a+x ./.ci/scripts/clang/docker.sh
|
||||||
# the UID for the container yuzu user is 1027
|
# the UID for the container suyu user is 1027
|
||||||
sudo chown -R 1027 ./
|
sudo chown -R 1027 ./
|
||||||
docker run -e ENABLE_COMPATIBILITY_REPORTING -e CCACHE_DIR=/yuzu/ccache -v "$(pwd):/yuzu" -w /yuzu yuzuemu/build-environments:linux-fresh /bin/bash /yuzu/.ci/scripts/clang/docker.sh "$1"
|
docker run -e ENABLE_COMPATIBILITY_REPORTING -e CCACHE_DIR=/suyu/ccache -v "$(pwd):/suyu" -w /suyu suyuemu/build-environments:linux-fresh /bin/bash /suyu/.ci/scripts/clang/docker.sh "$1"
|
||||||
sudo chown -R $UID ./
|
sudo chown -R $UID ./
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
#!/bin/bash -ex
|
#!/bin/bash -ex
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2021 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2021 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
. .ci/scripts/common/pre-upload.sh
|
. .ci/scripts/common/pre-upload.sh
|
||||||
|
|
||||||
REV_NAME="yuzu-linux-${GITDATE}-${GITREV}"
|
REV_NAME="suyu-linux-${GITDATE}-${GITREV}"
|
||||||
ARCHIVE_NAME="${REV_NAME}.tar.xz"
|
ARCHIVE_NAME="${REV_NAME}.tar.xz"
|
||||||
COMPRESSION_FLAGS="-cJvf"
|
COMPRESSION_FLAGS="-cJvf"
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ fi
|
||||||
|
|
||||||
mkdir "$DIR_NAME"
|
mkdir "$DIR_NAME"
|
||||||
|
|
||||||
cp build/bin/yuzu-cmd "$DIR_NAME"
|
cp build/bin/suyu-cmd "$DIR_NAME"
|
||||||
cp build/bin/yuzu "$DIR_NAME"
|
cp build/bin/suyu "$DIR_NAME"
|
||||||
|
|
||||||
. .ci/scripts/common/post-upload.sh
|
. .ci/scripts/common/post-upload.sh
|
||||||
|
|
|
@ -4,6 +4,6 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Run clang-format
|
# Run clang-format
|
||||||
cd /yuzu
|
cd /suyu
|
||||||
chmod a+x ./.ci/scripts/format/script.sh
|
chmod a+x ./.ci/scripts/format/script.sh
|
||||||
./.ci/scripts/format/script.sh
|
./.ci/scripts/format/script.sh
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
chmod a+x ./.ci/scripts/format/docker.sh
|
chmod a+x ./.ci/scripts/format/docker.sh
|
||||||
# the UID for the container yuzu user is 1027
|
# the UID for the container suyu user is 1027
|
||||||
sudo chown -R 1027 ./
|
sudo chown -R 1027 ./
|
||||||
docker run -v "$(pwd):/yuzu" -w /yuzu yuzuemu/build-environments:linux-clang-format /bin/bash -ex /yuzu/.ci/scripts/format/docker.sh
|
docker run -v "$(pwd):/suyu" -w /suyu suyuemu/build-environments:linux-clang-format /bin/bash -ex /suyu/.ci/scripts/format/docker.sh
|
||||||
sudo chown -R $UID ./
|
sudo chown -R $UID ./
|
||||||
|
|
|
@ -33,5 +33,5 @@ if [ ! -z "$DIFF" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd src/android
|
#cd src/android
|
||||||
./gradlew ktlintCheck
|
#./gradlew ktlintCheck
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash -ex
|
#!/bin/bash -ex
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
|
||||||
|
# SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Exit on error, rather than continuing with the rest of the script.
|
# Exit on error, rather than continuing with the rest of the script.
|
||||||
|
@ -12,18 +12,21 @@ mkdir build || true && cd build
|
||||||
cmake .. \
|
cmake .. \
|
||||||
-DBoost_USE_STATIC_LIBS=ON \
|
-DBoost_USE_STATIC_LIBS=ON \
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
|
-DSUYU_USE_PRECOMPILED_HEADERS=OFF \
|
||||||
|
-DDYNARMIC_USE_PRECOMPILED_HEADERS=OFF \
|
||||||
-DCMAKE_CXX_FLAGS="-march=x86-64-v2" \
|
-DCMAKE_CXX_FLAGS="-march=x86-64-v2" \
|
||||||
-DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \
|
-DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \
|
||||||
-DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \
|
-DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \
|
||||||
-DCMAKE_INSTALL_PREFIX="/usr" \
|
-DCMAKE_INSTALL_PREFIX="/usr" \
|
||||||
-DDISPLAY_VERSION=$1 \
|
-DDISPLAY_VERSION=$1 \
|
||||||
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
|
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF \
|
||||||
-DENABLE_QT_TRANSLATION=ON \
|
-DENABLE_QT_TRANSLATION=OFF \
|
||||||
-DUSE_DISCORD_PRESENCE=ON \
|
-DUSE_DISCORD_PRESENCE=ON \
|
||||||
-DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \
|
-DSUYU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \
|
||||||
-DYUZU_USE_BUNDLED_FFMPEG=ON \
|
-DSUYU_USE_BUNDLED_FFMPEG=ON \
|
||||||
-DYUZU_ENABLE_LTO=ON \
|
-DSUYU_ENABLE_LTO=ON \
|
||||||
-DYUZU_CRASH_DUMPS=ON \
|
-DSUYU_CRASH_DUMPS=ON \
|
||||||
|
-DSUYU_USE_FASTER_LD=ON \
|
||||||
-GNinja
|
-GNinja
|
||||||
|
|
||||||
ninja
|
ninja
|
||||||
|
@ -33,7 +36,7 @@ ccache -s
|
||||||
ctest -VV -C Release
|
ctest -VV -C Release
|
||||||
|
|
||||||
# Separate debug symbols from specified executables
|
# Separate debug symbols from specified executables
|
||||||
for EXE in yuzu; do
|
for EXE in suyu; do
|
||||||
EXE_PATH="bin/$EXE"
|
EXE_PATH="bin/$EXE"
|
||||||
# Copy debug symbols out
|
# Copy debug symbols out
|
||||||
objcopy --only-keep-debug $EXE_PATH $EXE_PATH.debug
|
objcopy --only-keep-debug $EXE_PATH $EXE_PATH.debug
|
||||||
|
@ -46,12 +49,13 @@ done
|
||||||
find bin/ -type f -not -regex '.*.debug' -exec strip -g {} ';'
|
find bin/ -type f -not -regex '.*.debug' -exec strip -g {} ';'
|
||||||
|
|
||||||
DESTDIR="$PWD/AppDir" ninja install
|
DESTDIR="$PWD/AppDir" ninja install
|
||||||
rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester
|
rm -vf AppDir/usr/bin/suyu-cmd AppDir/usr/bin/suyu-tester
|
||||||
|
|
||||||
# Download tools needed to build an AppImage
|
# Download tools needed to build an AppImage
|
||||||
wget -nc https://raw.githubusercontent.com/yuzu-emu/ext-linux-bin/main/appimage/deploy-linux.sh
|
wget -nc https://gitlab.com/suyu-emu/ext-linux-bin/-/raw/main/appimage/deploy-linux.sh
|
||||||
wget -nc https://raw.githubusercontent.com/yuzu-emu/AppImageKit-checkrt/old/AppRun.sh
|
wget -nc https://gitlab.com/suyu-emu/ext-linux-bin/-/raw/main/appimage/exec-x86_64.so
|
||||||
wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/exec-x86_64.so
|
wget -nc https://gitlab.com/suyu-emu/AppImageKit-checkrt/-/raw/old/AppRun.sh
|
||||||
|
|
||||||
# Set executable bit
|
# Set executable bit
|
||||||
chmod 755 \
|
chmod 755 \
|
||||||
deploy-linux.sh \
|
deploy-linux.sh \
|
||||||
|
@ -65,13 +69,13 @@ mkdir -p AppDir/usr/optional
|
||||||
mkdir -p AppDir/usr/optional/libstdc++
|
mkdir -p AppDir/usr/optional/libstdc++
|
||||||
mkdir -p AppDir/usr/optional/libgcc_s
|
mkdir -p AppDir/usr/optional/libgcc_s
|
||||||
|
|
||||||
# Deploy yuzu's needed dependencies
|
# Deploy suyu's needed dependencies
|
||||||
DEPLOY_QT=1 ./deploy-linux.sh AppDir/usr/bin/yuzu AppDir
|
DEPLOY_QT=1 ./deploy-linux.sh AppDir/usr/bin/suyu AppDir
|
||||||
|
|
||||||
# Workaround for libQt5MultimediaGstTools indirectly requiring libwayland-client and breaking Vulkan usage on end-user systems
|
# Workaround for libQt5MultimediaGstTools indirectly requiring libwayland-client and breaking Vulkan usage on end-user systems
|
||||||
find AppDir -type f -regex '.*libwayland-client\.so.*' -delete -print
|
find AppDir -type f -regex '.*libwayland-client\.so.*' -delete -print
|
||||||
|
|
||||||
# Workaround for building yuzu with GCC 10 but also trying to distribute it to Ubuntu 18.04 et al.
|
# Workaround for building suyu with GCC 10 but also trying to distribute it to Ubuntu 18.04 et al.
|
||||||
# See https://github.com/darealshinji/AppImageKit-checkrt
|
# See https://github.com/darealshinji/AppImageKit-checkrt
|
||||||
cp exec-x86_64.so AppDir/usr/optional/exec.so
|
cp exec-x86_64.so AppDir/usr/optional/exec.so
|
||||||
cp AppRun.sh AppDir/AppRun
|
cp AppRun.sh AppDir/AppRun
|
||||||
|
|
|
@ -5,12 +5,12 @@
|
||||||
|
|
||||||
mkdir -p "ccache" || true
|
mkdir -p "ccache" || true
|
||||||
chmod a+x ./.ci/scripts/linux/docker.sh
|
chmod a+x ./.ci/scripts/linux/docker.sh
|
||||||
# the UID for the container yuzu user is 1027
|
# the UID for the container suyu user is 1027
|
||||||
sudo chown -R 1027 ./
|
sudo chown -R 1027 ./
|
||||||
|
|
||||||
# The environment variables listed below:
|
# The environment variables listed below:
|
||||||
# AZURECIREPO TITLEBARFORMATIDLE TITLEBARFORMATRUNNING DISPLAYVERSION
|
# AZURECIREPO TITLEBARFORMATIDLE TITLEBARFORMATRUNNING DISPLAYVERSION
|
||||||
# are requested in src/common/CMakeLists.txt and appear to be provided somewhere in Azure DevOps
|
# are requested in src/common/CMakeLists.txt and appear to be provided somewhere in Azure DevOps
|
||||||
|
|
||||||
docker run -e AZURECIREPO -e TITLEBARFORMATIDLE -e TITLEBARFORMATRUNNING -e DISPLAYVERSION -e ENABLE_COMPATIBILITY_REPORTING -e CCACHE_DIR=/yuzu/ccache -v "$(pwd):/yuzu" -w /yuzu yuzuemu/build-environments:linux-fresh /bin/bash /yuzu/.ci/scripts/linux/docker.sh "$1"
|
docker run -e AZURECIREPO -e TITLEBARFORMATIDLE -e TITLEBARFORMATRUNNING -e DISPLAYVERSION -e ENABLE_COMPATIBILITY_REPORTING -e CCACHE_DIR=/suyu/ccache -v "$(pwd):/suyu" -w /suyu suyuemu/build-environments:linux-fresh /bin/bash /suyu/.ci/scripts/linux/docker.sh "$1"
|
||||||
sudo chown -R $UID ./
|
sudo chown -R $UID ./
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
#!/bin/bash -ex
|
#!/bin/bash -ex
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
. .ci/scripts/common/pre-upload.sh
|
. .ci/scripts/common/pre-upload.sh
|
||||||
|
|
||||||
APPIMAGE_NAME="yuzu-${RELEASE_NAME}-${GITDATE}-${GITREV}.AppImage"
|
APPIMAGE_NAME="suyu-${RELEASE_NAME}-${GITDATE}-${GITREV}.AppImage"
|
||||||
BASE_NAME="yuzu-linux"
|
BASE_NAME="suyu-linux"
|
||||||
REV_NAME="${BASE_NAME}-${GITDATE}-${GITREV}"
|
REV_NAME="${BASE_NAME}-${GITDATE}-${GITREV}"
|
||||||
ARCHIVE_NAME="${REV_NAME}.tar.xz"
|
ARCHIVE_NAME="${REV_NAME}.tar.xz"
|
||||||
COMPRESSION_FLAGS="-cJvf"
|
COMPRESSION_FLAGS="-cJvf"
|
||||||
|
@ -19,15 +19,15 @@ fi
|
||||||
|
|
||||||
mkdir "$DIR_NAME"
|
mkdir "$DIR_NAME"
|
||||||
|
|
||||||
cp build/bin/yuzu-cmd "$DIR_NAME"
|
cp build/bin/suyu-cmd "$DIR_NAME"
|
||||||
if [ "${RELEASE_NAME}" != "early-access" ] && [ "${RELEASE_NAME}" != "mainline" ]; then
|
if [ "${RELEASE_NAME}" != "early-access" ] && [ "${RELEASE_NAME}" != "mainline" ]; then
|
||||||
cp build/bin/yuzu "$DIR_NAME"
|
cp build/bin/suyu "$DIR_NAME"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Build an AppImage
|
# Build an AppImage
|
||||||
cd build
|
cd build
|
||||||
|
|
||||||
wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/appimagetool-x86_64.AppImage
|
wget -nc https://gitlab.com/suyu-emu/ext-linux-bin/-/raw/main/appimage/appimagetool-x86_64.AppImage
|
||||||
chmod 755 appimagetool-x86_64.AppImage
|
chmod 755 appimagetool-x86_64.AppImage
|
||||||
|
|
||||||
# if FUSE is not available, then fallback to extract and run
|
# if FUSE is not available, then fallback to extract and run
|
||||||
|
@ -37,12 +37,12 @@ fi
|
||||||
|
|
||||||
# Don't let AppImageLauncher ask to integrate EA
|
# Don't let AppImageLauncher ask to integrate EA
|
||||||
if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
|
if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
|
||||||
echo "X-AppImage-Integrate=false" >> AppDir/org.yuzu_emu.yuzu.desktop
|
echo "X-AppImage-Integrate=false" >> AppDir/org.suyu_emu.suyu.desktop
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${RELEASE_NAME}" = "mainline" ]; then
|
if [ "${RELEASE_NAME}" = "mainline" ]; then
|
||||||
# Generate update information if releasing to mainline
|
# Generate update information if releasing to mainline
|
||||||
./appimagetool-x86_64.AppImage -u "gh-releases-zsync|yuzu-emu|yuzu-${RELEASE_NAME}|latest|yuzu-*.AppImage.zsync" AppDir "${APPIMAGE_NAME}"
|
./appimagetool-x86_64.AppImage -u "gh-releases-zsync|suyu-emu|suyu-${RELEASE_NAME}|latest|suyu-*.AppImage.zsync" AppDir "${APPIMAGE_NAME}"
|
||||||
else
|
else
|
||||||
./appimagetool-x86_64.AppImage AppDir "${APPIMAGE_NAME}"
|
./appimagetool-x86_64.AppImage AppDir "${APPIMAGE_NAME}"
|
||||||
fi
|
fi
|
||||||
|
@ -56,7 +56,7 @@ fi
|
||||||
|
|
||||||
# Copy the AppImage to the general release directory and remove git revision info
|
# Copy the AppImage to the general release directory and remove git revision info
|
||||||
if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
|
if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
|
||||||
cp "build/${APPIMAGE_NAME}" "${DIR_NAME}/yuzu-${RELEASE_NAME}.AppImage"
|
cp "build/${APPIMAGE_NAME}" "${DIR_NAME}/suyu-${RELEASE_NAME}.AppImage"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Copy debug symbols to artifacts
|
# Copy debug symbols to artifacts
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
|
|
||||||
import requests, sys, json, shutil, subprocess, os, traceback
|
import requests, sys, json, shutil, subprocess, os, traceback
|
||||||
|
|
||||||
org = os.getenv("PRIVATEMERGEORG", "yuzu-emu")
|
org = os.getenv("PRIVATEMERGEORG", "suyu-emu")
|
||||||
repo = os.getenv("PRIVATEMERGEREPO", "yuzu-private")
|
repo = os.getenv("PRIVATEMERGEREPO", "suyu-private")
|
||||||
tagline = sys.argv[3]
|
tagline = sys.argv[3]
|
||||||
user = sys.argv[1]
|
user = sys.argv[1]
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ def check_individual(labels):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def do_page(page):
|
def do_page(page):
|
||||||
url = f"https://api.github.com/repos/yuzu-emu/yuzu/pulls?page={page}"
|
url = f"https://gitlab.com/suyu-emu/suyu/-/merge_requests?page={page}"
|
||||||
response = requests.get(url)
|
response = requests.get(url)
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
if (response.ok):
|
if (response.ok):
|
||||||
|
@ -26,7 +26,7 @@ def do_page(page):
|
||||||
if (check_individual(pr["labels"])):
|
if (check_individual(pr["labels"])):
|
||||||
pn = pr["number"]
|
pn = pr["number"]
|
||||||
print(f"Matched PR# {pn}")
|
print(f"Matched PR# {pn}")
|
||||||
print(subprocess.check_output(["git", "fetch", "https://github.com/yuzu-emu/yuzu.git", f"pull/{pn}/head:pr-{pn}", "-f", "--no-recurse-submodules"]))
|
print(subprocess.check_output(["git", "fetch", "https://gitlab.com/suyu-emu/suyu.git", f"pull/{pn}/head:pr-{pn}", "-f", "--no-recurse-submodules"]))
|
||||||
print(subprocess.check_output(["git", "merge", "--squash", f"pr-{pn}"]))
|
print(subprocess.check_output(["git", "merge", "--squash", f"pr-{pn}"]))
|
||||||
print(subprocess.check_output(["git", "commit", f"-m\"Merge {tagline} PR {pn}\""]))
|
print(subprocess.check_output(["git", "commit", f"-m\"Merge {tagline} PR {pn}\""]))
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
import requests, json, sys
|
import requests, json, sys
|
||||||
|
|
||||||
try:
|
try:
|
||||||
url = 'https://api.github.com/repos/yuzu-emu/yuzu/issues/%s' % sys.argv[1]
|
url = 'https://gitlab.com/suyu-emu/suyu/-/issues/%s' % sys.argv[1]
|
||||||
response = requests.get(url)
|
response = requests.get(url)
|
||||||
if (response.ok):
|
if (response.ok):
|
||||||
j = json.loads(response.content)
|
j = json.loads(response.content)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
git config --global user.email "yuzu@yuzu-emu.org"
|
git config --global user.email "suyu@suyu.dev"
|
||||||
git config --global user.name "yuzubot"
|
git config --global user.name "suyubot"
|
|
@ -11,7 +11,7 @@ gcc -v
|
||||||
tx --version
|
tx --version
|
||||||
|
|
||||||
mkdir build && cd build
|
mkdir build && cd build
|
||||||
cmake .. -DENABLE_QT_TRANSLATION=ON -DGENERATE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_SDL2=OFF -DYUZU_TESTS=OFF -DYUZU_USE_BUNDLED_VCPKG=ON
|
cmake .. -DENABLE_QT_TRANSLATION=ON -DGENERATE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_SDL2=OFF -DSUYU_TESTS=OFF -DSUYU_USE_BUNDLED_VCPKG=ON
|
||||||
make translation
|
make translation
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
#!/bin/bash -ex
|
#!/bin/bash -ex
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
#cd /yuzu
|
#cd /suyu
|
||||||
|
|
||||||
ccache -sv
|
ccache -sv
|
||||||
|
|
||||||
|
@ -17,11 +17,11 @@ cmake .. \
|
||||||
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
|
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
|
||||||
-DENABLE_QT_TRANSLATION=ON \
|
-DENABLE_QT_TRANSLATION=ON \
|
||||||
-DUSE_CCACHE=ON \
|
-DUSE_CCACHE=ON \
|
||||||
-DYUZU_USE_BUNDLED_SDL2=OFF \
|
-DSUYU_USE_BUNDLED_SDL2=OFF \
|
||||||
-DYUZU_USE_EXTERNAL_SDL2=OFF \
|
-DSUYU_USE_EXTERNAL_SDL2=OFF \
|
||||||
-DYUZU_TESTS=OFF \
|
-DSUYU_TESTS=OFF \
|
||||||
-GNinja
|
-GNinja
|
||||||
ninja yuzu yuzu-cmd
|
ninja suyu suyu-cmd
|
||||||
|
|
||||||
ccache -sv
|
ccache -sv
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ else
|
||||||
QT_PLUGINS_PATH='/usr/x86_64-w64-mingw32/lib/qt/plugins'
|
QT_PLUGINS_PATH='/usr/x86_64-w64-mingw32/lib/qt/plugins'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
find build/ -name "yuzu*.exe" -exec cp {} 'package' \;
|
find build/ -name "suyu*.exe" -exec cp {} 'package' \;
|
||||||
|
|
||||||
# copy Qt plugins
|
# copy Qt plugins
|
||||||
mkdir package/platforms
|
mkdir package/platforms
|
||||||
|
@ -62,5 +62,5 @@ EXTERNALS_PATH="$(pwd)/build/externals"
|
||||||
FFMPEG_DLL_PATH="$(find "${EXTERNALS_PATH}" -maxdepth 1 -type d | grep 'ffmpeg-')/bin"
|
FFMPEG_DLL_PATH="$(find "${EXTERNALS_PATH}" -maxdepth 1 -type d | grep 'ffmpeg-')/bin"
|
||||||
find ${FFMPEG_DLL_PATH} -type f -regex ".*\.dll" -exec cp -nv {} package/ ';'
|
find ${FFMPEG_DLL_PATH} -type f -regex ".*\.dll" -exec cp -nv {} package/ ';'
|
||||||
|
|
||||||
# copy libraries from yuzu.exe path
|
# copy libraries from suyu.exe path
|
||||||
find "$(pwd)/build/bin/" -type f -regex ".*\.dll" -exec cp -v {} package/ ';'
|
find "$(pwd)/build/bin/" -type f -regex ".*\.dll" -exec cp -v {} package/ ';'
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
mkdir -p "ccache" || true
|
mkdir -p "ccache" || true
|
||||||
chmod a+x ./.ci/scripts/windows/docker.sh
|
chmod a+x ./.ci/scripts/windows/docker.sh
|
||||||
# the UID for the container yuzu user is 1027
|
# the UID for the container suyu user is 1027
|
||||||
sudo chown -R 1027 ./
|
sudo chown -R 1027 ./
|
||||||
docker run -e CCACHE_DIR=/yuzu/ccache -v "$(pwd):/yuzu" -w /yuzu yuzuemu/build-environments:linux-mingw /bin/bash -ex /yuzu/.ci/scripts/windows/docker.sh "$1"
|
docker run -e CCACHE_DIR=/suyu/ccache -v "$(pwd):/suyu" -w /suyu suyuemu/build-environments:linux-mingw /bin/bash -ex /suyu/.ci/scripts/windows/docker.sh "$1"
|
||||||
sudo chown -R $UID ./
|
sudo chown -R $UID ./
|
||||||
|
|
|
@ -7,18 +7,18 @@ $GITDATE = $(git show -s --date=short --format='%ad') -replace "-", ""
|
||||||
$GITREV = $(git show -s --format='%h')
|
$GITREV = $(git show -s --format='%h')
|
||||||
|
|
||||||
if ("$BUILD_NAME" -eq "mainline") {
|
if ("$BUILD_NAME" -eq "mainline") {
|
||||||
$RELEASE_DIST = "yuzu-windows-msvc"
|
$RELEASE_DIST = "suyu-windows-msvc"
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$RELEASE_DIST = "yuzu-windows-msvc-$BUILD_NAME"
|
$RELEASE_DIST = "suyu-windows-msvc-$BUILD_NAME"
|
||||||
}
|
}
|
||||||
|
|
||||||
$MSVC_BUILD_ZIP = "yuzu-windows-msvc-$GITDATE-$GITREV.zip" -replace " ", ""
|
$MSVC_BUILD_ZIP = "suyu-windows-msvc-$GITDATE-$GITREV.zip" -replace " ", ""
|
||||||
$MSVC_BUILD_PDB = "yuzu-windows-msvc-$GITDATE-$GITREV-debugsymbols.zip" -replace " ", ""
|
$MSVC_BUILD_PDB = "suyu-windows-msvc-$GITDATE-$GITREV-debugsymbols.zip" -replace " ", ""
|
||||||
$MSVC_SEVENZIP = "yuzu-windows-msvc-$GITDATE-$GITREV.7z" -replace " ", ""
|
$MSVC_SEVENZIP = "suyu-windows-msvc-$GITDATE-$GITREV.7z" -replace " ", ""
|
||||||
$MSVC_TAR = "yuzu-windows-msvc-$GITDATE-$GITREV.tar" -replace " ", ""
|
$MSVC_TAR = "suyu-windows-msvc-$GITDATE-$GITREV.tar" -replace " ", ""
|
||||||
$MSVC_TARXZ = "yuzu-windows-msvc-$GITDATE-$GITREV.tar.xz" -replace " ", ""
|
$MSVC_TARXZ = "suyu-windows-msvc-$GITDATE-$GITREV.tar.xz" -replace " ", ""
|
||||||
$MSVC_SOURCE = "yuzu-windows-msvc-source-$GITDATE-$GITREV" -replace " ", ""
|
$MSVC_SOURCE = "suyu-windows-msvc-source-$GITDATE-$GITREV" -replace " ", ""
|
||||||
$MSVC_SOURCE_TAR = "$MSVC_SOURCE.tar"
|
$MSVC_SOURCE_TAR = "$MSVC_SOURCE.tar"
|
||||||
$MSVC_SOURCE_TARXZ = "$MSVC_SOURCE_TAR.xz"
|
$MSVC_SOURCE_TARXZ = "$MSVC_SOURCE_TAR.xz"
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ if ("$env:GITHUB_ACTIONS" -eq "true") {
|
||||||
cp .\build\bin\*.dll .\artifacts\
|
cp .\build\bin\*.dll .\artifacts\
|
||||||
|
|
||||||
# Hopefully there is an exe in either .\build\bin or .\build\bin\Release
|
# Hopefully there is an exe in either .\build\bin or .\build\bin\Release
|
||||||
cp .\build\bin\yuzu*.exe .\artifacts\
|
cp .\build\bin\suyu*.exe .\artifacts\
|
||||||
Copy-Item "$BUILD_DIR\*" -Destination "artifacts" -Recurse
|
Copy-Item "$BUILD_DIR\*" -Destination "artifacts" -Recurse
|
||||||
Remove-Item .\artifacts\tests.exe -ErrorAction ignore
|
Remove-Item .\artifacts\tests.exe -ErrorAction ignore
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ if ("$env:GITHUB_ACTIONS" -eq "true") {
|
||||||
#Copy-Item $MSVC_SOURCE_TARXZ -Destination "artifacts"
|
#Copy-Item $MSVC_SOURCE_TARXZ -Destination "artifacts"
|
||||||
|
|
||||||
# Debugging symbols
|
# Debugging symbols
|
||||||
cp .\build\bin\yuzu*.pdb .\artifacts\
|
cp .\build\bin\suyu*.pdb .\artifacts\
|
||||||
|
|
||||||
# Write out a tag BUILD_TAG to environment for the Upload step
|
# Write out a tag BUILD_TAG to environment for the Upload step
|
||||||
# We're getting ${{ github.event.number }} as $env:PR_NUMBER"
|
# We're getting ${{ github.event.number }} as $env:PR_NUMBER"
|
||||||
|
@ -91,11 +91,11 @@ if ("$env:GITHUB_ACTIONS" -eq "true") {
|
||||||
echo "BUILD_TAG=$BUILD_TAG" >> $env:GITHUB_ENV
|
echo "BUILD_TAG=$BUILD_TAG" >> $env:GITHUB_ENV
|
||||||
|
|
||||||
# For extra job, just the exe
|
# For extra job, just the exe
|
||||||
$INDIVIDUAL_EXE = "yuzu-msvc-$BUILD_TAG.exe"
|
$INDIVIDUAL_EXE = "suyu-msvc-$BUILD_TAG.exe"
|
||||||
echo "INDIVIDUAL_EXE=$INDIVIDUAL_EXE"
|
echo "INDIVIDUAL_EXE=$INDIVIDUAL_EXE"
|
||||||
echo "INDIVIDUAL_EXE=$INDIVIDUAL_EXE" >> $env:GITHUB_ENV
|
echo "INDIVIDUAL_EXE=$INDIVIDUAL_EXE" >> $env:GITHUB_ENV
|
||||||
echo "Just the exe: $INDIVIDUAL_EXE"
|
echo "Just the exe: $INDIVIDUAL_EXE"
|
||||||
cp .\artifacts\yuzu.exe .\$INDIVIDUAL_EXE
|
cp .\artifacts\suyu.exe .\$INDIVIDUAL_EXE
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -104,7 +104,7 @@ if ("$env:GITHUB_ACTIONS" -eq "true") {
|
||||||
Copy-Item $MSVC_SOURCE_TARXZ -Destination $RELEASE_DIST
|
Copy-Item $MSVC_SOURCE_TARXZ -Destination $RELEASE_DIST
|
||||||
Copy-Item "$BUILD_DIR\*" -Destination $RELEASE_DIST -Recurse
|
Copy-Item "$BUILD_DIR\*" -Destination $RELEASE_DIST -Recurse
|
||||||
rm "$RELEASE_DIST\*.exe"
|
rm "$RELEASE_DIST\*.exe"
|
||||||
Get-ChildItem "$BUILD_DIR" -Recurse -Filter "yuzu*.exe" | Copy-Item -destination $RELEASE_DIST
|
Get-ChildItem "$BUILD_DIR" -Recurse -Filter "suyu*.exe" | Copy-Item -destination $RELEASE_DIST
|
||||||
Get-ChildItem "$BUILD_DIR" -Recurse -Filter "QtWebEngineProcess*.exe" | Copy-Item -destination $RELEASE_DIST
|
Get-ChildItem "$BUILD_DIR" -Recurse -Filter "QtWebEngineProcess*.exe" | Copy-Item -destination $RELEASE_DIST
|
||||||
7z a -tzip $MSVC_BUILD_ZIP $RELEASE_DIST\*
|
7z a -tzip $MSVC_BUILD_ZIP $RELEASE_DIST\*
|
||||||
7z a $MSVC_SEVENZIP $RELEASE_DIST
|
7z a $MSVC_SEVENZIP $RELEASE_DIST
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
. .ci/scripts/common/pre-upload.sh
|
. .ci/scripts/common/pre-upload.sh
|
||||||
|
|
||||||
REV_NAME="yuzu-windows-mingw-${GITDATE}-${GITREV}"
|
REV_NAME="suyu-windows-mingw-${GITDATE}-${GITREV}"
|
||||||
ARCHIVE_NAME="${REV_NAME}.tar.xz"
|
ARCHIVE_NAME="${REV_NAME}.tar.xz"
|
||||||
COMPRESSION_FLAGS="-cJvf"
|
COMPRESSION_FLAGS="-cJvf"
|
||||||
|
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
steps:
|
steps:
|
||||||
- script: mkdir artifacts || echo 'X' > artifacts/T1.txt
|
- script: mkdir artifacts || echo 'X' > artifacts/T1.txt
|
||||||
- publish: artifacts
|
- publish: artifacts
|
||||||
artifact: 'yuzu-$(BuildName)-mock'
|
artifact: 'suyu-$(BuildName)-mock'
|
||||||
displayName: 'Upload Artifacts'
|
displayName: 'Upload Artifacts'
|
|
@ -12,12 +12,12 @@ steps:
|
||||||
inputs:
|
inputs:
|
||||||
targetType: 'filePath'
|
targetType: 'filePath'
|
||||||
filePath: './.ci/scripts/windows/install-vulkan-sdk.ps1'
|
filePath: './.ci/scripts/windows/install-vulkan-sdk.ps1'
|
||||||
- script: refreshenv && glslangValidator --version && mkdir build && cd build && cmake -E env CXXFLAGS="/Gw" cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_POLICY_DEFAULT_CMP0069=NEW -DYUZU_ENABLE_LTO=ON -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DYUZU_TESTS=OFF -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DDISPLAY_VERSION=${{ parameters['version'] }} -DCMAKE_BUILD_TYPE=Release -DYUZU_CRASH_DUMPS=ON .. && cd ..
|
- script: refreshenv && glslangValidator --version && mkdir build && cd build && cmake -E env CXXFLAGS="/Gw" cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_POLICY_DEFAULT_CMP0069=NEW -DSUYU_ENABLE_LTO=ON -DSUYU_USE_BUNDLED_QT=1 -DSUYU_USE_BUNDLED_SDL2=1 -DSUYU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DSUYU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DSUYU_TESTS=OFF -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DDISPLAY_VERSION=${{ parameters['version'] }} -DCMAKE_BUILD_TYPE=Release -DSUYU_CRASH_DUMPS=ON .. && cd ..
|
||||||
displayName: 'Configure CMake'
|
displayName: 'Configure CMake'
|
||||||
- task: MSBuild@1
|
- task: MSBuild@1
|
||||||
displayName: 'Build'
|
displayName: 'Build'
|
||||||
inputs:
|
inputs:
|
||||||
solution: 'build/yuzu.sln'
|
solution: 'build/suyu.sln'
|
||||||
maximumCpuCount: true
|
maximumCpuCount: true
|
||||||
configuration: release
|
configuration: release
|
||||||
- task: PowerShell@2
|
- task: PowerShell@2
|
||||||
|
@ -27,5 +27,5 @@ steps:
|
||||||
filePath: './.ci/scripts/windows/upload.ps1'
|
filePath: './.ci/scripts/windows/upload.ps1'
|
||||||
arguments: '$(BuildName)'
|
arguments: '$(BuildName)'
|
||||||
- publish: artifacts
|
- publish: artifacts
|
||||||
artifact: 'yuzu-$(BuildName)-windows-msvc'
|
artifact: 'suyu-$(BuildName)-windows-msvc'
|
||||||
displayName: 'Upload Artifacts'
|
displayName: 'Upload Artifacts'
|
||||||
|
|
|
@ -14,7 +14,7 @@ steps:
|
||||||
- task: CacheBeta@0
|
- task: CacheBeta@0
|
||||||
displayName: 'Cache Build System'
|
displayName: 'Cache Build System'
|
||||||
inputs:
|
inputs:
|
||||||
key: yuzu-v1-$(BuildName)-$(BuildSuffix)-$(CacheSuffix)
|
key: suyu-v1-$(BuildName)-$(BuildSuffix)-$(CacheSuffix)
|
||||||
path: $(System.DefaultWorkingDirectory)/ccache
|
path: $(System.DefaultWorkingDirectory)/ccache
|
||||||
cacheHitVar: CACHE_RESTORED
|
cacheHitVar: CACHE_RESTORED
|
||||||
- script: chmod a+x ./.ci/scripts/$(ScriptFolder)/exec.sh && ./.ci/scripts/$(ScriptFolder)/exec.sh ${{ parameters['version'] }}
|
- script: chmod a+x ./.ci/scripts/$(ScriptFolder)/exec.sh && ./.ci/scripts/$(ScriptFolder)/exec.sh ${{ parameters['version'] }}
|
||||||
|
@ -22,5 +22,5 @@ steps:
|
||||||
- script: chmod a+x ./.ci/scripts/$(ScriptFolder)/upload.sh && RELEASE_NAME=$(BuildName) ./.ci/scripts/$(ScriptFolder)/upload.sh
|
- script: chmod a+x ./.ci/scripts/$(ScriptFolder)/upload.sh && RELEASE_NAME=$(BuildName) ./.ci/scripts/$(ScriptFolder)/upload.sh
|
||||||
displayName: 'Package Artifacts'
|
displayName: 'Package Artifacts'
|
||||||
- publish: artifacts
|
- publish: artifacts
|
||||||
artifact: 'yuzu-$(BuildName)-$(BuildSuffix)'
|
artifact: 'suyu-$(BuildName)-$(BuildSuffix)'
|
||||||
displayName: 'Upload Artifacts'
|
displayName: 'Upload Artifacts'
|
||||||
|
|
|
@ -19,12 +19,12 @@ jobs:
|
||||||
rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
|
rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
|
||||||
includeRootFolder: false
|
includeRootFolder: false
|
||||||
archiveType: '7z'
|
archiveType: '7z'
|
||||||
archiveFile: '$(Build.ArtifactStagingDirectory)/yuzu-$(BuildName)-source.7z'
|
archiveFile: '$(Build.ArtifactStagingDirectory)/suyu-$(BuildName)-source.7z'
|
||||||
- task: PublishPipelineArtifact@1
|
- task: PublishPipelineArtifact@1
|
||||||
displayName: 'Upload Artifacts'
|
displayName: 'Upload Artifacts'
|
||||||
inputs:
|
inputs:
|
||||||
targetPath: '$(Build.ArtifactStagingDirectory)/yuzu-$(BuildName)-source.7z'
|
targetPath: '$(Build.ArtifactStagingDirectory)/suyu-$(BuildName)-source.7z'
|
||||||
artifact: 'yuzu-$(BuildName)-source'
|
artifact: 'suyu-$(BuildName)-source'
|
||||||
replaceExistingArchive: true
|
replaceExistingArchive: true
|
||||||
- job: upload_source
|
- job: upload_source
|
||||||
displayName: 'upload'
|
displayName: 'upload'
|
||||||
|
@ -36,7 +36,7 @@ jobs:
|
||||||
parameters:
|
parameters:
|
||||||
artifactSource: 'true'
|
artifactSource: 'true'
|
||||||
needSubmodules: 'true'
|
needSubmodules: 'true'
|
||||||
- script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh
|
- script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/suyubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/suyubot-git-config.sh
|
||||||
displayName: 'Apply Git Configuration'
|
displayName: 'Apply Git Configuration'
|
||||||
- script: git remote add other $(GitRepoPushChangesURL)
|
- script: git remote add other $(GitRepoPushChangesURL)
|
||||||
displayName: 'Register Repository'
|
displayName: 'Register Repository'
|
||||||
|
|
|
@ -18,12 +18,12 @@ jobs:
|
||||||
rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
|
rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
|
||||||
includeRootFolder: false
|
includeRootFolder: false
|
||||||
archiveType: '7z'
|
archiveType: '7z'
|
||||||
archiveFile: '$(Build.ArtifactStagingDirectory)/yuzu-$(BuildName)-source.7z'
|
archiveFile: '$(Build.ArtifactStagingDirectory)/suyu-$(BuildName)-source.7z'
|
||||||
- task: PublishPipelineArtifact@1
|
- task: PublishPipelineArtifact@1
|
||||||
displayName: 'Upload Artifacts'
|
displayName: 'Upload Artifacts'
|
||||||
inputs:
|
inputs:
|
||||||
targetPath: '$(Build.ArtifactStagingDirectory)/yuzu-$(BuildName)-source.7z'
|
targetPath: '$(Build.ArtifactStagingDirectory)/suyu-$(BuildName)-source.7z'
|
||||||
artifact: 'yuzu-$(BuildName)-source'
|
artifact: 'suyu-$(BuildName)-source'
|
||||||
replaceExistingArchive: true
|
replaceExistingArchive: true
|
||||||
- job: upload_source
|
- job: upload_source
|
||||||
displayName: 'upload'
|
displayName: 'upload'
|
||||||
|
@ -35,7 +35,7 @@ jobs:
|
||||||
parameters:
|
parameters:
|
||||||
artifactSource: 'true'
|
artifactSource: 'true'
|
||||||
needSubmodules: 'true'
|
needSubmodules: 'true'
|
||||||
- script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh
|
- script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/suyubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/suyubot-git-config.sh
|
||||||
displayName: 'Apply Git Configuration'
|
displayName: 'Apply Git Configuration'
|
||||||
- script: git remote add other $(GitRepoPushChangesURL)
|
- script: git remote add other $(GitRepoPushChangesURL)
|
||||||
displayName: 'Register Repository'
|
displayName: 'Register Repository'
|
||||||
|
|
|
@ -8,7 +8,7 @@ parameters:
|
||||||
steps:
|
steps:
|
||||||
- script: mkdir $(System.DefaultWorkingDirectory)/patches && pip install requests urllib3
|
- script: mkdir $(System.DefaultWorkingDirectory)/patches && pip install requests urllib3
|
||||||
displayName: 'Prepare Environment'
|
displayName: 'Prepare Environment'
|
||||||
- script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh
|
- script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/suyubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/suyubot-git-config.sh
|
||||||
displayName: 'Apply Git Configuration'
|
displayName: 'Apply Git Configuration'
|
||||||
- task: PythonScript@0
|
- task: PythonScript@0
|
||||||
displayName: 'Discover, Download, and Apply Patches (Mainline)'
|
displayName: 'Discover, Download, and Apply Patches (Mainline)'
|
||||||
|
|
|
@ -7,7 +7,7 @@ parameters:
|
||||||
steps:
|
steps:
|
||||||
- script: mkdir $(System.DefaultWorkingDirectory)/patches && pip install requests urllib3
|
- script: mkdir $(System.DefaultWorkingDirectory)/patches && pip install requests urllib3
|
||||||
displayName: 'Prepare Environment'
|
displayName: 'Prepare Environment'
|
||||||
- script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh
|
- script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/suyubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/suyubot-git-config.sh
|
||||||
displayName: 'Apply Git Configuration'
|
displayName: 'Apply Git Configuration'
|
||||||
- task: PythonScript@0
|
- task: PythonScript@0
|
||||||
displayName: 'Discover, Download, and Apply Patches'
|
displayName: 'Discover, Download, and Apply Patches'
|
||||||
|
|
|
@ -5,12 +5,12 @@ steps:
|
||||||
- task: DownloadPipelineArtifact@2
|
- task: DownloadPipelineArtifact@2
|
||||||
displayName: 'Download Windows Release'
|
displayName: 'Download Windows Release'
|
||||||
inputs:
|
inputs:
|
||||||
artifactName: 'yuzu-$(BuildName)-windows-msvc'
|
artifactName: 'suyu-$(BuildName)-windows-msvc'
|
||||||
buildType: 'current'
|
buildType: 'current'
|
||||||
targetPath: '$(Build.ArtifactStagingDirectory)'
|
targetPath: '$(Build.ArtifactStagingDirectory)'
|
||||||
- task: DownloadPipelineArtifact@2
|
- task: DownloadPipelineArtifact@2
|
||||||
displayName: 'Download Linux Release'
|
displayName: 'Download Linux Release'
|
||||||
inputs:
|
inputs:
|
||||||
artifactName: 'yuzu-$(BuildName)-linux'
|
artifactName: 'suyu-$(BuildName)-linux'
|
||||||
buildType: 'current'
|
buildType: 'current'
|
||||||
targetPath: '$(Build.ArtifactStagingDirectory)'
|
targetPath: '$(Build.ArtifactStagingDirectory)'
|
|
@ -2,9 +2,9 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh
|
- script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/suyubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/suyubot-git-config.sh
|
||||||
displayName: 'Apply Git Configuration'
|
displayName: 'Apply Git Configuration'
|
||||||
- script: git tag -a $(BuildName)-$(DisplayPrefix)-$(DisplayVersion) -m "yuzu $(BuildName) $(Build.BuildNumber) $(Build.DefinitionName) $(DisplayPrefix)-$(DisplayVersion)"
|
- script: git tag -a $(BuildName)-$(DisplayPrefix)-$(DisplayVersion) -m "suyu $(BuildName) $(Build.BuildNumber) $(Build.DefinitionName) $(DisplayPrefix)-$(DisplayVersion)"
|
||||||
displayName: 'Tag Source'
|
displayName: 'Tag Source'
|
||||||
- script: git remote add other $(GitRepoPushChangesURL)
|
- script: git remote add other $(GitRepoPushChangesURL)
|
||||||
displayName: 'Register Repository'
|
displayName: 'Register Repository'
|
||||||
|
|
|
@ -8,6 +8,6 @@ steps:
|
||||||
inputs:
|
inputs:
|
||||||
command: publish
|
command: publish
|
||||||
publishDirectory: '$(Build.ArtifactStagingDirectory)'
|
publishDirectory: '$(Build.ArtifactStagingDirectory)'
|
||||||
vstsFeedPublish: 'yuzu-$(BuildName)'
|
vstsFeedPublish: 'suyu-$(BuildName)'
|
||||||
vstsFeedPackagePublish: 'main'
|
vstsFeedPackagePublish: 'main'
|
||||||
packagePublishDescription: 'Yuzu Windows and Linux Executable Packages'
|
packagePublishDescription: 'Suyu Windows and Linux Executable Packages'
|
|
@ -6,7 +6,7 @@ steps:
|
||||||
- task: DownloadPipelineArtifact@2
|
- task: DownloadPipelineArtifact@2
|
||||||
displayName: 'Download Source'
|
displayName: 'Download Source'
|
||||||
inputs:
|
inputs:
|
||||||
artifactName: 'yuzu-$(BuildName)-source'
|
artifactName: 'suyu-$(BuildName)-source'
|
||||||
buildType: 'current'
|
buildType: 'current'
|
||||||
targetPath: '$(Build.ArtifactStagingDirectory)'
|
targetPath: '$(Build.ArtifactStagingDirectory)'
|
||||||
- script: rm -rf $(System.DefaultWorkingDirectory) && mkdir $(System.DefaultWorkingDirectory)
|
- script: rm -rf $(System.DefaultWorkingDirectory) && mkdir $(System.DefaultWorkingDirectory)
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
|
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
- master
|
|
||||||
|
|
||||||
pool:
|
|
||||||
vmImage: 'ubuntu-latest'
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- stage: merge
|
|
||||||
displayName: 'merge'
|
|
||||||
jobs:
|
|
||||||
- template: ./templates/merge-private.yml
|
|
|
@ -1,59 +0,0 @@
|
||||||
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
|
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
- master
|
|
||||||
|
|
||||||
variables:
|
|
||||||
DisplayVersion: $[counter(variables['DisplayPrefix'], 1)]
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- stage: build
|
|
||||||
displayName: 'build'
|
|
||||||
jobs:
|
|
||||||
- job: linux
|
|
||||||
timeoutInMinutes: 120
|
|
||||||
displayName: 'linux'
|
|
||||||
pool:
|
|
||||||
vmImage: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
maxParallel: 10
|
|
||||||
matrix:
|
|
||||||
linux:
|
|
||||||
BuildSuffix: 'linux'
|
|
||||||
ScriptFolder: 'linux'
|
|
||||||
steps:
|
|
||||||
- template: ./templates/sync-source.yml
|
|
||||||
parameters:
|
|
||||||
artifactSource: $(parameters.artifactSource)
|
|
||||||
needSubmodules: 'true'
|
|
||||||
- template: ./templates/build-single.yml
|
|
||||||
parameters:
|
|
||||||
artifactSource: 'false'
|
|
||||||
cache: $(parameters.cache)
|
|
||||||
version: $(DisplayVersion)
|
|
||||||
- job: msvc
|
|
||||||
timeoutInMinutes: 120
|
|
||||||
displayName: 'windows'
|
|
||||||
pool:
|
|
||||||
vmImage: windows-2022
|
|
||||||
steps:
|
|
||||||
- template: ./templates/sync-source.yml
|
|
||||||
parameters:
|
|
||||||
artifactSource: $(parameters.artifactSource)
|
|
||||||
needSubmodules: 'true'
|
|
||||||
- template: ./templates/build-msvc.yml
|
|
||||||
parameters:
|
|
||||||
artifactSource: 'false'
|
|
||||||
cache: $(parameters.cache)
|
|
||||||
version: $(DisplayVersion)
|
|
||||||
- stage: release
|
|
||||||
displayName: 'release'
|
|
||||||
dependsOn: build
|
|
||||||
jobs:
|
|
||||||
- job: release
|
|
||||||
displayName: 'source'
|
|
||||||
pool:
|
|
||||||
vmImage: 'ubuntu-latest'
|
|
||||||
steps:
|
|
||||||
- template: ./templates/release-private-tag.yml
|
|
6
.github/FUNDING.yml
vendored
6
.github/FUNDING.yml
vendored
|
@ -1,6 +0,0 @@
|
||||||
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
|
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
# These are supported funding model platforms
|
|
||||||
|
|
||||||
patreon: yuzuteam
|
|
4
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
4
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
|
@ -3,7 +3,7 @@ description: File a bug report
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: Tech support does not belong here. You should only file an issue here if you think you have experienced an actual bug with yuzu.
|
value: Tech support does not belong here. You should only file an issue here if you think you have experienced an actual bug with suyu.
|
||||||
- type: checkboxes
|
- type: checkboxes
|
||||||
attributes:
|
attributes:
|
||||||
label: Is there an existing issue for this?
|
label: Is there an existing issue for this?
|
||||||
|
@ -43,7 +43,7 @@ body:
|
||||||
id: log
|
id: log
|
||||||
attributes:
|
attributes:
|
||||||
label: Log File
|
label: Log File
|
||||||
description: A log file will help our developers to better diagnose and fix the issue. Instructions can be found [here](https://yuzu-emu.org/help/reference/log-files).
|
description: A log file will help our developers to better diagnose and fix the issue. Instructions can be found [here](https://suyu.dev/help/reference/log-files).
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
|
|
9
.github/ISSUE_TEMPLATE/config.yml
vendored
9
.github/ISSUE_TEMPLATE/config.yml
vendored
|
@ -1,8 +1,5 @@
|
||||||
blank_issues_enabled: false
|
blank_issues_enabled: false
|
||||||
contact_links:
|
contact_links:
|
||||||
- name: yuzu Discord
|
- name: suyu Discord
|
||||||
url: https://discord.com/invite/u77vRWY
|
url: https://discord.com/invite/suyu
|
||||||
about: If you are experiencing an issue with yuzu, and you need tech support, or if you have a general question, try asking in the official yuzu Discord linked here. Piracy is not allowed.
|
about: If you are experiencing an issue with suyu, and you need tech support, or if you have a general question, try asking in the official suyu Discord linked here. Piracy is not allowed.
|
||||||
- name: Community forums
|
|
||||||
url: https://community.citra-emu.org
|
|
||||||
about: This is an alternative place for tech support, however helpers there are not as active.
|
|
||||||
|
|
4
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
4
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
|
@ -4,7 +4,7 @@ labels: "request"
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: Tech support does not belong here. You should only file an issue here if you are requesting a feature you believe would make yuzu better.
|
value: Tech support does not belong here. You should only file an issue here if you are requesting a feature you believe would make suyu better.
|
||||||
- type: checkboxes
|
- type: checkboxes
|
||||||
attributes:
|
attributes:
|
||||||
label: Is there an existing issue for this?
|
label: Is there an existing issue for this?
|
||||||
|
@ -23,6 +23,6 @@ body:
|
||||||
id: why-feature
|
id: why-feature
|
||||||
attributes:
|
attributes:
|
||||||
label: Why would this feature be useful?
|
label: Why would this feature be useful?
|
||||||
description: A brief description of why this feature would make yuzu better.
|
description: A brief description of why this feature would make suyu better.
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
4
.github/workflows/android-build.yml
vendored
4
.github/workflows/android-build.yml
vendored
|
@ -1,7 +1,7 @@
|
||||||
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
name: 'yuzu-android-build'
|
name: 'suyu-android-build'
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
@ -10,7 +10,7 @@ on:
|
||||||
jobs:
|
jobs:
|
||||||
android:
|
android:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: ${{ github.repository == 'yuzu-emu/yuzu-android' }}
|
if: ${{ github.repository == 'suyu-emu/suyu-android' }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# SPDX-FileCopyrightText: 2024 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2024 yuzu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
name: yuzu-android-ea-play-release
|
name: suyu-android-ea-play-release
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
@ -14,7 +14,7 @@ on:
|
||||||
jobs:
|
jobs:
|
||||||
android:
|
android:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: ${{ github.repository == 'yuzu-emu/yuzu' }}
|
if: ${{ github.repository == 'suyu-emu/suyu' }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
name: Checkout
|
name: Checkout
|
||||||
|
@ -62,5 +62,5 @@ jobs:
|
||||||
name: ${{ env.EA_TAG_NAME }}
|
name: ${{ env.EA_TAG_NAME }}
|
||||||
draft: false
|
draft: false
|
||||||
prerelease: false
|
prerelease: false
|
||||||
repository: yuzu/yuzu-android
|
repository: suyu/suyu-android
|
||||||
token: ${{ secrets.ALT_GITHUB_TOKEN }}
|
token: ${{ secrets.ALT_GITHUB_TOKEN }}
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
# SPDX-FileCopyrightText: 2024 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2024 yuzu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
name: yuzu-android-mainline-play-release
|
name: suyu-android-mainline-play-release
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
release-tag:
|
release-tag:
|
||||||
description: 'Tag # from yuzu-android that you want to build and publish'
|
description: 'Tag # from suyu-android that you want to build and publish'
|
||||||
required: true
|
required: true
|
||||||
default: '200'
|
default: '200'
|
||||||
release-track:
|
release-track:
|
||||||
|
@ -18,7 +18,7 @@ on:
|
||||||
jobs:
|
jobs:
|
||||||
android:
|
android:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: ${{ github.repository == 'yuzu-emu/yuzu' }}
|
if: ${{ github.repository == 'suyu-emu/suyu' }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
name: Checkout
|
name: Checkout
|
||||||
|
|
32
.github/workflows/android-merge.js
vendored
32
.github/workflows/android-merge.js
vendored
|
@ -25,8 +25,8 @@ async function checkBaseChanges(github) {
|
||||||
}
|
}
|
||||||
}`;
|
}`;
|
||||||
const variables = {
|
const variables = {
|
||||||
owner: 'yuzu-emu',
|
owner: 'suyu-emu',
|
||||||
name: 'yuzu',
|
name: 'suyu',
|
||||||
ref: 'refs/heads/master',
|
ref: 'refs/heads/master',
|
||||||
};
|
};
|
||||||
const result = await github.graphql(query, variables);
|
const result = await github.graphql(query, variables);
|
||||||
|
@ -126,7 +126,7 @@ async function tagAndPushEA(github, owner, repo, execa) {
|
||||||
const newTag = `ea-${tagNumber + 1}`;
|
const newTag = `ea-${tagNumber + 1}`;
|
||||||
console.log(`New tag: ${newTag}`);
|
console.log(`New tag: ${newTag}`);
|
||||||
console.info('Pushing tags to GitHub ...');
|
console.info('Pushing tags to GitHub ...');
|
||||||
await execa("git", ["remote", "add", "android", "https://github.com/yuzu-emu/yuzu-android.git"]);
|
await execa("git", ["remote", "add", "android", "https://gitlab.com/suyu-emu/suyu-android.git"]);
|
||||||
await execa("git", ["fetch", "android"]);
|
await execa("git", ["fetch", "android"]);
|
||||||
|
|
||||||
await execa("git", ['tag', newTag]);
|
await execa("git", ['tag', newTag]);
|
||||||
|
@ -174,12 +174,12 @@ async function fetchPullRequests(pulls, repoUrl, execa) {
|
||||||
async function mergePullRequests(pulls, execa) {
|
async function mergePullRequests(pulls, execa) {
|
||||||
let mergeResults = {};
|
let mergeResults = {};
|
||||||
console.log("::group::Merge pull requests");
|
console.log("::group::Merge pull requests");
|
||||||
await execa("git", ["config", "--global", "user.name", "yuzubot"]);
|
await execa("git", ["config", "--global", "user.name", "suyubot"]);
|
||||||
await execa("git", [
|
await execa("git", [
|
||||||
"config",
|
"config",
|
||||||
"--global",
|
"--global",
|
||||||
"user.email",
|
"user.email",
|
||||||
"yuzu\x40yuzu-emu\x2eorg", // prevent email harvesters from scraping the address
|
"suyu\x40suyu-emu\x2eorg", // prevent email harvesters from scraping the address
|
||||||
]);
|
]);
|
||||||
let hasFailed = false;
|
let hasFailed = false;
|
||||||
for (let pull of pulls) {
|
for (let pull of pulls) {
|
||||||
|
@ -195,7 +195,7 @@ async function mergePullRequests(pulls, execa) {
|
||||||
process1.stdout.pipe(process.stdout);
|
process1.stdout.pipe(process.stdout);
|
||||||
await process1;
|
await process1;
|
||||||
|
|
||||||
const process2 = execa("git", ["commit", "-m", `Merge yuzu-emu#${pr}`]);
|
const process2 = execa("git", ["commit", "-m", `Merge suyu-emu#${pr}`]);
|
||||||
process2.stdout.pipe(process.stdout);
|
process2.stdout.pipe(process.stdout);
|
||||||
await process2;
|
await process2;
|
||||||
|
|
||||||
|
@ -224,7 +224,7 @@ async function resetBranch(execa) {
|
||||||
console.log("::group::Reset master branch");
|
console.log("::group::Reset master branch");
|
||||||
let hasFailed = false;
|
let hasFailed = false;
|
||||||
try {
|
try {
|
||||||
await execa("git", ["remote", "add", "source", "https://github.com/yuzu-emu/yuzu.git"]);
|
await execa("git", ["remote", "add", "source", "https://gitlab.com/suyu-emu/suyu.git"]);
|
||||||
await execa("git", ["fetch", "source"]);
|
await execa("git", ["fetch", "source"]);
|
||||||
const process1 = await execa("git", ["rev-parse", "source/master"]);
|
const process1 = await execa("git", ["rev-parse", "source/master"]);
|
||||||
const headCommit = process1.stdout;
|
const headCommit = process1.stdout;
|
||||||
|
@ -251,16 +251,16 @@ async function getPulls(github) {
|
||||||
}
|
}
|
||||||
}`;
|
}`;
|
||||||
const mainlineVariables = {
|
const mainlineVariables = {
|
||||||
owner: 'yuzu-emu',
|
owner: 'suyu-emu',
|
||||||
name: 'yuzu',
|
name: 'suyu',
|
||||||
label: CHANGE_LABEL_MAINLINE,
|
label: CHANGE_LABEL_MAINLINE,
|
||||||
};
|
};
|
||||||
const mainlineResult = await github.graphql(query, mainlineVariables);
|
const mainlineResult = await github.graphql(query, mainlineVariables);
|
||||||
const pulls = mainlineResult.repository.pullRequests.nodes;
|
const pulls = mainlineResult.repository.pullRequests.nodes;
|
||||||
if (BUILD_EA) {
|
if (BUILD_EA) {
|
||||||
const eaVariables = {
|
const eaVariables = {
|
||||||
owner: 'yuzu-emu',
|
owner: 'suyu-emu',
|
||||||
name: 'yuzu',
|
name: 'suyu',
|
||||||
label: CHANGE_LABEL_EA,
|
label: CHANGE_LABEL_EA,
|
||||||
};
|
};
|
||||||
const eaResult = await github.graphql(query, eaVariables);
|
const eaResult = await github.graphql(query, eaVariables);
|
||||||
|
@ -274,7 +274,7 @@ async function getMainlineTag(execa) {
|
||||||
console.log(`::group::Getting mainline tag android-${MAINLINE_TAG}`);
|
console.log(`::group::Getting mainline tag android-${MAINLINE_TAG}`);
|
||||||
let hasFailed = false;
|
let hasFailed = false;
|
||||||
try {
|
try {
|
||||||
await execa("git", ["remote", "add", "mainline", "https://github.com/yuzu-emu/yuzu-android.git"]);
|
await execa("git", ["remote", "add", "mainline", "https://gitlab.com/suyu-emu/suyu-android.git"]);
|
||||||
await execa("git", ["fetch", "mainline", "--tags"]);
|
await execa("git", ["fetch", "mainline", "--tags"]);
|
||||||
await execa("git", ["checkout", `tags/android-${MAINLINE_TAG}`]);
|
await execa("git", ["checkout", `tags/android-${MAINLINE_TAG}`]);
|
||||||
await execa("git", ["submodule", "update", "--init", "--recursive"]);
|
await execa("git", ["submodule", "update", "--init", "--recursive"]);
|
||||||
|
@ -289,7 +289,7 @@ async function getMainlineTag(execa) {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function mergebot(github, context, execa) {
|
async function mergebot(github, context, execa) {
|
||||||
// Reset our local copy of master to what appears on yuzu-emu/yuzu - master
|
// Reset our local copy of master to what appears on suyu-emu/suyu - master
|
||||||
await resetBranch(execa);
|
await resetBranch(execa);
|
||||||
|
|
||||||
const pulls = await getPulls(github);
|
const pulls = await getPulls(github);
|
||||||
|
@ -300,14 +300,14 @@ async function mergebot(github, context, execa) {
|
||||||
}
|
}
|
||||||
console.info("The following pull requests will be merged:");
|
console.info("The following pull requests will be merged:");
|
||||||
console.table(displayList);
|
console.table(displayList);
|
||||||
await fetchPullRequests(pulls, "https://github.com/yuzu-emu/yuzu", execa);
|
await fetchPullRequests(pulls, "https://gitlab.com/suyu-emu/suyu", execa);
|
||||||
const mergeResults = await mergePullRequests(pulls, execa);
|
const mergeResults = await mergePullRequests(pulls, execa);
|
||||||
|
|
||||||
if (BUILD_EA) {
|
if (BUILD_EA) {
|
||||||
await tagAndPushEA(github, 'yuzu-emu', `yuzu-android`, execa);
|
await tagAndPushEA(github, 'suyu-emu', `suyu-android`, execa);
|
||||||
} else {
|
} else {
|
||||||
await generateReadme(pulls, context, mergeResults, execa);
|
await generateReadme(pulls, context, mergeResults, execa);
|
||||||
await tagAndPush(github, 'yuzu-emu', `yuzu-android`, execa, true);
|
await tagAndPush(github, 'suyu-emu', `suyu-android`, execa, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
4
.github/workflows/verify.yml
vendored
4
.github/workflows/verify.yml
vendored
|
@ -87,7 +87,7 @@ jobs:
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
export Qt5_DIR="$(brew --prefix qt@5)/lib/cmake"
|
export Qt5_DIR="$(brew --prefix qt@5)/lib/cmake"
|
||||||
cmake .. -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DYUZU_USE_BUNDLED_VCPKG=OFF -DYUZU_TESTS=OFF -DENABLE_WEB_SERVICE=OFF -DENABLE_LIBUSB=OFF
|
cmake .. -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DSUYU_USE_BUNDLED_VCPKG=OFF -DSUYU_TESTS=OFF -DENABLE_WEB_SERVICE=OFF -DENABLE_LIBUSB=OFF
|
||||||
ninja
|
ninja
|
||||||
build-msvc:
|
build-msvc:
|
||||||
name: 'test build (windows, msvc)'
|
name: 'test build (windows, msvc)'
|
||||||
|
@ -129,7 +129,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
glslangValidator --version
|
glslangValidator --version
|
||||||
mkdir build
|
mkdir build
|
||||||
cmake . -B build -GNinja -DCMAKE_TOOLCHAIN_FILE="CMakeModules/MSVCCache.cmake" -DUSE_CCACHE=ON -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DGIT_BRANCH=pr-verify -DYUZU_CRASH_DUMPS=ON
|
cmake . -B build -GNinja -DCMAKE_TOOLCHAIN_FILE="CMakeModules/MSVCCache.cmake" -DUSE_CCACHE=ON -DSUYU_USE_BUNDLED_QT=1 -DSUYU_USE_BUNDLED_SDL2=1 -DSUYU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DSUYU_ENABLE_COMPATIBILITY_REPORTING=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DGIT_BRANCH=pr-verify -DSUYU_CRASH_DUMPS=ON
|
||||||
- name: Build
|
- name: Build
|
||||||
run: cmake --build build
|
run: cmake --build build
|
||||||
- name: Cache Summary
|
- name: Cache Summary
|
||||||
|
|
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -4,6 +4,7 @@
|
||||||
# Build directory
|
# Build directory
|
||||||
[Bb]uild*/
|
[Bb]uild*/
|
||||||
doc-build/
|
doc-build/
|
||||||
|
cmake-build*/
|
||||||
|
|
||||||
# Generated source files
|
# Generated source files
|
||||||
src/common/scm_rev.cpp
|
src/common/scm_rev.cpp
|
||||||
|
@ -14,6 +15,7 @@ dist/english_plurals/generated_en.ts
|
||||||
.idea/
|
.idea/
|
||||||
.vs/
|
.vs/
|
||||||
.vscode/
|
.vscode/
|
||||||
|
.cache/
|
||||||
CMakeLists.txt.user*
|
CMakeLists.txt.user*
|
||||||
|
|
||||||
# *nix related
|
# *nix related
|
||||||
|
@ -36,3 +38,5 @@ CMakeSettings.json
|
||||||
# Windows global filetypes
|
# Windows global filetypes
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
|
||||||
|
# Local Gitlab CI Runner
|
||||||
|
.gitlab-ci-local/
|
||||||
|
|
83
.gitlab-ci.yml
Executable file
83
.gitlab-ci.yml
Executable file
|
@ -0,0 +1,83 @@
|
||||||
|
stages:
|
||||||
|
- format
|
||||||
|
- build
|
||||||
|
|
||||||
|
variables:
|
||||||
|
# https://docs.gitlab.com/ee/ci/runners/configure_runners.html
|
||||||
|
TRANSFER_METER_FREQUENCY: "2s"
|
||||||
|
ARTIFACT_COMPRESSION_LEVEL: "fast"
|
||||||
|
CACHE_COMPRESSION_LEVEL: "fastest"
|
||||||
|
CACHE_REQUEST_TIMEOUT: 5
|
||||||
|
# Use FASTZIP for faster compression in cache and artifacts (boolean)
|
||||||
|
# https://docs.gitlab.com/runner/configuration/feature-flags.html#available-feature-flags
|
||||||
|
FF_USE_FASTZIP: 1
|
||||||
|
|
||||||
|
# Our Variables
|
||||||
|
CACHE_DIR: "$CI_PROJECT_DIR/ccache"
|
||||||
|
CCACHE_DIR: $CACHE_DIR
|
||||||
|
|
||||||
|
|
||||||
|
#CLANG FORMAT - CHECKS CODE FOR FORMATTING ISSUES
|
||||||
|
clang-format:
|
||||||
|
stage: format
|
||||||
|
image: suyuemu/cibuild:clangformat
|
||||||
|
#THIS HAS TO BE FALSE. IT KEEPS RESOURCES AVAILABLE - EG RUNNERS WONT TRY BUILDING IF CODEBASE IS WRONG
|
||||||
|
#MR's NEED TO BE CORRECTLY CLANG FORMATTED
|
||||||
|
allow_failure: false
|
||||||
|
script:
|
||||||
|
- git submodule update --init --depth 1 --recursive
|
||||||
|
- bash .ci/scripts/format/script.sh
|
||||||
|
tags:
|
||||||
|
# - Linux
|
||||||
|
# - Windows
|
||||||
|
- Parallelized
|
||||||
|
- Format
|
||||||
|
|
||||||
|
#LINUX BUILD - BUILDS LINUX APPIMAGE
|
||||||
|
build-linux:
|
||||||
|
stage: build
|
||||||
|
image: suyuemu/cibuild:linux-x64
|
||||||
|
resource_group: linux-ci
|
||||||
|
cache:
|
||||||
|
key: "$CI_COMMIT_REF_NAME-ccache"
|
||||||
|
paths:
|
||||||
|
- $CACHE_DIR
|
||||||
|
before_script:
|
||||||
|
- mkdir -p $CACHE_DIR
|
||||||
|
- chmod -R 777 $CACHE_DIR
|
||||||
|
- ls -la $CACHE_DIR
|
||||||
|
variables:
|
||||||
|
GIT_SUBMODULE_STRATEGY: recursive
|
||||||
|
GIT_SUBMODULE_DEPTH: 1
|
||||||
|
RELEASE_NAME: mainline
|
||||||
|
script:
|
||||||
|
- bash .ci/scripts/linux/docker.sh
|
||||||
|
- bash .ci/scripts/linux/upload.sh
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- artifacts/*
|
||||||
|
tags:
|
||||||
|
- Linux
|
||||||
|
- Parallelized
|
||||||
|
|
||||||
|
#ANDROID BUILD - BUILDS APK
|
||||||
|
android:
|
||||||
|
stage: build
|
||||||
|
image: suyuemu/cibuild:android-x64
|
||||||
|
script:
|
||||||
|
- apt-get update -y
|
||||||
|
- git submodule update --init --recursive
|
||||||
|
- cd externals/vcpkg
|
||||||
|
- git fetch --unshallow || true
|
||||||
|
- cd ../..
|
||||||
|
- export ANDROID_HOME="/usr/lib/android-sdk/"
|
||||||
|
- echo y | sdkmanager --sdk_root=/usr/lib/android-sdk --licenses
|
||||||
|
- bash ./.ci/scripts/android/build.sh
|
||||||
|
- bash ./.ci/scripts/android/upload.sh
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- artifacts/*
|
||||||
|
tags:
|
||||||
|
- Android
|
||||||
|
- Parallelized
|
||||||
|
|
76
.gitmodules
vendored
76
.gitmodules
vendored
|
@ -9,22 +9,22 @@
|
||||||
url = https://github.com/mozilla/cubeb.git
|
url = https://github.com/mozilla/cubeb.git
|
||||||
[submodule "dynarmic"]
|
[submodule "dynarmic"]
|
||||||
path = externals/dynarmic
|
path = externals/dynarmic
|
||||||
url = https://github.com/merryhime/dynarmic.git
|
url = https://gitlab.com/suyu-emu/dynarmic.git
|
||||||
[submodule "libusb"]
|
[submodule "libusb"]
|
||||||
path = externals/libusb/libusb
|
path = externals/libusb/libusb
|
||||||
url = https://github.com/libusb/libusb.git
|
url = https://github.com/libusb/libusb.git
|
||||||
[submodule "discord-rpc"]
|
[submodule "discord-rpc"]
|
||||||
path = externals/discord-rpc
|
path = externals/discord-rpc
|
||||||
url = https://gitlab.com/suyu2/discord-rpc.git
|
url = https://gitlab.com/suyu-emu/discord-rpc.git
|
||||||
[submodule "Vulkan-Headers"]
|
[submodule "Vulkan-Headers"]
|
||||||
path = externals/Vulkan-Headers
|
path = externals/Vulkan-Headers
|
||||||
url = https://github.com/KhronosGroup/Vulkan-Headers.git
|
url = https://github.com/KhronosGroup/Vulkan-Headers.git
|
||||||
[submodule "sirit"]
|
[submodule "sirit"]
|
||||||
path = externals/sirit
|
path = externals/sirit
|
||||||
url = https://gitlab.com/suyu2/sirit.git
|
url = https://gitlab.com/suyu-emu/sirit.git
|
||||||
[submodule "mbedtls"]
|
[submodule "mbedtls"]
|
||||||
path = externals/mbedtls
|
path = externals/mbedtls
|
||||||
url = https://gitlab.com/suyu2/mbedtls.git
|
url = https://gitlab.com/suyu-emu/mbedtls.git
|
||||||
[submodule "xbyak"]
|
[submodule "xbyak"]
|
||||||
path = externals/xbyak
|
path = externals/xbyak
|
||||||
url = https://github.com/herumi/xbyak.git
|
url = https://github.com/herumi/xbyak.git
|
||||||
|
@ -57,7 +57,7 @@
|
||||||
url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
|
url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
|
||||||
[submodule "breakpad"]
|
[submodule "breakpad"]
|
||||||
path = externals/breakpad
|
path = externals/breakpad
|
||||||
url = https://gitlab.com/suyu2/breakpad.git
|
url = https://gitlab.com/suyu-emu/breakpad.git
|
||||||
[submodule "simpleini"]
|
[submodule "simpleini"]
|
||||||
path = externals/simpleini
|
path = externals/simpleini
|
||||||
url = https://github.com/brofield/simpleini.git
|
url = https://github.com/brofield/simpleini.git
|
||||||
|
@ -67,69 +67,3 @@
|
||||||
[submodule "Vulkan-Utility-Libraries"]
|
[submodule "Vulkan-Utility-Libraries"]
|
||||||
path = externals/Vulkan-Utility-Libraries
|
path = externals/Vulkan-Utility-Libraries
|
||||||
url = https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git
|
url = https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git
|
||||||
[submodule "externals/cubeb"]
|
|
||||||
path = externals/cubeb
|
|
||||||
url = https://github.com/mozilla/cubeb.git
|
|
||||||
[submodule "externals/Vulkan-Headers"]
|
|
||||||
path = externals/Vulkan-Headers
|
|
||||||
url = https://github.com/KhronosGroup/Vulkan-Headers.git
|
|
||||||
[submodule "externals/breakpad"]
|
|
||||||
path = externals/breakpad
|
|
||||||
url = https://gitlab.com/suyu2/breakpad.git
|
|
||||||
[submodule "externals/VulkanMemoryAllocator"]
|
|
||||||
path = externals/VulkanMemoryAllocator
|
|
||||||
url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
|
|
||||||
[submodule "externals/SDL"]
|
|
||||||
path = externals/SDL
|
|
||||||
url = https://github.com/libsdl-org/SDL.git
|
|
||||||
[submodule "externals/mbedtls"]
|
|
||||||
path = externals/mbedtls
|
|
||||||
url = https://gitlab.com/suyu2/mbedtls.git
|
|
||||||
[submodule "externals/Vulkan-Utility-Libraries"]
|
|
||||||
path = externals/Vulkan-Utility-Libraries
|
|
||||||
url = https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git
|
|
||||||
[submodule "externals/oaknut"]
|
|
||||||
path = externals/oaknut
|
|
||||||
url = https://github.com/merryhime/oaknut.git
|
|
||||||
[submodule "externals/sirit"]
|
|
||||||
path = externals/sirit
|
|
||||||
url = https://gitlab.com/suyu2/sirit.git
|
|
||||||
[submodule "externals/enet"]
|
|
||||||
path = externals/enet
|
|
||||||
url = https://github.com/lsalzman/enet.git
|
|
||||||
[submodule "externals/opus"]
|
|
||||||
path = externals/opus
|
|
||||||
url = https://github.com/xiph/opus.git
|
|
||||||
[submodule "externals/xbyak"]
|
|
||||||
path = externals/xbyak
|
|
||||||
url = https://github.com/herumi/xbyak.git
|
|
||||||
[submodule "externals/simpleini"]
|
|
||||||
path = externals/simpleini
|
|
||||||
url = https://github.com/brofield/simpleini.git
|
|
||||||
[submodule "externals/nx_tzdb/tzdb_to_nx"]
|
|
||||||
path = externals/nx_tzdb/tzdb_to_nx
|
|
||||||
url = https://github.com/lat9nq/tzdb_to_nx.git
|
|
||||||
[submodule "externals/cpp-jwt"]
|
|
||||||
path = externals/cpp-jwt
|
|
||||||
url = https://github.com/arun11299/cpp-jwt.git
|
|
||||||
[submodule "externals/vcpkg"]
|
|
||||||
path = externals/vcpkg
|
|
||||||
url = https://github.com/microsoft/vcpkg.git
|
|
||||||
[submodule "externals/cpp-httplib"]
|
|
||||||
path = externals/cpp-httplib
|
|
||||||
url = https://github.com/yhirose/cpp-httplib.git
|
|
||||||
[submodule "externals/libusb/libusb"]
|
|
||||||
path = externals/libusb/libusb
|
|
||||||
url = https://github.com/libusb/libusb.git
|
|
||||||
[submodule "externals/discord-rpc"]
|
|
||||||
path = externals/discord-rpc
|
|
||||||
url = https://gitlab.com/suyu2/discord-rpc.git
|
|
||||||
[submodule "externals/libadrenotools"]
|
|
||||||
path = externals/libadrenotools
|
|
||||||
url = https://github.com/bylaws/libadrenotools.git
|
|
||||||
[submodule "externals/ffmpeg/ffmpeg"]
|
|
||||||
path = externals/ffmpeg/ffmpeg
|
|
||||||
url = https://github.com/FFmpeg/FFmpeg.git
|
|
||||||
[submodule "externals/dynarmic"]
|
|
||||||
path = externals/dynarmic
|
|
||||||
url = https://gitlab.com/suyu2/dynarmic.git
|
|
||||||
|
|
28
.reuse/dep5
28
.reuse/dep5
|
@ -9,15 +9,15 @@ Files: dist/english_plurals/*
|
||||||
dist/qt_themes/*/icons/48x48/sd_card.png
|
dist/qt_themes/*/icons/48x48/sd_card.png
|
||||||
dist/qt_themes/*/icons/index.theme
|
dist/qt_themes/*/icons/index.theme
|
||||||
dist/qt_themes/default/style.qss
|
dist/qt_themes/default/style.qss
|
||||||
Copyright: yuzu Emulator Project
|
Copyright: suyu Emulator Project
|
||||||
License: GPL-2.0-or-later
|
License: GPL-2.0-or-later
|
||||||
|
|
||||||
Files: dist/qt_themes/default/icons/256x256/yuzu.png
|
Files: dist/qt_themes/default/icons/256x256/suyu.png
|
||||||
dist/yuzu.bmp
|
dist/suyu.bmp
|
||||||
dist/yuzu.icns
|
dist/suyu.icns
|
||||||
dist/yuzu.ico
|
dist/suyu.ico
|
||||||
dist/yuzu.svg
|
dist/suyu.svg
|
||||||
Copyright: yuzu Emulator Project
|
Copyright: suyu Emulator Project
|
||||||
License: GPL-2.0-or-later
|
License: GPL-2.0-or-later
|
||||||
|
|
||||||
Files: dist/qt_themes/qdarkstyle*/LICENSE.*
|
Files: dist/qt_themes/qdarkstyle*/LICENSE.*
|
||||||
|
@ -108,22 +108,22 @@ Files: externals/FidelityFX-FSR/*
|
||||||
Copyright: 2021 Advanced Micro Devices, Inc.
|
Copyright: 2021 Advanced Micro Devices, Inc.
|
||||||
License: MIT
|
License: MIT
|
||||||
|
|
||||||
Files: src/yuzu/*.ui
|
Files: src/suyu/*.ui
|
||||||
Copyright: 2018-2022 yuzu Emulator Project
|
Copyright: 2018-2022 yuzu Emulator Project
|
||||||
License: GPL-2.0-or-later
|
License: GPL-2.0-or-later
|
||||||
|
|
||||||
Files: src/yuzu/compatdb.ui
|
Files: src/suyu/compatdb.ui
|
||||||
src/yuzu/main.ui
|
src/suyu/main.ui
|
||||||
Copyright: 2014-2017 Citra Emulator Project
|
Copyright: 2014-2017 Citra Emulator Project
|
||||||
License: GPL-2.0-or-later
|
License: GPL-2.0-or-later
|
||||||
|
|
||||||
Files: src/yuzu/loading_screen.ui
|
Files: src/suyu/loading_screen.ui
|
||||||
Copyright: 2019 James Rowe <jroweboy@gmail.com>
|
Copyright: 2019 James Rowe <jroweboy@gmail.com>
|
||||||
License: GPL-2.0-or-later
|
License: GPL-2.0-or-later
|
||||||
|
|
||||||
Files: src/yuzu/applets/aboutdialog.ui
|
Files: src/suyu/applets/aboutdialog.ui
|
||||||
src/yuzu/applets/qt_software_keyboard.ui
|
src/suyu/applets/qt_software_keyboard.ui
|
||||||
src/yuzu/util/overlay_dialog.ui
|
src/suyu/util/overlay_dialog.ui
|
||||||
Copyright: 2020-2021 Its-Rei <kupfel@gmail.com>
|
Copyright: 2020-2021 Its-Rei <kupfel@gmail.com>
|
||||||
2020-2021 yuzu Emulator Project
|
2020-2021 yuzu Emulator Project
|
||||||
License: GPL-2.0-or-later
|
License: GPL-2.0-or-later
|
||||||
|
|
184
CMakeLists.txt
184
CMakeLists.txt
|
@ -1,9 +1,12 @@
|
||||||
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.22)
|
cmake_minimum_required(VERSION 3.22)
|
||||||
|
|
||||||
project(yuzu)
|
set(CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT OFF)
|
||||||
|
set(CMAKE_XCODE_EMIT_RELATIVE_PATH YES)
|
||||||
|
|
||||||
|
project(suyu)
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modules")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modules")
|
||||||
|
@ -15,9 +18,9 @@ include(CTest)
|
||||||
# Set bundled sdl2/qt as dependent options.
|
# Set bundled sdl2/qt as dependent options.
|
||||||
# OFF by default, but if ENABLE_SDL2 and MSVC are true then ON
|
# OFF by default, but if ENABLE_SDL2 and MSVC are true then ON
|
||||||
option(ENABLE_SDL2 "Enable the SDL2 frontend" ON)
|
option(ENABLE_SDL2 "Enable the SDL2 frontend" ON)
|
||||||
CMAKE_DEPENDENT_OPTION(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 binaries" ON "ENABLE_SDL2;MSVC" OFF)
|
CMAKE_DEPENDENT_OPTION(SUYU_USE_BUNDLED_SDL2 "Download bundled SDL2 binaries" ON "ENABLE_SDL2;MSVC" OFF)
|
||||||
# On Linux system SDL2 is likely to be lacking HIDAPI support which have drawbacks but is needed for SDL motion
|
# On Linux system SDL2 is likely to be lacking HIDAPI support which have drawbacks but is needed for SDL motion
|
||||||
CMAKE_DEPENDENT_OPTION(YUZU_USE_EXTERNAL_SDL2 "Compile external SDL2" ON "ENABLE_SDL2;NOT MSVC" OFF)
|
CMAKE_DEPENDENT_OPTION(SUYU_USE_EXTERNAL_SDL2 "Compile external SDL2" ON "ENABLE_SDL2;NOT MSVC" OFF)
|
||||||
|
|
||||||
cmake_dependent_option(ENABLE_LIBUSB "Enable the use of LibUSB" ON "NOT ANDROID" OFF)
|
cmake_dependent_option(ENABLE_LIBUSB "Enable the use of LibUSB" ON "NOT ANDROID" OFF)
|
||||||
|
|
||||||
|
@ -28,48 +31,50 @@ option(ENABLE_QT6 "Allow usage of Qt6 to be attempted" OFF)
|
||||||
set(QT6_LOCATION "" CACHE PATH "Additional Location to search for Qt6 libraries like C:/Qt/6.3.1/msvc2019_64/")
|
set(QT6_LOCATION "" CACHE PATH "Additional Location to search for Qt6 libraries like C:/Qt/6.3.1/msvc2019_64/")
|
||||||
|
|
||||||
option(ENABLE_QT_TRANSLATION "Enable translations for the Qt frontend" OFF)
|
option(ENABLE_QT_TRANSLATION "Enable translations for the Qt frontend" OFF)
|
||||||
CMAKE_DEPENDENT_OPTION(YUZU_USE_BUNDLED_QT "Download bundled Qt binaries" "${MSVC}" "ENABLE_QT" OFF)
|
CMAKE_DEPENDENT_OPTION(SUYU_USE_BUNDLED_QT "Download bundled Qt binaries" "${MSVC}" "ENABLE_QT" OFF)
|
||||||
|
|
||||||
option(ENABLE_WEB_SERVICE "Enable web services (telemetry, etc.)" ON)
|
option(ENABLE_WEB_SERVICE "Enable web services (telemetry, etc.)" ON)
|
||||||
|
|
||||||
option(YUZU_USE_BUNDLED_FFMPEG "Download/Build bundled FFmpeg" "${WIN32}")
|
option(SUYU_USE_BUNDLED_FFMPEG "Download/Build bundled FFmpeg" "${WIN32}")
|
||||||
|
|
||||||
option(YUZU_USE_EXTERNAL_VULKAN_HEADERS "Use Vulkan-Headers from externals" ON)
|
option(SUYU_USE_EXTERNAL_VULKAN_HEADERS "Use Vulkan-Headers from externals" ON)
|
||||||
|
|
||||||
option(YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES "Use Vulkan-Utility-Libraries from externals" ON)
|
option(SUYU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES "Use Vulkan-Utility-Libraries from externals" ON)
|
||||||
|
|
||||||
option(YUZU_USE_QT_MULTIMEDIA "Use QtMultimedia for Camera" OFF)
|
option(SUYU_USE_QT_MULTIMEDIA "Use QtMultimedia for Camera" OFF)
|
||||||
|
|
||||||
option(YUZU_USE_QT_WEB_ENGINE "Use QtWebEngine for web applet implementation" OFF)
|
option(SUYU_USE_QT_WEB_ENGINE "Use QtWebEngine for web applet implementation" OFF)
|
||||||
|
|
||||||
option(ENABLE_CUBEB "Enables the cubeb audio backend" ON)
|
option(ENABLE_CUBEB "Enables the cubeb audio backend" ON)
|
||||||
|
|
||||||
option(USE_DISCORD_PRESENCE "Enables Discord Rich Presence" OFF)
|
option(USE_DISCORD_PRESENCE "Enables Discord Rich Presence" OFF)
|
||||||
|
|
||||||
option(YUZU_TESTS "Compile tests" "${BUILD_TESTING}")
|
option(SUYU_TESTS "Compile tests" "${BUILD_TESTING}")
|
||||||
|
|
||||||
option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON)
|
option(SUYU_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON)
|
||||||
|
|
||||||
option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON)
|
option(SUYU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON)
|
||||||
|
|
||||||
CMAKE_DEPENDENT_OPTION(YUZU_ROOM "Compile LDN room server" ON "NOT ANDROID" OFF)
|
CMAKE_DEPENDENT_OPTION(SUYU_ROOM "Compile LDN room server" ON "NOT ANDROID" OFF)
|
||||||
|
|
||||||
CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR LINUX" OFF)
|
CMAKE_DEPENDENT_OPTION(SUYU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR LINUX" OFF)
|
||||||
|
|
||||||
option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}")
|
option(SUYU_USE_BUNDLED_VCPKG "Use vcpkg for suyu dependencies" "${MSVC}")
|
||||||
|
|
||||||
option(YUZU_CHECK_SUBMODULES "Check if submodules are present" ON)
|
option(SUYU_CHECK_SUBMODULES "Check if submodules are present" ON)
|
||||||
|
|
||||||
option(YUZU_ENABLE_LTO "Enable link-time optimization" OFF)
|
option(SUYU_ENABLE_LTO "Enable link-time optimization" OFF)
|
||||||
|
|
||||||
option(YUZU_DOWNLOAD_TIME_ZONE_DATA "Always download time zone binaries" OFF)
|
option(SUYU_DOWNLOAD_TIME_ZONE_DATA "Always download time zone binaries" OFF)
|
||||||
|
|
||||||
option(YUZU_ENABLE_PORTABLE "Allow yuzu to enable portable mode if a user folder is found in the CWD" ON)
|
option(SUYU_ENABLE_PORTABLE "Allow suyu to enable portable mode if a user folder is found in the CWD" ON)
|
||||||
|
|
||||||
CMAKE_DEPENDENT_OPTION(YUZU_USE_FASTER_LD "Check if a faster linker is available" ON "NOT WIN32" OFF)
|
CMAKE_DEPENDENT_OPTION(SUYU_USE_FASTER_LD "Check if a faster linker is available" ON "NOT WIN32" OFF)
|
||||||
|
|
||||||
CMAKE_DEPENDENT_OPTION(USE_SYSTEM_MOLTENVK "Use the system MoltenVK lib (instead of the bundled one)" OFF "APPLE" OFF)
|
CMAKE_DEPENDENT_OPTION(USE_SYSTEM_MOLTENVK "Use the system MoltenVK lib (instead of the bundled one)" OFF "APPLE" OFF)
|
||||||
|
|
||||||
|
option(USE_CCACHE "Use CCache for faster building" ON)
|
||||||
|
|
||||||
set(DEFAULT_ENABLE_OPENSSL ON)
|
set(DEFAULT_ENABLE_OPENSSL ON)
|
||||||
if (ANDROID OR WIN32 OR APPLE)
|
if (ANDROID OR WIN32 OR APPLE)
|
||||||
# - Windows defaults to the Schannel backend.
|
# - Windows defaults to the Schannel backend.
|
||||||
|
@ -82,7 +87,7 @@ if (ANDROID OR WIN32 OR APPLE)
|
||||||
endif()
|
endif()
|
||||||
option(ENABLE_OPENSSL "Enable OpenSSL backend for ISslConnection" ${DEFAULT_ENABLE_OPENSSL})
|
option(ENABLE_OPENSSL "Enable OpenSSL backend for ISslConnection" ${DEFAULT_ENABLE_OPENSSL})
|
||||||
|
|
||||||
if (ANDROID AND YUZU_DOWNLOAD_ANDROID_VVL)
|
if (ANDROID AND SUYU_DOWNLOAD_ANDROID_VVL)
|
||||||
set(vvl_version "sdk-1.3.261.1")
|
set(vvl_version "sdk-1.3.261.1")
|
||||||
set(vvl_zip_file "${CMAKE_BINARY_DIR}/externals/vvl-android.zip")
|
set(vvl_zip_file "${CMAKE_BINARY_DIR}/externals/vvl-android.zip")
|
||||||
if (NOT EXISTS "${vvl_zip_file}")
|
if (NOT EXISTS "${vvl_zip_file}")
|
||||||
|
@ -104,7 +109,7 @@ if (ANDROID)
|
||||||
set(CMAKE_SKIP_INSTALL_RULES ON)
|
set(CMAKE_SKIP_INSTALL_RULES ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (YUZU_USE_BUNDLED_VCPKG)
|
if (SUYU_USE_BUNDLED_VCPKG)
|
||||||
if (ANDROID)
|
if (ANDROID)
|
||||||
set(ENV{ANDROID_NDK_HOME} "${ANDROID_NDK}")
|
set(ENV{ANDROID_NDK_HOME} "${ANDROID_NDK}")
|
||||||
list(APPEND VCPKG_MANIFEST_FEATURES "android")
|
list(APPEND VCPKG_MANIFEST_FEATURES "android")
|
||||||
|
@ -126,7 +131,7 @@ if (YUZU_USE_BUNDLED_VCPKG)
|
||||||
set(VCPKG_DOWNLOADS_PATH ${PROJECT_SOURCE_DIR}/externals/vcpkg/downloads)
|
set(VCPKG_DOWNLOADS_PATH ${PROJECT_SOURCE_DIR}/externals/vcpkg/downloads)
|
||||||
set(NASM_VERSION "2.16.01")
|
set(NASM_VERSION "2.16.01")
|
||||||
set(NASM_DESTINATION_PATH ${VCPKG_DOWNLOADS_PATH}/nasm-${NASM_VERSION}-win64.zip)
|
set(NASM_DESTINATION_PATH ${VCPKG_DOWNLOADS_PATH}/nasm-${NASM_VERSION}-win64.zip)
|
||||||
set(NASM_DOWNLOAD_URL "https://github.com/yuzu-emu/ext-windows-bin/raw/master/nasm/nasm-${NASM_VERSION}-win64.zip")
|
set(NASM_DOWNLOAD_URL "https://gitlab.com/suyu-emu/ext-windows-bin/raw/master/nasm/nasm-${NASM_VERSION}-win64.zip")
|
||||||
|
|
||||||
if (NOT EXISTS ${NASM_DESTINATION_PATH})
|
if (NOT EXISTS ${NASM_DESTINATION_PATH})
|
||||||
file(DOWNLOAD ${NASM_DOWNLOAD_URL} ${NASM_DESTINATION_PATH} SHOW_PROGRESS STATUS NASM_STATUS)
|
file(DOWNLOAD ${NASM_DOWNLOAD_URL} ${NASM_DESTINATION_PATH} SHOW_PROGRESS STATUS NASM_STATUS)
|
||||||
|
@ -138,8 +143,8 @@ if (YUZU_USE_BUNDLED_VCPKG)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (YUZU_TESTS)
|
if (SUYU_TESTS)
|
||||||
list(APPEND VCPKG_MANIFEST_FEATURES "yuzu-tests")
|
list(APPEND VCPKG_MANIFEST_FEATURES "suyu-tests")
|
||||||
endif()
|
endif()
|
||||||
if (ENABLE_WEB_SERVICE)
|
if (ENABLE_WEB_SERVICE)
|
||||||
list(APPEND VCPKG_MANIFEST_FEATURES "web-service")
|
list(APPEND VCPKG_MANIFEST_FEATURES "web-service")
|
||||||
|
@ -155,16 +160,16 @@ elseif(NOT "$ENV{VCPKG_TOOLCHAIN_FILE}" STREQUAL "")
|
||||||
include("$ENV{VCPKG_TOOLCHAIN_FILE}")
|
include("$ENV{VCPKG_TOOLCHAIN_FILE}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (YUZU_USE_PRECOMPILED_HEADERS)
|
if (SUYU_USE_PRECOMPILED_HEADERS)
|
||||||
if (MSVC AND CCACHE)
|
if (MSVC AND CCACHE)
|
||||||
# buildcache does not properly cache PCH files, leading to compilation errors.
|
# buildcache does not properly cache PCH files, leading to compilation errors.
|
||||||
# See https://github.com/mbitsnbites/buildcache/discussions/230
|
# See https://github.com/mbitsnbites/buildcache/discussions/230
|
||||||
message(WARNING "buildcache does not properly support Precompiled Headers. Disabling PCH")
|
message(WARNING "buildcache does not properly support Precompiled Headers. Disabling PCH")
|
||||||
set(DYNARMIC_USE_PRECOMPILED_HEADERS OFF CACHE BOOL "" FORCE)
|
set(DYNARMIC_USE_PRECOMPILED_HEADERS OFF CACHE BOOL "" FORCE)
|
||||||
set(YUZU_USE_PRECOMPILED_HEADERS OFF CACHE BOOL "" FORCE)
|
set(SUYU_USE_PRECOMPILED_HEADERS OFF CACHE BOOL "" FORCE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if (YUZU_USE_PRECOMPILED_HEADERS)
|
if (SUYU_USE_PRECOMPILED_HEADERS)
|
||||||
message(STATUS "Using Precompiled Headers.")
|
message(STATUS "Using Precompiled Headers.")
|
||||||
set(CMAKE_PCH_INSTANTIATE_TEMPLATES ON)
|
set(CMAKE_PCH_INSTANTIATE_TEMPLATES ON)
|
||||||
endif()
|
endif()
|
||||||
|
@ -199,7 +204,7 @@ function(check_submodules_present)
|
||||||
endforeach()
|
endforeach()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
if(EXISTS ${PROJECT_SOURCE_DIR}/.gitmodules AND YUZU_CHECK_SUBMODULES)
|
if(EXISTS ${PROJECT_SOURCE_DIR}/.gitmodules AND SUYU_CHECK_SUBMODULES)
|
||||||
check_submodules_present()
|
check_submodules_present()
|
||||||
endif()
|
endif()
|
||||||
configure_file(${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.qrc
|
configure_file(${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.qrc
|
||||||
|
@ -211,9 +216,9 @@ if (EXISTS ${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.json
|
||||||
COPYONLY)
|
COPYONLY)
|
||||||
endif()
|
endif()
|
||||||
if (ENABLE_COMPATIBILITY_LIST_DOWNLOAD AND NOT EXISTS ${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json)
|
if (ENABLE_COMPATIBILITY_LIST_DOWNLOAD AND NOT EXISTS ${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json)
|
||||||
message(STATUS "Downloading compatibility list for yuzu...")
|
message(STATUS "Downloading compatibility list for suyu...")
|
||||||
file(DOWNLOAD
|
file(DOWNLOAD
|
||||||
https://api.yuzu-emu.org/gamedb/
|
https://api.suyu.dev/gamedb/
|
||||||
"${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json" SHOW_PROGRESS)
|
"${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json" SHOW_PROGRESS)
|
||||||
endif()
|
endif()
|
||||||
if (NOT EXISTS ${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json)
|
if (NOT EXISTS ${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json)
|
||||||
|
@ -262,7 +267,7 @@ endif()
|
||||||
message(STATUS "Target architecture: ${ARCHITECTURE}")
|
message(STATUS "Target architecture: ${ARCHITECTURE}")
|
||||||
|
|
||||||
if (UNIX)
|
if (UNIX)
|
||||||
add_definitions(-DYUZU_UNIX=1)
|
add_definitions(-DSUYU_UNIX=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ARCHITECTURE_arm64 AND (ANDROID OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux"))
|
if (ARCHITECTURE_arm64 AND (ANDROID OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux"))
|
||||||
|
@ -306,11 +311,11 @@ find_package(VulkanMemoryAllocator CONFIG)
|
||||||
find_package(ZLIB 1.2 REQUIRED)
|
find_package(ZLIB 1.2 REQUIRED)
|
||||||
find_package(zstd 1.5 REQUIRED)
|
find_package(zstd 1.5 REQUIRED)
|
||||||
|
|
||||||
if (NOT YUZU_USE_EXTERNAL_VULKAN_HEADERS)
|
if (NOT SUYU_USE_EXTERNAL_VULKAN_HEADERS)
|
||||||
find_package(VulkanHeaders 1.3.274 REQUIRED)
|
find_package(VulkanHeaders 1.3.274 REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES)
|
if (NOT SUYU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES)
|
||||||
find_package(VulkanUtilityLibraries REQUIRED)
|
find_package(VulkanUtilityLibraries REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -319,7 +324,7 @@ if (ENABLE_LIBUSB)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64)
|
if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64)
|
||||||
find_package(xbyak 6 CONFIG)
|
find_package(xbyak 7 CONFIG)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ARCHITECTURE_arm64)
|
if (ARCHITECTURE_arm64)
|
||||||
|
@ -340,10 +345,13 @@ endif()
|
||||||
|
|
||||||
if (ENABLE_WEB_SERVICE)
|
if (ENABLE_WEB_SERVICE)
|
||||||
find_package(cpp-jwt 1.4 CONFIG)
|
find_package(cpp-jwt 1.4 CONFIG)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (ENABLE_WEB_SERVICE OR USE_DISCORD_PRESENCE)
|
||||||
find_package(httplib 0.12 MODULE COMPONENTS OpenSSL)
|
find_package(httplib 0.12 MODULE COMPONENTS OpenSSL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (YUZU_TESTS)
|
if (SUYU_TESTS)
|
||||||
find_package(Catch2 3.0.1 REQUIRED)
|
find_package(Catch2 3.0.1 REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -365,26 +373,26 @@ if(ENABLE_QT6 AND Qt6_LOCATION)
|
||||||
list(APPEND CMAKE_PREFIX_PATH "${Qt6_LOCATION}")
|
list(APPEND CMAKE_PREFIX_PATH "${Qt6_LOCATION}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
function(set_yuzu_qt_components)
|
function(set_suyu_qt_components)
|
||||||
# Best practice is to ask for all components at once, so they are from the same version
|
# Best practice is to ask for all components at once, so they are from the same version
|
||||||
set(YUZU_QT_COMPONENTS2 Core Widgets Concurrent)
|
set(SUYU_QT_COMPONENTS2 Core Widgets Concurrent)
|
||||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
||||||
list(APPEND YUZU_QT_COMPONENTS2 DBus)
|
list(APPEND SUYU_QT_COMPONENTS2 DBus)
|
||||||
endif()
|
endif()
|
||||||
if (YUZU_USE_QT_MULTIMEDIA)
|
if (SUYU_USE_QT_MULTIMEDIA)
|
||||||
list(APPEND YUZU_QT_COMPONENTS2 Multimedia)
|
list(APPEND SUYU_QT_COMPONENTS2 Multimedia)
|
||||||
endif()
|
endif()
|
||||||
if (YUZU_USE_QT_WEB_ENGINE)
|
if (SUYU_USE_QT_WEB_ENGINE)
|
||||||
list(APPEND YUZU_QT_COMPONENTS2 WebEngineCore WebEngineWidgets)
|
list(APPEND SUYU_QT_COMPONENTS2 WebEngineCore WebEngineWidgets)
|
||||||
endif()
|
endif()
|
||||||
if (ENABLE_QT_TRANSLATION)
|
if (ENABLE_QT_TRANSLATION)
|
||||||
list(APPEND YUZU_QT_COMPONENTS2 LinguistTools)
|
list(APPEND SUYU_QT_COMPONENTS2 LinguistTools)
|
||||||
endif()
|
endif()
|
||||||
if (USE_DISCORD_PRESENCE)
|
if (USE_DISCORD_PRESENCE)
|
||||||
list(APPEND YUZU_QT_COMPONENTS2 Network)
|
list(APPEND SUYU_QT_COMPONENTS2 Network)
|
||||||
endif()
|
endif()
|
||||||
set(YUZU_QT_COMPONENTS ${YUZU_QT_COMPONENTS2} PARENT_SCOPE)
|
set(SUYU_QT_COMPONENTS ${SUYU_QT_COMPONENTS2} PARENT_SCOPE)
|
||||||
endfunction(set_yuzu_qt_components)
|
endfunction(set_suyu_qt_components)
|
||||||
|
|
||||||
# Qt5 requires that we find components, so it doesn't fit our pretty little find package function
|
# Qt5 requires that we find components, so it doesn't fit our pretty little find package function
|
||||||
if(ENABLE_QT)
|
if(ENABLE_QT)
|
||||||
|
@ -393,29 +401,29 @@ if(ENABLE_QT)
|
||||||
set(QT5_VERSION 5.15)
|
set(QT5_VERSION 5.15)
|
||||||
set(QT6_VERSION 6.3.1)
|
set(QT6_VERSION 6.3.1)
|
||||||
|
|
||||||
set_yuzu_qt_components()
|
set_suyu_qt_components()
|
||||||
if (ENABLE_QT6)
|
if (ENABLE_QT6)
|
||||||
find_package(Qt6 ${QT6_VERSION} COMPONENTS ${YUZU_QT_COMPONENTS})
|
find_package(Qt6 ${QT6_VERSION} COMPONENTS ${SUYU_QT_COMPONENTS})
|
||||||
endif()
|
endif()
|
||||||
if (Qt6_FOUND)
|
if (Qt6_FOUND)
|
||||||
message(STATUS "yuzu/CMakeLists.txt: Qt6Widgets_VERSION ${Qt6Widgets_VERSION}, setting QT_VERSION")
|
message(STATUS "suyu/CMakeLists.txt: Qt6Widgets_VERSION ${Qt6Widgets_VERSION}, setting QT_VERSION")
|
||||||
set(QT_VERSION ${Qt6Widgets_VERSION})
|
set(QT_VERSION ${Qt6Widgets_VERSION})
|
||||||
set(QT_MAJOR_VERSION 6)
|
set(QT_MAJOR_VERSION 6)
|
||||||
# Qt6 sets cxx_std_17 and we need to undo that
|
# Qt6 sets cxx_std_17 and we need to undo that
|
||||||
set_target_properties(Qt6::Platform PROPERTIES INTERFACE_COMPILE_FEATURES "")
|
set_target_properties(Qt6::Platform PROPERTIES INTERFACE_COMPILE_FEATURES "")
|
||||||
else()
|
else()
|
||||||
message(STATUS "yuzu/CMakeLists.txt: Qt6 not found/not selected, trying for Qt5")
|
message(STATUS "suyu/CMakeLists.txt: Qt6 not found/not selected, trying for Qt5")
|
||||||
# When Qt6 partially found, need this set to use Qt5 when not specifying version
|
# When Qt6 partially found, need this set to use Qt5 when not specifying version
|
||||||
set(QT_DEFAULT_MAJOR_VERSION 5)
|
set(QT_DEFAULT_MAJOR_VERSION 5)
|
||||||
set(QT_MAJOR_VERSION 5)
|
set(QT_MAJOR_VERSION 5)
|
||||||
|
|
||||||
set(YUZU_USE_QT_MULTIMEDIA ON)
|
set(SUYU_USE_QT_MULTIMEDIA ON)
|
||||||
# Check for system Qt on Linux, fallback to bundled Qt
|
# Check for system Qt on Linux, fallback to bundled Qt
|
||||||
if (UNIX AND NOT APPLE)
|
if (UNIX AND NOT APPLE)
|
||||||
if (NOT YUZU_USE_BUNDLED_QT)
|
if (NOT SUYU_USE_BUNDLED_QT)
|
||||||
find_package(Qt5 ${QT5_VERSION} COMPONENTS Widgets DBus Multimedia)
|
find_package(Qt5 ${QT5_VERSION} COMPONENTS Widgets DBus Multimedia)
|
||||||
endif()
|
endif()
|
||||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND (NOT Qt5_FOUND OR YUZU_USE_BUNDLED_QT))
|
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND (NOT Qt5_FOUND OR SUYU_USE_BUNDLED_QT))
|
||||||
# Check for dependencies, then enable bundled Qt download
|
# Check for dependencies, then enable bundled Qt download
|
||||||
|
|
||||||
# Check that the system GLIBCXX version is compatible
|
# Check that the system GLIBCXX version is compatible
|
||||||
|
@ -489,23 +497,23 @@ if(ENABLE_QT)
|
||||||
message(FATAL_ERROR "Bundled Qt package missing required dependencies: ${UNRESOLVED_QT_DEPS}")
|
message(FATAL_ERROR "Bundled Qt package missing required dependencies: ${UNRESOLVED_QT_DEPS}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(YUZU_USE_BUNDLED_QT ON CACHE BOOL "Download bundled Qt" FORCE)
|
set(SUYU_USE_BUNDLED_QT ON CACHE BOOL "Download bundled Qt" FORCE)
|
||||||
endif()
|
endif()
|
||||||
if (YUZU_USE_BUNDLED_QT)
|
if (SUYU_USE_BUNDLED_QT)
|
||||||
# Binary package currently does not support Qt webengine, so make sure it's disabled
|
# Binary package currently does not support Qt webengine, so make sure it's disabled
|
||||||
set(YUZU_USE_QT_WEB_ENGINE OFF CACHE BOOL "Use Qt Webengine" FORCE)
|
set(SUYU_USE_QT_WEB_ENGINE OFF CACHE BOOL "Use Qt Webengine" FORCE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(YUZU_QT_NO_CMAKE_SYSTEM_PATH)
|
set(SUYU_QT_NO_CMAKE_SYSTEM_PATH)
|
||||||
|
|
||||||
if(YUZU_USE_BUNDLED_QT)
|
if(SUYU_USE_BUNDLED_QT)
|
||||||
if ((MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1940) AND ARCHITECTURE_x86_64)
|
if ((MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1940) AND ARCHITECTURE_x86_64)
|
||||||
set(QT_BUILD qt-5.15.2-msvc2019_64)
|
set(QT_BUILD qt-5.15.2-msvc2019_64)
|
||||||
elseif ((${CMAKE_SYSTEM_NAME} STREQUAL "Linux") AND NOT MINGW AND ARCHITECTURE_x86_64)
|
elseif ((${CMAKE_SYSTEM_NAME} STREQUAL "Linux") AND NOT MINGW AND ARCHITECTURE_x86_64)
|
||||||
set(QT_BUILD qt5_5_15_2)
|
set(QT_BUILD qt5_5_15_2)
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "No bundled Qt binaries for your toolchain. Disable YUZU_USE_BUNDLED_QT and provide your own.")
|
message(FATAL_ERROR "No bundled Qt binaries for your toolchain. Disable SUYU_USE_BUNDLED_QT and provide your own.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (DEFINED QT_BUILD)
|
if (DEFINED QT_BUILD)
|
||||||
|
@ -514,25 +522,25 @@ if(ENABLE_QT)
|
||||||
|
|
||||||
set(QT_PREFIX_HINT HINTS "${QT_PREFIX}")
|
set(QT_PREFIX_HINT HINTS "${QT_PREFIX}")
|
||||||
|
|
||||||
set(YUZU_QT_NO_CMAKE_SYSTEM_PATH "NO_CMAKE_SYSTEM_PATH")
|
set(SUYU_QT_NO_CMAKE_SYSTEM_PATH "NO_CMAKE_SYSTEM_PATH")
|
||||||
# Binary package for Qt5 has Qt Multimedia
|
# Binary package for Qt5 has Qt Multimedia
|
||||||
set(YUZU_USE_QT_MULTIMEDIA ON CACHE BOOL "Use Qt Multimedia" FORCE)
|
set(SUYU_USE_QT_MULTIMEDIA ON CACHE BOOL "Use Qt Multimedia" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set_yuzu_qt_components()
|
set_suyu_qt_components()
|
||||||
find_package(Qt5 ${QT5_VERSION} COMPONENTS ${YUZU_QT_COMPONENTS} ${QT_PREFIX_HINT} ${YUZU_QT_NO_CMAKE_SYSTEM_PATH})
|
find_package(Qt5 ${QT5_VERSION} COMPONENTS ${SUYU_QT_COMPONENTS} ${QT_PREFIX_HINT} ${SUYU_QT_NO_CMAKE_SYSTEM_PATH})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# find SDL2 exports a bunch of variables that are needed, so its easier to do this outside of the yuzu_find_package
|
# find SDL2 exports a bunch of variables that are needed, so its easier to do this outside of the suyu_find_package
|
||||||
if (ENABLE_SDL2)
|
if (ENABLE_SDL2)
|
||||||
if (YUZU_USE_BUNDLED_SDL2)
|
if (SUYU_USE_BUNDLED_SDL2)
|
||||||
# Detect toolchain and platform
|
# Detect toolchain and platform
|
||||||
if ((MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1940) AND ARCHITECTURE_x86_64)
|
if ((MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1940) AND ARCHITECTURE_x86_64)
|
||||||
set(SDL2_VER "SDL2-2.28.2")
|
set(SDL2_VER "SDL2-2.28.2")
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "No bundled SDL2 binaries for your toolchain. Disable YUZU_USE_BUNDLED_SDL2 and provide your own.")
|
message(FATAL_ERROR "No bundled SDL2 binaries for your toolchain. Disable SUYU_USE_BUNDLED_SDL2 and provide your own.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (DEFINED SDL2_VER)
|
if (DEFINED SDL2_VER)
|
||||||
|
@ -547,7 +555,7 @@ if (ENABLE_SDL2)
|
||||||
add_library(SDL2::SDL2 INTERFACE IMPORTED)
|
add_library(SDL2::SDL2 INTERFACE IMPORTED)
|
||||||
target_link_libraries(SDL2::SDL2 INTERFACE "${SDL2_LIBRARY}")
|
target_link_libraries(SDL2::SDL2 INTERFACE "${SDL2_LIBRARY}")
|
||||||
target_include_directories(SDL2::SDL2 INTERFACE "${SDL2_INCLUDE_DIR}")
|
target_include_directories(SDL2::SDL2 INTERFACE "${SDL2_INCLUDE_DIR}")
|
||||||
elseif (YUZU_USE_EXTERNAL_SDL2)
|
elseif (SUYU_USE_EXTERNAL_SDL2)
|
||||||
message(STATUS "Using SDL2 from externals.")
|
message(STATUS "Using SDL2 from externals.")
|
||||||
else()
|
else()
|
||||||
find_package(SDL2 2.26.4 REQUIRED)
|
find_package(SDL2 2.26.4 REQUIRED)
|
||||||
|
@ -565,12 +573,12 @@ if (UNIX AND NOT APPLE AND NOT ANDROID)
|
||||||
find_package(PkgConfig REQUIRED)
|
find_package(PkgConfig REQUIRED)
|
||||||
pkg_check_modules(LIBVA libva)
|
pkg_check_modules(LIBVA libva)
|
||||||
endif()
|
endif()
|
||||||
if (NOT YUZU_USE_BUNDLED_FFMPEG)
|
if (NOT SUYU_USE_BUNDLED_FFMPEG)
|
||||||
# Use system installed FFmpeg
|
# Use system installed FFmpeg
|
||||||
find_package(FFmpeg 4.3 REQUIRED QUIET COMPONENTS ${FFmpeg_COMPONENTS})
|
find_package(FFmpeg 4.3 REQUIRED QUIET COMPONENTS ${FFmpeg_COMPONENTS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (WIN32 AND YUZU_CRASH_DUMPS)
|
if (WIN32 AND SUYU_CRASH_DUMPS)
|
||||||
set(BREAKPAD_VER "breakpad-c89f9dd")
|
set(BREAKPAD_VER "breakpad-c89f9dd")
|
||||||
download_bundled_external("breakpad/" ${BREAKPAD_VER} BREAKPAD_PREFIX)
|
download_bundled_external("breakpad/" ${BREAKPAD_VER} BREAKPAD_PREFIX)
|
||||||
|
|
||||||
|
@ -620,7 +628,7 @@ if (NOT CLANG_FORMAT)
|
||||||
message(STATUS "Clang format not found! Downloading...")
|
message(STATUS "Clang format not found! Downloading...")
|
||||||
set(CLANG_FORMAT "${PROJECT_BINARY_DIR}/externals/clang-format${CLANG_FORMAT_POSTFIX}.exe")
|
set(CLANG_FORMAT "${PROJECT_BINARY_DIR}/externals/clang-format${CLANG_FORMAT_POSTFIX}.exe")
|
||||||
file(DOWNLOAD
|
file(DOWNLOAD
|
||||||
https://github.com/yuzu-emu/ext-windows-bin/raw/master/clang-format${CLANG_FORMAT_POSTFIX}.exe
|
https://gitlab.com/suyu-emu/ext-windows-bin/raw/master/clang-format${CLANG_FORMAT_POSTFIX}.exe
|
||||||
"${CLANG_FORMAT}" SHOW_PROGRESS
|
"${CLANG_FORMAT}" SHOW_PROGRESS
|
||||||
STATUS DOWNLOAD_SUCCESS)
|
STATUS DOWNLOAD_SUCCESS)
|
||||||
if (NOT DOWNLOAD_SUCCESS EQUAL 0)
|
if (NOT DOWNLOAD_SUCCESS EQUAL 0)
|
||||||
|
@ -685,7 +693,7 @@ if (MSVC AND CMAKE_GENERATOR STREQUAL "Ninja")
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (YUZU_USE_FASTER_LD AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
if (SUYU_USE_FASTER_LD AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||||
# We will assume that if the compiler is GCC, it will attempt to use ld.bfd by default.
|
# We will assume that if the compiler is GCC, it will attempt to use ld.bfd by default.
|
||||||
# Try to pick a faster linker.
|
# Try to pick a faster linker.
|
||||||
find_program(LLD lld)
|
find_program(LLD lld)
|
||||||
|
@ -703,11 +711,11 @@ endif()
|
||||||
add_subdirectory(externals)
|
add_subdirectory(externals)
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
|
|
||||||
# Set yuzu project or yuzu-cmd project as default StartUp Project in Visual Studio depending on whether QT is enabled or not
|
# Set suyu project or suyu-cmd project as default StartUp Project in Visual Studio depending on whether QT is enabled or not
|
||||||
if(ENABLE_QT)
|
if(ENABLE_QT)
|
||||||
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT yuzu)
|
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT suyu)
|
||||||
else()
|
else()
|
||||||
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT yuzu-cmd)
|
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT suyu-cmd)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
@ -720,13 +728,27 @@ endif()
|
||||||
# https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html
|
# https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html
|
||||||
# https://www.freedesktop.org/software/appstream/docs/
|
# https://www.freedesktop.org/software/appstream/docs/
|
||||||
if(ENABLE_QT AND UNIX AND NOT APPLE)
|
if(ENABLE_QT AND UNIX AND NOT APPLE)
|
||||||
install(FILES "dist/org.yuzu_emu.yuzu.desktop"
|
install(FILES "dist/org.suyu_emu.suyu.desktop"
|
||||||
DESTINATION "share/applications")
|
DESTINATION "share/applications")
|
||||||
install(FILES "dist/yuzu.svg"
|
install(FILES "dist/suyu.svg"
|
||||||
DESTINATION "share/icons/hicolor/scalable/apps"
|
DESTINATION "share/icons/hicolor/scalable/apps"
|
||||||
RENAME "org.yuzu_emu.yuzu.svg")
|
RENAME "org.suyu_emu.suyu.svg")
|
||||||
install(FILES "dist/org.yuzu_emu.yuzu.xml"
|
install(FILES "dist/org.suyu_emu.suyu.xml"
|
||||||
DESTINATION "share/mime/packages")
|
DESTINATION "share/mime/packages")
|
||||||
install(FILES "dist/org.yuzu_emu.yuzu.metainfo.xml"
|
install(FILES "dist/org.suyu_emu.suyu.metainfo.xml"
|
||||||
DESTINATION "share/metainfo")
|
DESTINATION "share/metainfo")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Enable CCACHE. Linux only for now.
|
||||||
|
if (USE_CCACHE)
|
||||||
|
find_program(CCACHE_PROGRAM ccache)
|
||||||
|
if(CCACHE_PROGRAM)
|
||||||
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
|
||||||
|
if (SUYU_USE_PRECOMPILED_HEADERS)
|
||||||
|
message(NOTICE "To make use of CCache, set SUYU_USE_PRECOMPILED_HEADERS to OFF or else, it will barely be functional")
|
||||||
|
endif()
|
||||||
|
message(STATUS "CCache found.")
|
||||||
|
else()
|
||||||
|
message(STATUS "CCache has not been found and it will not be used. Install CCache or set USE_CCACHE to OFF")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
# SPDX-FileCopyrightText: 2020 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2020 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
function(copy_yuzu_FFmpeg_deps target_dir)
|
function(copy_suyu_FFmpeg_deps target_dir)
|
||||||
include(WindowsCopyFiles)
|
include(WindowsCopyFiles)
|
||||||
set(DLL_DEST "$<TARGET_FILE_DIR:${target_dir}>/")
|
set(DLL_DEST "$<TARGET_FILE_DIR:${target_dir}>/")
|
||||||
file(READ "${FFmpeg_PATH}/requirements.txt" FFmpeg_REQUIRED_DLLS)
|
file(READ "${FFmpeg_PATH}/requirements.txt" FFmpeg_REQUIRED_DLLS)
|
||||||
string(STRIP "${FFmpeg_REQUIRED_DLLS}" FFmpeg_REQUIRED_DLLS)
|
string(STRIP "${FFmpeg_REQUIRED_DLLS}" FFmpeg_REQUIRED_DLLS)
|
||||||
windows_copy_files(${target_dir} ${FFmpeg_LIBRARY_DIR} ${DLL_DEST} ${FFmpeg_REQUIRED_DLLS})
|
windows_copy_files(${target_dir} ${FFmpeg_LIBRARY_DIR} ${DLL_DEST} ${FFmpeg_REQUIRED_DLLS})
|
||||||
endfunction(copy_yuzu_FFmpeg_deps)
|
endfunction(copy_suyu_FFmpeg_deps)
|
|
@ -1,23 +1,27 @@
|
||||||
# SPDX-FileCopyrightText: 2016 Citra Emulator Project
|
# SPDX-FileCopyrightText: 2016 Citra Emulator Project & 2024 suyu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
function(copy_yuzu_Qt5_deps target_dir)
|
function(copy_suyu_Qt5_deps target_dir)
|
||||||
include(WindowsCopyFiles)
|
include(WindowsCopyFiles)
|
||||||
|
set(Qt5_BASE_PATH "${Qt5_DIR}/../../..")
|
||||||
|
if (NOT EXISTS "${Qt5_BASE_PATH}/bin")
|
||||||
|
set(Qt5_BASE_PATH "${Qt5_DIR}/../../qt5")
|
||||||
|
endif()
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
set(DLL_DEST "$<TARGET_FILE_DIR:${target_dir}>/")
|
set(DLL_DEST "$<TARGET_FILE_DIR:${target_dir}>/")
|
||||||
set(Qt5_DLL_DIR "${Qt5_DIR}/../../../bin")
|
set(Qt5_DLL_DIR "${Qt5_BASE_PATH}/bin")
|
||||||
else()
|
else()
|
||||||
set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/")
|
set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/")
|
||||||
set(Qt5_DLL_DIR "${Qt5_DIR}/../../../lib/")
|
set(Qt5_DLL_DIR "${Qt5_BASE_PATH}/lib/")
|
||||||
endif()
|
endif()
|
||||||
set(Qt5_PLATFORMS_DIR "${Qt5_DIR}/../../../plugins/platforms/")
|
set(Qt5_PLATFORMS_DIR "${Qt5_BASE_PATH}/plugins/platforms/")
|
||||||
set(Qt5_PLATFORMTHEMES_DIR "${Qt5_DIR}/../../../plugins/platformthemes/")
|
set(Qt5_PLATFORMTHEMES_DIR "${Qt5_BASE_PATH}/plugins/platformthemes/")
|
||||||
set(Qt5_PLATFORMINPUTCONTEXTS_DIR "${Qt5_DIR}/../../../plugins/platforminputcontexts/")
|
set(Qt5_PLATFORMINPUTCONTEXTS_DIR "${Qt5_BASE_PATH}/plugins/platforminputcontexts/")
|
||||||
set(Qt5_MEDIASERVICE_DIR "${Qt5_DIR}/../../../plugins/mediaservice/")
|
set(Qt5_MEDIASERVICE_DIR "${Qt5_BASE_PATH}/plugins/mediaservice/")
|
||||||
set(Qt5_XCBGLINTEGRATIONS_DIR "${Qt5_DIR}/../../../plugins/xcbglintegrations/")
|
set(Qt5_XCBGLINTEGRATIONS_DIR "${Qt5_BASE_PATH}/plugins/xcbglintegrations/")
|
||||||
set(Qt5_STYLES_DIR "${Qt5_DIR}/../../../plugins/styles/")
|
set(Qt5_STYLES_DIR "${Qt5_BASE_PATH}/plugins/styles/")
|
||||||
set(Qt5_IMAGEFORMATS_DIR "${Qt5_DIR}/../../../plugins/imageformats/")
|
set(Qt5_IMAGEFORMATS_DIR "${Qt5_BASE_PATH}/plugins/imageformats/")
|
||||||
set(Qt5_RESOURCES_DIR "${Qt5_DIR}/../../../resources/")
|
set(Qt5_RESOURCES_DIR "${Qt5_BASE_PATH}/resources/")
|
||||||
set(PLATFORMS ${DLL_DEST}plugins/platforms/)
|
set(PLATFORMS ${DLL_DEST}plugins/platforms/)
|
||||||
set(MEDIASERVICE ${DLL_DEST}mediaservice/)
|
set(MEDIASERVICE ${DLL_DEST}mediaservice/)
|
||||||
set(STYLES ${DLL_DEST}plugins/styles/)
|
set(STYLES ${DLL_DEST}plugins/styles/)
|
||||||
|
@ -29,12 +33,12 @@ function(copy_yuzu_Qt5_deps target_dir)
|
||||||
Qt5Widgets$<$<CONFIG:Debug>:d>.*
|
Qt5Widgets$<$<CONFIG:Debug>:d>.*
|
||||||
Qt5Network$<$<CONFIG:Debug>:d>.*
|
Qt5Network$<$<CONFIG:Debug>:d>.*
|
||||||
)
|
)
|
||||||
if (YUZU_USE_QT_MULTIMEDIA)
|
if (SUYU_USE_QT_MULTIMEDIA)
|
||||||
windows_copy_files(${target_dir} ${Qt5_DLL_DIR} ${DLL_DEST}
|
windows_copy_files(${target_dir} ${Qt5_DLL_DIR} ${DLL_DEST}
|
||||||
Qt5Multimedia$<$<CONFIG:Debug>:d>.*
|
Qt5Multimedia$<$<CONFIG:Debug>:d>.*
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
if (YUZU_USE_QT_WEB_ENGINE)
|
if (SUYU_USE_QT_WEB_ENGINE)
|
||||||
windows_copy_files(${target_dir} ${Qt5_DLL_DIR} ${DLL_DEST}
|
windows_copy_files(${target_dir} ${Qt5_DLL_DIR} ${DLL_DEST}
|
||||||
Qt5Network$<$<CONFIG:Debug>:d>.*
|
Qt5Network$<$<CONFIG:Debug>:d>.*
|
||||||
Qt5Positioning$<$<CONFIG:Debug>:d>.*
|
Qt5Positioning$<$<CONFIG:Debug>:d>.*
|
||||||
|
@ -57,13 +61,13 @@ function(copy_yuzu_Qt5_deps target_dir)
|
||||||
qtwebengine_resources_200p.pak
|
qtwebengine_resources_200p.pak
|
||||||
)
|
)
|
||||||
endif ()
|
endif ()
|
||||||
windows_copy_files(yuzu ${Qt5_PLATFORMS_DIR} ${PLATFORMS} qwindows$<$<CONFIG:Debug>:d>.*)
|
windows_copy_files(suyu ${Qt5_PLATFORMS_DIR} ${PLATFORMS} qwindows$<$<CONFIG:Debug>:d>.*)
|
||||||
windows_copy_files(yuzu ${Qt5_STYLES_DIR} ${STYLES} qwindowsvistastyle$<$<CONFIG:Debug>:d>.*)
|
windows_copy_files(suyu ${Qt5_STYLES_DIR} ${STYLES} qwindowsvistastyle$<$<CONFIG:Debug>:d>.*)
|
||||||
windows_copy_files(yuzu ${Qt5_IMAGEFORMATS_DIR} ${IMAGEFORMATS}
|
windows_copy_files(suyu ${Qt5_IMAGEFORMATS_DIR} ${IMAGEFORMATS}
|
||||||
qjpeg$<$<CONFIG:Debug>:d>.*
|
qjpeg$<$<CONFIG:Debug>:d>.*
|
||||||
qgif$<$<CONFIG:Debug>:d>.*
|
qgif$<$<CONFIG:Debug>:d>.*
|
||||||
)
|
)
|
||||||
windows_copy_files(yuzu ${Qt5_MEDIASERVICE_DIR} ${MEDIASERVICE}
|
windows_copy_files(suyu ${Qt5_MEDIASERVICE_DIR} ${MEDIASERVICE}
|
||||||
dsengine$<$<CONFIG:Debug>:d>.*
|
dsengine$<$<CONFIG:Debug>:d>.*
|
||||||
wmfengine$<$<CONFIG:Debug>:d>.*
|
wmfengine$<$<CONFIG:Debug>:d>.*
|
||||||
)
|
)
|
||||||
|
@ -119,7 +123,7 @@ function(copy_yuzu_Qt5_deps target_dir)
|
||||||
endif()
|
endif()
|
||||||
# Create an empty qt.conf file. Qt will detect that this file exists, and use the folder that its in as the root folder.
|
# Create an empty qt.conf file. Qt will detect that this file exists, and use the folder that its in as the root folder.
|
||||||
# This way it'll look for plugins in the root/plugins/ folder
|
# This way it'll look for plugins in the root/plugins/ folder
|
||||||
add_custom_command(TARGET yuzu POST_BUILD
|
add_custom_command(TARGET suyu POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E touch ${DLL_DEST}qt.conf
|
COMMAND ${CMAKE_COMMAND} -E touch ${DLL_DEST}qt.conf
|
||||||
)
|
)
|
||||||
endfunction(copy_yuzu_Qt5_deps)
|
endfunction(copy_suyu_Qt5_deps)
|
|
@ -1,8 +1,8 @@
|
||||||
# SPDX-FileCopyrightText: 2016 Citra Emulator Project
|
# SPDX-FileCopyrightText: 2016 Citra Emulator Project & 2024 suyu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
function(copy_yuzu_SDL_deps target_dir)
|
function(copy_suyu_SDL_deps target_dir)
|
||||||
include(WindowsCopyFiles)
|
include(WindowsCopyFiles)
|
||||||
set(DLL_DEST "$<TARGET_FILE_DIR:${target_dir}>/")
|
set(DLL_DEST "$<TARGET_FILE_DIR:${target_dir}>/")
|
||||||
windows_copy_files(${target_dir} ${SDL2_DLL_DIR} ${DLL_DEST} SDL2.dll)
|
windows_copy_files(${target_dir} ${SDL2_DLL_DIR} ${DLL_DEST} SDL2.dll)
|
||||||
endfunction(copy_yuzu_SDL_deps)
|
endfunction(copy_suyu_SDL_deps)
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: 2017 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2017 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# This function downloads a binary library package from our external repo.
|
# This function downloads a binary library package from our external repo.
|
||||||
|
@ -7,17 +7,21 @@
|
||||||
# prefix_var: name of a variable which will be set with the path to the extracted contents
|
# prefix_var: name of a variable which will be set with the path to the extracted contents
|
||||||
function(download_bundled_external remote_path lib_name prefix_var)
|
function(download_bundled_external remote_path lib_name prefix_var)
|
||||||
|
|
||||||
set(package_base_url "https://github.com/yuzu-emu/")
|
set(package_base_url "https://gitlab.com/suyu-emu/")
|
||||||
set(package_repo "no_platform")
|
set(package_repo "no_platform")
|
||||||
set(package_extension "no_platform")
|
set(package_extension "no_platform")
|
||||||
|
set(package_head "?ref_type=heads")
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
set(package_repo "ext-windows-bin/raw/master/")
|
set(package_repo "ext-windows-bin/-/raw/master/")
|
||||||
set(package_extension ".7z")
|
set(package_extension ".7z")
|
||||||
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
||||||
set(package_repo "ext-linux-bin/raw/main/")
|
set(package_repo "ext-linux-bin/-/raw/main/")
|
||||||
set(package_extension ".tar.xz")
|
set(package_extension ".tar.xz")
|
||||||
|
# elseif (APPLE)
|
||||||
|
# set(package_repo "ext-osx-bin/-/raw/main/")
|
||||||
|
# set(package_extension ".dmg")
|
||||||
elseif (ANDROID)
|
elseif (ANDROID)
|
||||||
set(package_repo "ext-android-bin/raw/main/")
|
set(package_repo "ext-android-bin/-/raw/main/")
|
||||||
set(package_extension ".tar.xz")
|
set(package_extension ".tar.xz")
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "No package available for this platform")
|
message(FATAL_ERROR "No package available for this platform")
|
||||||
|
@ -28,7 +32,7 @@ set(prefix "${CMAKE_BINARY_DIR}/externals/${lib_name}")
|
||||||
if (NOT EXISTS "${prefix}")
|
if (NOT EXISTS "${prefix}")
|
||||||
message(STATUS "Downloading binaries for ${lib_name}...")
|
message(STATUS "Downloading binaries for ${lib_name}...")
|
||||||
file(DOWNLOAD
|
file(DOWNLOAD
|
||||||
${package_url}${remote_path}${lib_name}${package_extension}
|
${package_url}${remote_path}${lib_name}${package_extension}${package_head}
|
||||||
"${CMAKE_BINARY_DIR}/externals/${lib_name}${package_extension}" SHOW_PROGRESS)
|
"${CMAKE_BINARY_DIR}/externals/${lib_name}${package_extension}" SHOW_PROGRESS)
|
||||||
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf "${CMAKE_BINARY_DIR}/externals/${lib_name}${package_extension}"
|
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf "${CMAKE_BINARY_DIR}/externals/${lib_name}${package_extension}"
|
||||||
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/externals")
|
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/externals")
|
||||||
|
|
|
@ -19,7 +19,7 @@ if (LLVM_FOUND AND LLVM_Demangle_FOUND AND NOT TARGET LLVM::Demangle)
|
||||||
target_include_directories(LLVM::Demangle INTERFACE ${LLVM_INCLUDE_DIRS})
|
target_include_directories(LLVM::Demangle INTERFACE ${LLVM_INCLUDE_DIRS})
|
||||||
# prefer shared LLVM: https://github.com/llvm/llvm-project/issues/34593
|
# prefer shared LLVM: https://github.com/llvm/llvm-project/issues/34593
|
||||||
# but use ugly hack because llvm_config doesn't support interface library
|
# but use ugly hack because llvm_config doesn't support interface library
|
||||||
add_library(_dummy_lib SHARED EXCLUDE_FROM_ALL src/yuzu/main.cpp)
|
add_library(_dummy_lib SHARED EXCLUDE_FROM_ALL src/suyu/main.cpp)
|
||||||
llvm_config(_dummy_lib USE_SHARED demangle)
|
llvm_config(_dummy_lib USE_SHARED demangle)
|
||||||
get_target_property(LLVM_LIBRARIES _dummy_lib LINK_LIBRARIES)
|
get_target_property(LLVM_LIBRARIES _dummy_lib LINK_LIBRARIES)
|
||||||
target_link_libraries(LLVM::Demangle INTERFACE ${LLVM_LIBRARIES})
|
target_link_libraries(LLVM::Demangle INTERFACE ${LLVM_LIBRARIES})
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Gets a UTC timestamp and sets the provided variable to it
|
# Gets a UTC timestamp and sets the provided variable to it
|
||||||
|
@ -27,7 +27,7 @@ set(BUILD_VERSION "0")
|
||||||
set(BUILD_ID ${DISPLAY_VERSION})
|
set(BUILD_ID ${DISPLAY_VERSION})
|
||||||
if (BUILD_REPOSITORY)
|
if (BUILD_REPOSITORY)
|
||||||
# regex capture the string nightly or canary into CMAKE_MATCH_1
|
# regex capture the string nightly or canary into CMAKE_MATCH_1
|
||||||
string(REGEX MATCH "yuzu-emu/yuzu-?(.*)" OUTVAR ${BUILD_REPOSITORY})
|
string(REGEX MATCH "suyu-emu/suyu-?(.*)" OUTVAR ${BUILD_REPOSITORY})
|
||||||
if ("${CMAKE_MATCH_COUNT}" GREATER 0)
|
if ("${CMAKE_MATCH_COUNT}" GREATER 0)
|
||||||
# capitalize the first letter of each word in the repo name.
|
# capitalize the first letter of each word in the repo name.
|
||||||
string(REPLACE "-" ";" REPO_NAME_LIST ${CMAKE_MATCH_1})
|
string(REPLACE "-" ";" REPO_NAME_LIST ${CMAKE_MATCH_1})
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
SPDX-FileCopyrightText: 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
SPDX-License-Identifier: GPL-2.0-or-later
|
SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
-->
|
-->
|
||||||
|
|
||||||
**The Contributor's Guide has moved to [the yuzu wiki](https://gitlab.com/suyu2/suyu/-/wikis/Contributing).**
|
Please check out the
|
||||||
|
|
||||||
|
* [Contributors's guide](https://gitlab.com/suyu-emu/suyu/-/wikis/Contributing).
|
||||||
|
* [Merge request guidelines](https://gitlab.com/suyu-emu/suyu/-/wikis/Merge-requests)
|
||||||
|
|
2
Doxyfile
2
Doxyfile
|
@ -35,7 +35,7 @@ DOXYFILE_ENCODING = UTF-8
|
||||||
# title of most generated pages and in a few other places.
|
# title of most generated pages and in a few other places.
|
||||||
# The default value is: My Project.
|
# The default value is: My Project.
|
||||||
|
|
||||||
PROJECT_NAME = yuzu
|
PROJECT_NAME = suyu
|
||||||
|
|
||||||
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
|
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
|
||||||
# could be handy for archiving the generated documentation or if some version
|
# could be handy for archiving the generated documentation or if some version
|
||||||
|
|
71
README.md
71
README.md
|
@ -3,88 +3,71 @@ SPDX-FileCopyrightText: 2024 suyu emulator project
|
||||||
SPDX-License-Identifier: GPL v3
|
SPDX-License-Identifier: GPL v3
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<h4>This project DOES NOT support piracy, you are required to source your own games and keys, we make no money off this project (mainly so that Nintendo won't sue us lol)</h4>
|
**Note**: We do not support or condone piracy in any form. In order to use suyu, you'll need keys from your real Switch system, and games which you have legally obtained and paid for. We do not intend to make money or profit from this project.
|
||||||
|
|
||||||
|
We're in need of developers. Please join our Discord server below if you want to contribute!
|
||||||
|
This repo is based on Yuzu EA 4176.
|
||||||
|
|
||||||
We are in great need of developers, join our discord server at <a href="https://discord.gg/2gQRBp44KT">https://discord.gg/2gQRBp44KT</a>
|
<hr />
|
||||||
|
|
||||||
This repo is created based on yuzu EA 4176. Please contribute
|
<h1 align="center">
|
||||||
|
|
||||||
<h1 style="text-align:center;">
|
|
||||||
<br>
|
<br>
|
||||||
<a href=""><img src="https://cdn.discordapp.com/attachments/1214441121099419718/1214452770334056488/Suyu-Logo_V2.png?ex=65f92a47&is=65e6b547&hm=a1f174d70a5c106fec6a998c603e1158d8f3011a6c9ff91415b7c02afe9c0262&" alt="suyu" width="200"></a>
|
<a href="https://suyu.dev"><img src="dist/readme/suyu__Logo-Pill.svg" alt="suyu" height="128"></a>
|
||||||
<br>
|
<br>
|
||||||
<b>suyu</b>
|
<b>suyu</b>
|
||||||
<br>
|
<br>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<h4 align="center"><b>suyu</b>, pronounced "sue-you" is the afterlife the world's most popular, open-source, Nintendo Switch emulator — started by the creators of <a href="https://citra-emu.org" target="_blank">Citra</a>.
|
<h4 align="center"><b>suyu</b> is the continuation of the world's most popular, open-source, Nintendo Switch emulator, yuzu.
|
||||||
<br>
|
<br>
|
||||||
It is written in C++ with portability in mind, and we actively maintain builds for Windows, Linux and Android.
|
It is written in C++ with portability in mind, and we're actively working on builds for Windows, Linux and Android.
|
||||||
</h4>
|
</h4>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://dev.azure.com/suyu-emu/suyu/">
|
<a href="https://discord.gg/suyu">Discord</a> |
|
||||||
<img src="https://dev.azure.com/suyu-emu/suyu/_apis/build/status/suyu%20mainline?branchName=master"
|
<a href="#status">Status</a> |
|
||||||
alt="Azure Mainline CI Build Status">
|
|
||||||
</a>
|
|
||||||
<a href="https://discord.com/invite/u77vRWY">
|
|
||||||
<img src="https://img.shields.io/discord/398318088170242053?color=5865F2&label=suyu&logo=discord&logoColor=white"
|
|
||||||
alt="Discord">
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<a href="#compatibility">Compatibility</a> |
|
|
||||||
<a href="#development">Development</a> |
|
<a href="#development">Development</a> |
|
||||||
<a href="#building">Building</a> |
|
|
||||||
<a href="#downloads">Downloads</a> |
|
<a href="#downloads">Downloads</a> |
|
||||||
|
<a href="#building">Building</a> |
|
||||||
<a href="#support">Support</a> |
|
<a href="#support">Support</a> |
|
||||||
<a href="#license">License</a>
|
<a href="#license">License</a> |
|
||||||
|
<a href="https://gitlab.com/suyu-emu/suyu/-/pipelines">Pipelines</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
## Status
|
## Status
|
||||||
|
|
||||||
We are trying to get the builds working. We are in need of developers. Join our discord to contribute.
|
Although we're able to make builds, we don't have a version ready for distribution yet. But we can always use more help! You can make a merge request if you'd like to see something changed, or you can [chat with other developers to find out what needs work](https://discord.gg/suyu).
|
||||||
|
|
||||||
## Compatibility
|
**Note**: We try to update this README whenever we can, but some links might be broken, and some information may be outdated or irrelevant.
|
||||||
|
|
||||||
W.I.P.
|
|
||||||
|
|
||||||
The emulator is capable of running most commercial games at full speed, provided you meet the [necessary hardware requirements](https://suyu-emu.org/help/quickstart/#hardware-requirements).
|
|
||||||
|
|
||||||
For a full list of games suyu supports, please visit our [Compatibility page](https://suyu-emu.org/game/).
|
|
||||||
|
|
||||||
Check out our [website](https://suyu-emu.org/) for the latest news on exciting features, monthly progress reports, and more!
|
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
W.I.P.
|
This project is completely free and open source, and anyone can contribute to help improve suyu.
|
||||||
|
|
||||||
This project is completely free and open source, this project is made possible by many people who share the same interest.
|
Most of the development happens on GitLab. For development discussion, please join us on [Discord](https://discord.gg/suyu).
|
||||||
|
|
||||||
Most of the development happens on GitHub. For development discussion, please join us on [Discord](https://discord.gg/2gQRBp44KT).
|
|
||||||
|
|
||||||
If you want to contribute, please take a look at the [Contributor's Guide](https://gitlab.com/suyu-emu/suyu/-/wikis/Contributing) and [Developer Information](https://gitlab.com/suyu-emu/suyu/-/wikis/Developer-Information).
|
If you want to contribute, please take a look at the [Contributor's Guide](https://gitlab.com/suyu-emu/suyu/-/wikis/Contributing) and [Developer Information](https://gitlab.com/suyu-emu/suyu/-/wikis/Developer-Information).
|
||||||
You can also contact any of the developers on Discord in order to know about the current state of the emulator.
|
You can also contact any of the developers on Discord to learn more about the current state of suyu.
|
||||||
|
|
||||||
If you want to contribute to the user interface translation project, please check out the [suyu project on transifex](https://www.transifex.com/suyu-emulator/suyu). We centralize translation work there, and periodically upstream translations.
|
|
||||||
|
|
||||||
## Downloads
|
## Downloads
|
||||||
|
|
||||||
* __Windows__: [Legacy Artifacts](https://github.com/pineappleea/pineapple-src/releases)
|
* __Windows__: [Releases](https://gitlab.com/suyu-emu/suyu/-/releases)
|
||||||
* __Linux__: [Legacy Artifacts](https://github.com/pineappleea/pineapple-src/releases)
|
* __Linux__: [Releases](https://gitlab.com/suyu-emu/suyu/-/releases)
|
||||||
|
* __macOS__: [Releases](https://gitlab.com/suyu-emu/suyu/-/releases)
|
||||||
|
* __Android__: [Releases](https://gitlab.com/suyu-emu/suyu/-/releases)
|
||||||
|
|
||||||
|
We have official builds [here.](https://gitlab.com/suyu-emu/suyu/-/releases) If any website or person is claiming to have a build for suyu, take that with a grain of salt.
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
* __Windows__: W.I.P.
|
* __Windows__: [Wiki page](https://gitlab.com/suyu-emu/suyu/-/wikis/Building-for-Windows)
|
||||||
* __Linux__: W.I.P.
|
* __Linux__: [Wiki page](https://gitlab.com/suyu-emu/suyu/-/wikis/Building-for-Linux)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Support
|
## Support
|
||||||
|
|
||||||
This project is completely free and open source, this project is made possible by many people who share the same interest. Please join the discord server to contribute.
|
If you have any questions, don't hesitate to ask us on [Discord](https://discord.gg/suyu). We don't bite!
|
||||||
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Allow systemd-logind to manage user access to hidraw with this file
|
# Allow systemd-logind to manage user access to hidraw with this file
|
||||||
# On most systems, this file should be installed to /etc/udev/rules.d/72-yuzu-input.rules
|
# On most systems, this file should be installed to /etc/udev/rules.d/72-suyu-input.rules
|
||||||
# Consult your distro if this is not the case
|
# Consult your distro if this is not the case
|
||||||
|
|
||||||
# Switch Pro Controller (USB/Bluetooth)
|
# Switch Pro Controller (USB/Bluetooth)
|
2
dist/english_plurals/README.md
vendored
2
dist/english_plurals/README.md
vendored
|
@ -10,7 +10,7 @@ Qt has "Translation Rules for Plurals", small example
|
||||||
// i = 2:
|
// i = 2:
|
||||||
Building: 2 shaders
|
Building: 2 shaders
|
||||||
|
|
||||||
For yuzu the source language used is English, for all other languages handling of plurals is handled by Qt and the translation collaboration site. Handling plurals in the source language (English) requires special consideration.
|
For suyu the source language used is English, for all other languages handling of plurals is handled by Qt and the translation collaboration site. Handling plurals in the source language (English) requires special consideration.
|
||||||
|
|
||||||
With CMake flag GENERATE_QT_TRANSLATION a generated_en.ts file is created from the source. It ignored by git (`.gitignore` in the project root). It is placed in this directory so that the relative refrences with the source code is correct.
|
With CMake flag GENERATE_QT_TRANSLATION a generated_en.ts file is created from the source. It ignored by git (`.gitignore` in the project root). It is placed in this directory so that the relative refrences with the source code is correct.
|
||||||
|
|
||||||
|
|
12
dist/english_plurals/en.ts
vendored
12
dist/english_plurals/en.ts
vendored
|
@ -4,7 +4,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>GMainWindow</name>
|
<name>GMainWindow</name>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<location filename="../../src/yuzu/main.cpp" line="2322"/>
|
<location filename="../../src/suyu/main.cpp" line="2322"/>
|
||||||
<source>%n file(s) remaining</source>
|
<source>%n file(s) remaining</source>
|
||||||
<translation>
|
<translation>
|
||||||
<numerusform>%n file remaining</numerusform>
|
<numerusform>%n file remaining</numerusform>
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<location filename="../../src/yuzu/main.cpp" line="2377"/>
|
<location filename="../../src/suyu/main.cpp" line="2377"/>
|
||||||
<source>%n file(s) were newly installed
|
<source>%n file(s) were newly installed
|
||||||
</source>
|
</source>
|
||||||
<translation>
|
<translation>
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<location filename="../../src/yuzu/main.cpp" line="2380"/>
|
<location filename="../../src/suyu/main.cpp" line="2380"/>
|
||||||
<source>%n file(s) were overwritten
|
<source>%n file(s) were overwritten
|
||||||
</source>
|
</source>
|
||||||
<translation>
|
<translation>
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<location filename="../../src/yuzu/main.cpp" line="2382"/>
|
<location filename="../../src/suyu/main.cpp" line="2382"/>
|
||||||
<source>%n file(s) failed to install
|
<source>%n file(s) failed to install
|
||||||
</source>
|
</source>
|
||||||
<translation>
|
<translation>
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<location filename="../../src/yuzu/main.cpp" line="3264"/>
|
<location filename="../../src/suyu/main.cpp" line="3264"/>
|
||||||
<source>Building: %n shader(s)</source>
|
<source>Building: %n shader(s)</source>
|
||||||
<translation>
|
<translation>
|
||||||
<numerusform>Building: %n shader</numerusform>
|
<numerusform>Building: %n shader</numerusform>
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>GameListSearchField</name>
|
<name>GameListSearchField</name>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<location filename="../../src/yuzu/game_list.cpp" line="87"/>
|
<location filename="../../src/suyu/game_list.cpp" line="87"/>
|
||||||
<source>%1 of %n result(s)</source>
|
<source>%1 of %n result(s)</source>
|
||||||
<translation>
|
<translation>
|
||||||
<numerusform>%1 of %n result</numerusform>
|
<numerusform>%1 of %n result</numerusform>
|
||||||
|
|
72
dist/icns_generator.sh
vendored
Executable file
72
dist/icns_generator.sh
vendored
Executable file
|
@ -0,0 +1,72 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# icns_generator.sh GNU GPLv3 License
|
||||||
|
# Run this script when a new logo is made and the svg file inside.
|
||||||
|
# You should install Imagemagick to make the conversions: $brew install imagemagick
|
||||||
|
|
||||||
|
# Change working dir to where this script is located.
|
||||||
|
cd "${0%/*}"
|
||||||
|
|
||||||
|
if [ -z $1 ]; then
|
||||||
|
echo "icns_generator.sh GNU GPLv3 License"
|
||||||
|
echo "Run this script when a new logo is made and the svg file inside."
|
||||||
|
echo ""
|
||||||
|
echo "Syntax: ./icns_generator <input.svg>"
|
||||||
|
echo ""
|
||||||
|
echo "Don't forget to install imagemagick: "
|
||||||
|
echo "$ brew install imagemagick"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Error Handling Stuff:
|
||||||
|
## Check command availability
|
||||||
|
check_command() {
|
||||||
|
if ! command -v "$1" &> /dev/null; then
|
||||||
|
read -s -n 1 -p "Error: '$1' command not found. Please install $2."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Convert image with error handling
|
||||||
|
convert_image() {
|
||||||
|
convert -background none -resize "$2" "$1" "$3" || {
|
||||||
|
read -s -n 1 -p "Error: Conversion failed for $1"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check required commands
|
||||||
|
check_command "convert" "ImageMagick"
|
||||||
|
check_command "iconutil" "macOS"
|
||||||
|
|
||||||
|
# Create the iconset directory
|
||||||
|
mkdir suyu.iconset || {
|
||||||
|
read -s -n 1 -p "Error: Unable to create suyu.iconset directory."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Convert images
|
||||||
|
convert_image "$1" 16x16 suyu.iconset/icon_16x16.png
|
||||||
|
convert_image "$1" 32x32 suyu.iconset/icon_16x16@2x.png
|
||||||
|
convert_image "$1" 32x32 suyu.iconset/icon_32x32.png
|
||||||
|
convert_image "$1" 64x64 suyu.iconset/icon_32x32@2x.png
|
||||||
|
convert_image "$1" 128x128 suyu.iconset/icon_128x128.png
|
||||||
|
convert_image "$1" 256x256 suyu.iconset/icon_256x256.png
|
||||||
|
convert_image "$1" 256x256 suyu.iconset/icon_128x128@2x.png
|
||||||
|
convert_image "$1" 512x512 suyu.iconset/icon_256x256@2x.png
|
||||||
|
convert_image "$1" 512x512 suyu.iconset/icon_512x512.png
|
||||||
|
convert_image "$1" 1024x1024 suyu.iconset/icon_512x512@2x.png
|
||||||
|
|
||||||
|
# Create the ICNS file
|
||||||
|
iconutil -c icns suyu.iconset || {
|
||||||
|
read -s -n 1 -p "Error: Failed to create ICNS file."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Remove the temporary iconset directory
|
||||||
|
rm -rf suyu.iconset || {
|
||||||
|
read -s -n 1 -p "Error: Unable to remove suyu.iconset directory."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
echo -s -n 1 -p "Icon generation completed successfully."
|
||||||
|
echo ""
|
4
dist/languages/.tx/config
vendored
4
dist/languages/.tx/config
vendored
|
@ -1,13 +1,13 @@
|
||||||
[main]
|
[main]
|
||||||
host = https://www.transifex.com
|
host = https://www.transifex.com
|
||||||
|
|
||||||
[o:yuzu-emulator:p:yuzu:r:emulator]
|
[o:suyu-emulator:p:suyu:r:emulator]
|
||||||
file_filter = <lang>.ts
|
file_filter = <lang>.ts
|
||||||
source_file = en.ts
|
source_file = en.ts
|
||||||
source_lang = en
|
source_lang = en
|
||||||
type = QT
|
type = QT
|
||||||
|
|
||||||
[o:yuzu-emulator:p:yuzu:r:yuzu-android]
|
[o:suyu-emulator:p:suyu:r:suyu-android]
|
||||||
file_filter = ../../src/android/app/src/main/res/values-<lang>/strings.xml
|
file_filter = ../../src/android/app/src/main/res/values-<lang>/strings.xml
|
||||||
source_file = ../../src/android/app/src/main/res/values/strings.xml
|
source_file = ../../src/android/app/src/main/res/values/strings.xml
|
||||||
type = ANDROID
|
type = ANDROID
|
||||||
|
|
2
dist/languages/README.md
vendored
2
dist/languages/README.md
vendored
|
@ -1,3 +1,3 @@
|
||||||
This directory stores translation patches (TS files) for yuzu Qt frontend. This directory is linked with [yuzu project on transifex](https://www.transifex.com/yuzu-emulator/yuzu), so you can update the translation by executing `tx pull -t -a`. If you want to contribute to the translation, please go the transifex link and submit your translation there. This directory on the main repo will be synchronized with transifex periodically.
|
This directory stores translation patches (TS files) for suyu Qt frontend. This directory is linked with [suyu project on transifex](https://www.transifex.com/suyu-emulator/suyu), so you can update the translation by executing `tx pull -t -a`. If you want to contribute to the translation, please go the transifex link and submit your translation there. This directory on the main repo will be synchronized with transifex periodically.
|
||||||
|
|
||||||
Do not directly open PRs on github to modify the translation.
|
Do not directly open PRs on github to modify the translation.
|
||||||
|
|
4040
dist/languages/ar.ts
vendored
4040
dist/languages/ar.ts
vendored
File diff suppressed because it is too large
Load diff
4098
dist/languages/ca.ts
vendored
4098
dist/languages/ca.ts
vendored
File diff suppressed because it is too large
Load diff
4086
dist/languages/cs.ts
vendored
4086
dist/languages/cs.ts
vendored
File diff suppressed because it is too large
Load diff
4082
dist/languages/da.ts
vendored
4082
dist/languages/da.ts
vendored
File diff suppressed because it is too large
Load diff
4112
dist/languages/de.ts
vendored
4112
dist/languages/de.ts
vendored
File diff suppressed because it is too large
Load diff
4064
dist/languages/el.ts
vendored
4064
dist/languages/el.ts
vendored
File diff suppressed because it is too large
Load diff
4118
dist/languages/es.ts
vendored
4118
dist/languages/es.ts
vendored
File diff suppressed because it is too large
Load diff
2920
dist/languages/fi.ts
vendored
2920
dist/languages/fi.ts
vendored
File diff suppressed because it is too large
Load diff
4120
dist/languages/fr.ts
vendored
4120
dist/languages/fr.ts
vendored
File diff suppressed because it is too large
Load diff
4110
dist/languages/hu.ts
vendored
4110
dist/languages/hu.ts
vendored
File diff suppressed because it is too large
Load diff
4090
dist/languages/id.ts
vendored
4090
dist/languages/id.ts
vendored
File diff suppressed because it is too large
Load diff
4112
dist/languages/it.ts
vendored
4112
dist/languages/it.ts
vendored
File diff suppressed because it is too large
Load diff
4106
dist/languages/ja_JP.ts
vendored
4106
dist/languages/ja_JP.ts
vendored
File diff suppressed because it is too large
Load diff
4108
dist/languages/ko_KR.ts
vendored
4108
dist/languages/ko_KR.ts
vendored
File diff suppressed because it is too large
Load diff
4112
dist/languages/nb.ts
vendored
4112
dist/languages/nb.ts
vendored
File diff suppressed because it is too large
Load diff
4108
dist/languages/nl.ts
vendored
4108
dist/languages/nl.ts
vendored
File diff suppressed because it is too large
Load diff
4110
dist/languages/pl.ts
vendored
4110
dist/languages/pl.ts
vendored
File diff suppressed because it is too large
Load diff
4118
dist/languages/pt_BR.ts
vendored
4118
dist/languages/pt_BR.ts
vendored
File diff suppressed because it is too large
Load diff
4118
dist/languages/pt_PT.ts
vendored
4118
dist/languages/pt_PT.ts
vendored
File diff suppressed because it is too large
Load diff
4118
dist/languages/ru_RU.ts
vendored
4118
dist/languages/ru_RU.ts
vendored
File diff suppressed because it is too large
Load diff
4080
dist/languages/sv.ts
vendored
4080
dist/languages/sv.ts
vendored
File diff suppressed because it is too large
Load diff
4106
dist/languages/tr_TR.ts
vendored
4106
dist/languages/tr_TR.ts
vendored
File diff suppressed because it is too large
Load diff
4108
dist/languages/uk.ts
vendored
4108
dist/languages/uk.ts
vendored
File diff suppressed because it is too large
Load diff
4108
dist/languages/vi.ts
vendored
4108
dist/languages/vi.ts
vendored
File diff suppressed because it is too large
Load diff
4108
dist/languages/vi_VN.ts
vendored
4108
dist/languages/vi_VN.ts
vendored
File diff suppressed because it is too large
Load diff
4124
dist/languages/zh_CN.ts
vendored
4124
dist/languages/zh_CN.ts
vendored
File diff suppressed because it is too large
Load diff
4122
dist/languages/zh_TW.ts
vendored
4122
dist/languages/zh_TW.ts
vendored
File diff suppressed because it is too large
Load diff
|
@ -1,16 +1,16 @@
|
||||||
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Version=1.0
|
Version=1.0
|
||||||
Type=Application
|
Type=Application
|
||||||
Name=yuzu
|
Name=suyu
|
||||||
GenericName=Switch Emulator
|
GenericName=Switch Emulator
|
||||||
Comment=Nintendo Switch video game console emulator
|
Comment=Nintendo Switch video game console emulator
|
||||||
Icon=org.yuzu_emu.yuzu
|
Icon=org.suyu_emu.suyu
|
||||||
TryExec=yuzu
|
TryExec=suyu
|
||||||
Exec=yuzu %f
|
Exec=suyu %f
|
||||||
Categories=Game;Emulator;Qt;
|
Categories=Game;Emulator;Qt;
|
||||||
MimeType=application/x-nx-nro;application/x-nx-nso;application/x-nx-nsp;application/x-nx-xci;
|
MimeType=application/x-nx-nro;application/x-nx-nso;application/x-nx-nsp;application/x-nx-xci;
|
||||||
Keywords=Nintendo;Switch;
|
Keywords=Nintendo;Switch;
|
||||||
StartupWMClass=yuzu
|
StartupWMClass=suyu
|
|
@ -1,19 +1,19 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2021 yuzu Emulator Project
|
SPDX-FileCopyrightText: 2021 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
SPDX-License-Identifier: CC0-1.0
|
SPDX-License-Identifier: CC0-1.0
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<component type="desktop-application">
|
<component type="desktop-application">
|
||||||
<id>org.yuzu_emu.yuzu</id>
|
<id>org.suyu_emu.suyu</id>
|
||||||
<metadata_license>CC0-1.0</metadata_license>
|
<metadata_license>CC0-1.0</metadata_license>
|
||||||
<name>yuzu</name>
|
<name>suyu</name>
|
||||||
<summary>Nintendo Switch emulator</summary>
|
<summary>Nintendo Switch emulator</summary>
|
||||||
<description>
|
<description>
|
||||||
<p>yuzu is the world's most popular, open-source, Nintendo Switch emulator — started by the creators of Citra.</p>
|
<p>suyu is the world's most popular, open-source, Nintendo Switch emulator — started by the creators of Citra.</p>
|
||||||
<p>The emulator is capable of running most commercial games at full speed, provided you meet the necessary hardware requirements.</p>
|
<p>The emulator is capable of running most commercial games at full speed, provided you meet the necessary hardware requirements.</p>
|
||||||
<p>For a full list of games yuzu support, please visit our Compatibility page.</p>
|
<p>For a full list of games suyu support, please visit our Compatibility page.</p>
|
||||||
<p>Check out our website for the latest news on exciting features, monthly progress reports, and more!</p>
|
<p>Check out our website for the latest news on exciting features, monthly progress reports, and more!</p>
|
||||||
</description>
|
</description>
|
||||||
<categories>
|
<categories>
|
||||||
|
@ -24,19 +24,19 @@ SPDX-License-Identifier: CC0-1.0
|
||||||
<keyword>switch</keyword>
|
<keyword>switch</keyword>
|
||||||
<keyword>emulator</keyword>
|
<keyword>emulator</keyword>
|
||||||
</keywords>
|
</keywords>
|
||||||
<url type="homepage">https://yuzu-emu.org/</url>
|
<url type="homepage">https://suyu-emu.org/</url>
|
||||||
<url type="bugtracker">https://github.com/yuzu-emu/yuzu/issues</url>
|
<url type="bugtracker">https://gitlab.com/suyu-emu/suyu/issues</url>
|
||||||
<url type="faq">https://yuzu-emu.org/wiki/faq/</url>
|
<url type="faq">https://suyu-emu.org/wiki/faq/</url>
|
||||||
<url type="help">https://yuzu-emu.org/wiki/home/</url>
|
<url type="help">https://suyu-emu.org/wiki/home/</url>
|
||||||
<url type="donation">https://yuzu-emu.org/donate/</url>
|
<url type="donation">https://suyu-emu.org/donate/</url>
|
||||||
<url type="translate">https://www.transifex.com/projects/p/yuzu</url>
|
<url type="translate">https://www.transifex.com/projects/p/suyu</url>
|
||||||
<url type="contact">https://community.citra-emu.org/</url>
|
<url type="contact">https://community.citra-emu.org/</url>
|
||||||
<url type="vcs-browser">https://github.com/yuzu-emu/yuzu</url>
|
<url type="vcs-browser">https://gitlab.com/suyu-emu/suyu</url>
|
||||||
<url type="contribute">https://yuzu-emu.org/wiki/contributing/</url>
|
<url type="contribute">https://suyu-emu.org/wiki/contributing/</url>
|
||||||
<launchable type="desktop-id">org.yuzu_emu.yuzu.desktop</launchable>
|
<launchable type="desktop-id">org.suyu_emu.suyu.desktop</launchable>
|
||||||
<provides>
|
<provides>
|
||||||
<binary>yuzu</binary>
|
<binary>suyu</binary>
|
||||||
<binary>yuzu-cmd</binary>
|
<binary>suyu-cmd</binary>
|
||||||
</provides>
|
</provides>
|
||||||
<supports>
|
<supports>
|
||||||
<control>pointing</control>
|
<control>pointing</control>
|
||||||
|
@ -50,13 +50,13 @@ SPDX-License-Identifier: CC0-1.0
|
||||||
<memory>16384</memory>
|
<memory>16384</memory>
|
||||||
</recommends>
|
</recommends>
|
||||||
<project_license>GPL-3.0-or-later</project_license>
|
<project_license>GPL-3.0-or-later</project_license>
|
||||||
<developer_name>yuzu Emulator Team</developer_name>
|
<developer_name>suyu Emulator Team</developer_name>
|
||||||
<content_rating type="oars-1.0"/>
|
<content_rating type="oars-1.0"/>
|
||||||
<screenshots>
|
<screenshots>
|
||||||
<screenshot type="default"><image>https://raw.githubusercontent.com/yuzu-emu/yuzu-emu.github.io/master/images/screenshots/001-Super%20Mario%20Odyssey%20.png</image></screenshot>
|
<screenshot type="default"><image>https://raw.githubusercontent.com/suyu-emu/suyu-emu.github.io/master/images/screenshots/001-Super%20Mario%20Odyssey%20.png</image></screenshot>
|
||||||
<screenshot><image>https://raw.githubusercontent.com/yuzu-emu/yuzu-emu.github.io/master/images/screenshots/004-The%20Legend%20of%20Zelda%20Skyward%20Sword%20HD.png</image></screenshot>
|
<screenshot><image>https://raw.githubusercontent.com/suyu-emu/suyu-emu.github.io/master/images/screenshots/004-The%20Legend%20of%20Zelda%20Skyward%20Sword%20HD.png</image></screenshot>
|
||||||
<screenshot><image>https://raw.githubusercontent.com/yuzu-emu/yuzu-emu.github.io/master/images/screenshots/007-Pokemon%20Sword.png</image></screenshot>
|
<screenshot><image>https://raw.githubusercontent.com/suyu-emu/suyu-emu.github.io/master/images/screenshots/007-Pokemon%20Sword.png</image></screenshot>
|
||||||
<screenshot><image>https://raw.githubusercontent.com/yuzu-emu/yuzu-emu.github.io/master/images/screenshots/010-Hyrule%20Warriors%20Age%20of%20Calamity.png</image></screenshot>
|
<screenshot><image>https://raw.githubusercontent.com/suyu-emu/suyu-emu.github.io/master/images/screenshots/010-Hyrule%20Warriors%20Age%20of%20Calamity.png</image></screenshot>
|
||||||
<screenshot><image>https://raw.githubusercontent.com/yuzu-emu/yuzu-emu.github.io/master/images/screenshots/039-Pok%C3%A9mon%20Mystery%20Dungeon%20Rescue%20Team%20DX.png.png.png</image></screenshot>
|
<screenshot><image>https://raw.githubusercontent.com/suyu-emu/suyu-emu.github.io/master/images/screenshots/039-Pok%C3%A9mon%20Mystery%20Dungeon%20Rescue%20Team%20DX.png.png.png</image></screenshot>
|
||||||
</screenshots>
|
</screenshots>
|
||||||
</component>
|
</component>
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
SPDX-FileCopyrightText: 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
SPDX-License-Identifier: GPL-2.0-or-later
|
SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
<mime-type type="application/x-nx-nro">
|
<mime-type type="application/x-nx-nro">
|
||||||
<comment>Nintendo Switch homebrew executable</comment>
|
<comment>Nintendo Switch homebrew executable</comment>
|
||||||
<acronym>NRO</acronym>
|
<acronym>NRO</acronym>
|
||||||
<icon name="org.yuzu_emu.yuzu"/>
|
<icon name="org.suyu_emu.suyu"/>
|
||||||
<glob pattern="*.nro"/>
|
<glob pattern="*.nro"/>
|
||||||
<magic><match value="NRO" type="string" offset="16"/></magic>
|
<magic><match value="NRO" type="string" offset="16"/></magic>
|
||||||
</mime-type>
|
</mime-type>
|
||||||
|
@ -17,7 +17,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
<mime-type type="application/x-nx-nso">
|
<mime-type type="application/x-nx-nso">
|
||||||
<comment>Nintendo Switch homebrew executable</comment>
|
<comment>Nintendo Switch homebrew executable</comment>
|
||||||
<acronym>NSO</acronym>
|
<acronym>NSO</acronym>
|
||||||
<icon name="org.yuzu_emu.yuzu"/>
|
<icon name="org.suyu_emu.suyu"/>
|
||||||
<glob pattern="*.nso"/>
|
<glob pattern="*.nso"/>
|
||||||
<magic><match value="NSO" type="string" offset="0"/></magic>
|
<magic><match value="NSO" type="string" offset="0"/></magic>
|
||||||
</mime-type>
|
</mime-type>
|
||||||
|
@ -25,7 +25,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
<mime-type type="application/x-nx-nsp">
|
<mime-type type="application/x-nx-nsp">
|
||||||
<comment>Nintendo Switch Package</comment>
|
<comment>Nintendo Switch Package</comment>
|
||||||
<acronym>NSP</acronym>
|
<acronym>NSP</acronym>
|
||||||
<icon name="org.yuzu_emu.yuzu"/>
|
<icon name="org.suyu_emu.suyu"/>
|
||||||
<glob pattern="*.nsp"/>
|
<glob pattern="*.nsp"/>
|
||||||
<magic><match value="PFS" type="string" offset="0"/></magic>
|
<magic><match value="PFS" type="string" offset="0"/></magic>
|
||||||
</mime-type>
|
</mime-type>
|
||||||
|
@ -33,7 +33,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
<mime-type type="application/x-nx-xci">
|
<mime-type type="application/x-nx-xci">
|
||||||
<comment>Nintendo Switch Card Image</comment>
|
<comment>Nintendo Switch Card Image</comment>
|
||||||
<acronym>XCI</acronym>
|
<acronym>XCI</acronym>
|
||||||
<icon name="org.yuzu_emu.yuzu"/>
|
<icon name="org.suyu_emu.suyu"/>
|
||||||
<glob pattern="*.xci"/>
|
<glob pattern="*.xci"/>
|
||||||
</mime-type>
|
</mime-type>
|
||||||
</mime-info>
|
</mime-info>
|
4
dist/qt_themes/default/default.qrc
vendored
4
dist/qt_themes/default/default.qrc
vendored
|
@ -1,5 +1,5 @@
|
||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
SPDX-FileCopyrightText: 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
SPDX-License-Identifier: GPL-2.0-or-later
|
SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
<file alias="48x48/sd_card.png">icons/48x48/sd_card.png</file>
|
<file alias="48x48/sd_card.png">icons/48x48/sd_card.png</file>
|
||||||
<file alias="48x48/star.png">icons/48x48/star.png</file>
|
<file alias="48x48/star.png">icons/48x48/star.png</file>
|
||||||
<file alias="256x256/plus_folder.png">icons/256x256/plus_folder.png</file>
|
<file alias="256x256/plus_folder.png">icons/256x256/plus_folder.png</file>
|
||||||
<file alias="256x256/yuzu.png">icons/256x256/yuzu.png</file>
|
<file alias="256x256/suyu.png">icons/256x256/suyu.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="default">
|
<qresource prefix="default">
|
||||||
<file>style.qss</file>
|
<file>style.qss</file>
|
||||||
|
|
BIN
dist/qt_themes/default/icons/256x256/suyu.png
vendored
Normal file
BIN
dist/qt_themes/default/icons/256x256/suyu.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
dist/qt_themes/default/icons/256x256/yuzu.png
vendored
BIN
dist/qt_themes/default/icons/256x256/yuzu.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 4.3 KiB |
9
dist/readme/suyu__Logo-Pill.svg
vendored
Normal file
9
dist/readme/suyu__Logo-Pill.svg
vendored
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<svg width="2421" height="912" viewBox="0 0 2421 912" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="2421" height="912" rx="456" fill="black"/>
|
||||||
|
<path d="M1981.76 562.559C2048.26 562.559 2085.29 540.974 2097.74 494.87H2098.58C2098.58 516.024 2097.74 543.446 2096.9 558.402H2150.07V353.155H2096.9V437.082C2096.9 489.051 2052 518.972 1999.23 518.972C1940.61 518.972 1921.48 495.702 1921.48 457.882V353.155H1868.34V469.104C1868.34 518.559 1901.97 562.559 1981.76 562.559Z" fill="white"/>
|
||||||
|
<path d="M1622.72 649C1673.41 649 1696.68 626.588 1729.92 562.978L1838.78 353.155H1784.35L1702.08 511.453H1701.25L1608.59 353.155H1546.68L1667.59 558.402H1677.98C1656.37 599.173 1642.66 607.493 1616.07 607.493C1601.52 607.493 1588.23 604.581 1581.58 602.501V643.181C1589.47 645.68 1605.68 649 1622.72 649Z" fill="white"/>
|
||||||
|
<path d="M1346.74 562.559C1413.26 562.559 1450.26 540.974 1462.73 494.87H1463.56C1463.56 516.024 1462.73 543.446 1461.9 558.402H1515.04V353.155H1461.9V437.082C1461.9 489.051 1417 518.972 1364.21 518.972C1305.59 518.972 1286.47 495.702 1286.47 457.882V353.155H1233.33V469.104C1233.33 518.559 1266.95 562.559 1346.74 562.559Z" fill="white"/>
|
||||||
|
<path d="M1064.99 562.559C1171.79 562.559 1195.46 526.453 1195.46 494.857C1195.46 475.317 1186.74 458.688 1167.64 449.957C1149.78 442.474 1122.77 439.98 1086.19 438.316C1053.76 436.655 1027.15 436.655 1012.6 432.913C999.299 430.001 995.142 424.182 995.142 415.867C995.142 396.326 1018.01 386.765 1066.65 386.765C1122.77 386.765 1132.75 402.147 1133.17 422.518H1183.42C1183.42 383.861 1162.66 349 1064.99 349C986.424 349 942 376.805 942 418.361C942 435.407 948.643 451.205 964.004 459.52C979.781 468.25 1010.94 473.24 1053.35 474.485C1079.95 475.317 1111.13 476.149 1125.68 479.059C1138.99 481.971 1142.31 488.206 1142.31 496.521C1142.31 512.735 1128.18 524.791 1064.99 524.791C1000.96 524.791 992.651 507.329 992.238 490.286H942C942 521.05 958.606 562.559 1064.99 562.559Z" fill="white"/>
|
||||||
|
<path d="M614.634 671.208C627.342 648.401 634.583 622.138 634.583 594.194C634.583 506.657 563.529 435.612 475.992 435.612C410.969 435.612 358.192 382.835 358.192 317.806C358.192 252.776 410.969 200 475.992 200C617.313 200 732 314.688 732 456C732 546.235 685.227 625.613 614.634 671.208ZM475.992 252.761C464.032 252.761 454.316 262.476 454.316 274.443C454.316 286.408 464.032 296.125 475.992 296.125C487.969 296.125 497.673 286.408 497.673 274.443C497.673 262.476 487.969 252.761 475.992 252.761ZM519.355 296.125C507.391 296.125 497.673 305.839 497.673 317.806C497.673 329.772 507.391 339.488 519.355 339.488C531.332 339.488 541.036 329.772 541.036 317.806C541.036 305.839 531.332 296.125 519.355 296.125ZM432.635 296.125C420.669 296.125 410.955 305.839 410.955 317.806C410.955 329.772 420.669 339.488 432.635 339.488C444.601 339.488 454.316 329.772 454.316 317.806C454.316 305.839 444.601 296.125 432.635 296.125ZM475.992 339.488C464.032 339.488 454.316 349.203 454.316 361.168C454.316 373.135 464.032 382.85 475.992 382.85C487.969 382.85 497.673 373.135 497.673 361.168C497.673 349.203 487.969 339.488 475.992 339.488Z" fill="#FF3554"/>
|
||||||
|
<path d="M337.361 240.792C324.657 263.599 317.417 289.862 317.417 317.806C317.417 405.343 388.461 476.388 475.992 476.388C541.022 476.388 593.805 529.165 593.805 594.194C593.805 659.222 541.022 712 475.992 712C334.687 712 220 597.312 220 456C220 365.766 266.764 286.385 337.361 240.792ZM475.992 529.149C464.032 529.149 454.316 538.865 454.316 550.831C454.316 562.798 464.032 572.512 475.992 572.512C487.969 572.512 497.673 562.798 497.673 550.831C497.673 538.865 487.969 529.149 475.992 529.149ZM519.355 572.512C507.391 572.512 497.673 582.227 497.673 594.194C497.673 606.161 507.391 615.876 519.355 615.876C531.332 615.876 541.036 606.161 541.036 594.194C541.036 582.227 531.332 572.512 519.355 572.512ZM475.992 615.876C464.032 615.876 454.316 625.59 454.316 637.557C454.316 649.523 464.032 659.239 475.992 659.239C487.969 659.239 497.673 649.523 497.673 637.557C497.673 625.59 487.969 615.876 475.992 615.876ZM432.634 572.512C420.669 572.512 410.954 582.227 410.954 594.194C410.954 606.161 420.669 615.876 432.634 615.876C444.601 615.876 454.316 606.161 454.316 594.194C454.316 582.227 444.601 572.512 432.634 572.512Z" fill="#3A99FF"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.1 KiB |
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue