mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-04 00:49:02 -06:00 
			
		
		
		
	try three of importing hidden files from legacy
On branch master Your branch is up to date with 'origin/master'. Changes to be committed: new file: .ci/.DS_Store new file: .ci/scripts/android/build.sh new file: .ci/scripts/android/eabuild.sh new file: .ci/scripts/android/mainlinebuild.sh new file: .ci/scripts/android/upload.sh new file: .ci/scripts/clang/docker.sh new file: .ci/scripts/clang/exec.sh new file: .ci/scripts/clang/upload.sh new file: .ci/scripts/common/post-upload.sh new file: .ci/scripts/common/pre-upload.sh new file: .ci/scripts/format/docker.sh new file: .ci/scripts/format/exec.sh new file: .ci/scripts/format/script.sh new file: .ci/scripts/linux/docker.sh new file: .ci/scripts/linux/exec.sh new file: .ci/scripts/linux/upload.sh new file: .ci/scripts/merge/apply-patches-by-label-private.py new file: .ci/scripts/merge/apply-patches-by-label.py new file: .ci/scripts/merge/check-label-presence.py new file: .ci/scripts/merge/yuzubot-git-config.sh new file: .ci/scripts/transifex/docker.sh new file: .ci/scripts/windows/docker.sh new file: .ci/scripts/windows/exec.sh new file: .ci/scripts/windows/install-vulkan-sdk.ps1 new file: .ci/scripts/windows/scan_dll.py new file: .ci/scripts/windows/upload.ps1 new file: .ci/scripts/windows/upload.sh new file: .ci/templates/build-mock.yml new file: .ci/templates/build-msvc.yml new file: .ci/templates/build-single.yml new file: .ci/templates/build-standard.yml new file: .ci/templates/build-testing.yml new file: .ci/templates/format-check.yml new file: .ci/templates/merge-private.yml new file: .ci/templates/merge.yml new file: .ci/templates/mergebot-private.yml new file: .ci/templates/mergebot.yml new file: .ci/templates/release-download.yml new file: .ci/templates/release-github.yml new file: .ci/templates/release-private-tag.yml new file: .ci/templates/release-universal.yml new file: .ci/templates/retrieve-artifact-source.yml new file: .ci/templates/retrieve-master-source.yml new file: .ci/templates/sync-source.yml new file: .ci/yuzu-mainline-step1.yml new file: .ci/yuzu-mainline-step2.yml new file: .ci/yuzu-patreon-step1.yml new file: .ci/yuzu-patreon-step2.yml new file: .ci/yuzu-repo-sync.yml new file: .ci/yuzu-verify.yml new file: .codespellrc new file: .git-blame-ignore-revs new file: .gitattributes new file: .gitignore new file: .gitmodules new file: .reuse/dep5
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								.ci/.DS_Store
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.ci/.DS_Store
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										29
									
								
								.ci/scripts/android/build.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										29
									
								
								.ci/scripts/android/build.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-3.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export NDK_CCACHE="$(which ccache)"
 | 
				
			||||||
 | 
					ccache -s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BUILD_FLAVOR="mainline"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BUILD_TYPE="release"
 | 
				
			||||||
 | 
					if [ "${GITHUB_REPOSITORY}" == "yuzu-emu/yuzu" ]; then
 | 
				
			||||||
 | 
					    BUILD_TYPE="relWithDebInfo"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then
 | 
				
			||||||
 | 
					    export ANDROID_KEYSTORE_FILE="${GITHUB_WORKSPACE}/ks.jks"
 | 
				
			||||||
 | 
					    base64 --decode <<< "${ANDROID_KEYSTORE_B64}" > "${ANDROID_KEYSTORE_FILE}"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cd src/android
 | 
				
			||||||
 | 
					chmod +x ./gradlew
 | 
				
			||||||
 | 
					./gradlew "assemble${BUILD_FLAVOR}${BUILD_TYPE}" "bundle${BUILD_FLAVOR}${BUILD_TYPE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ccache -s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then
 | 
				
			||||||
 | 
					    rm "${ANDROID_KEYSTORE_FILE}"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
							
								
								
									
										21
									
								
								.ci/scripts/android/eabuild.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								.ci/scripts/android/eabuild.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2024 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-3.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export NDK_CCACHE="$(which ccache)"
 | 
				
			||||||
 | 
					ccache -s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export ANDROID_KEYSTORE_FILE="${GITHUB_WORKSPACE}/ks.jks"
 | 
				
			||||||
 | 
					base64 --decode <<< "${EA_PLAY_ANDROID_KEYSTORE_B64}" > "${ANDROID_KEYSTORE_FILE}"
 | 
				
			||||||
 | 
					export ANDROID_KEY_ALIAS="${PLAY_ANDROID_KEY_ALIAS}"
 | 
				
			||||||
 | 
					export ANDROID_KEYSTORE_PASS="${PLAY_ANDROID_KEYSTORE_PASS}"
 | 
				
			||||||
 | 
					export SERVICE_ACCOUNT_KEY_PATH="${GITHUB_WORKSPACE}/sa.json"
 | 
				
			||||||
 | 
					base64 --decode <<< "${EA_SERVICE_ACCOUNT_KEY_B64}" > "${SERVICE_ACCOUNT_KEY_PATH}"
 | 
				
			||||||
 | 
					./gradlew "publishEaReleaseBundle"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ccache -s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then
 | 
				
			||||||
 | 
					    rm "${ANDROID_KEYSTORE_FILE}"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
							
								
								
									
										21
									
								
								.ci/scripts/android/mainlinebuild.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								.ci/scripts/android/mainlinebuild.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2024 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-3.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export NDK_CCACHE="$(which ccache)"
 | 
				
			||||||
 | 
					ccache -s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export ANDROID_KEYSTORE_FILE="${GITHUB_WORKSPACE}/ks.jks"
 | 
				
			||||||
 | 
					base64 --decode <<< "${MAINLINE_PLAY_ANDROID_KEYSTORE_B64}" > "${ANDROID_KEYSTORE_FILE}"
 | 
				
			||||||
 | 
					export ANDROID_KEY_ALIAS="${PLAY_ANDROID_KEY_ALIAS}"
 | 
				
			||||||
 | 
					export ANDROID_KEYSTORE_PASS="${PLAY_ANDROID_KEYSTORE_PASS}"
 | 
				
			||||||
 | 
					export SERVICE_ACCOUNT_KEY_PATH="${GITHUB_WORKSPACE}/sa.json"
 | 
				
			||||||
 | 
					base64 --decode <<< "${MAINLINE_SERVICE_ACCOUNT_KEY_B64}" > "${SERVICE_ACCOUNT_KEY_PATH}"
 | 
				
			||||||
 | 
					./gradlew "publishMainlineReleaseBundle"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ccache -s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then
 | 
				
			||||||
 | 
					    rm "${ANDROID_KEYSTORE_FILE}"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
							
								
								
									
										22
									
								
								.ci/scripts/android/upload.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								.ci/scripts/android/upload.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-3.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					. ./.ci/scripts/common/pre-upload.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REV_NAME="yuzu-${GITDATE}-${GITREV}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BUILD_FLAVOR="mainline"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BUILD_TYPE_LOWER="release"
 | 
				
			||||||
 | 
					BUILD_TYPE_UPPER="Release"
 | 
				
			||||||
 | 
					if [ "${GITHUB_REPOSITORY}" == "yuzu-emu/yuzu" ]; then
 | 
				
			||||||
 | 
					    BUILD_TYPE_LOWER="relWithDebInfo"
 | 
				
			||||||
 | 
					    BUILD_TYPE_UPPER="RelWithDebInfo"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cp src/android/app/build/outputs/apk/"${BUILD_FLAVOR}/${BUILD_TYPE_LOWER}/app-${BUILD_FLAVOR}-${BUILD_TYPE_LOWER}.apk" \
 | 
				
			||||||
 | 
					  "artifacts/${REV_NAME}.apk"
 | 
				
			||||||
 | 
					cp src/android/app/build/outputs/bundle/"${BUILD_FLAVOR}${BUILD_TYPE_UPPER}"/"app-${BUILD_FLAVOR}-${BUILD_TYPE_LOWER}.aab" \
 | 
				
			||||||
 | 
					  "artifacts/${REV_NAME}.aab"
 | 
				
			||||||
							
								
								
									
										32
									
								
								.ci/scripts/clang/docker.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										32
									
								
								.ci/scripts/clang/docker.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2021 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Exit on error, rather than continuing with the rest of the script.
 | 
				
			||||||
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ccache -s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir build || true && cd build
 | 
				
			||||||
 | 
					cmake .. \
 | 
				
			||||||
 | 
					      -DCMAKE_BUILD_TYPE=Release \
 | 
				
			||||||
 | 
					      -DCMAKE_CXX_FLAGS="-march=x86-64-v2" \
 | 
				
			||||||
 | 
					      -DCMAKE_CXX_COMPILER=/usr/lib/ccache/clang++ \
 | 
				
			||||||
 | 
					      -DCMAKE_C_COMPILER=/usr/lib/ccache/clang \
 | 
				
			||||||
 | 
					      -DCMAKE_INSTALL_PREFIX="/usr" \
 | 
				
			||||||
 | 
					      -DDISPLAY_VERSION=$1 \
 | 
				
			||||||
 | 
					      -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
 | 
				
			||||||
 | 
					      -DENABLE_QT_TRANSLATION=ON \
 | 
				
			||||||
 | 
					      -DUSE_DISCORD_PRESENCE=ON \
 | 
				
			||||||
 | 
					      -DYUZU_CRASH_DUMPS=ON \
 | 
				
			||||||
 | 
					      -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \
 | 
				
			||||||
 | 
					      -DYUZU_USE_BUNDLED_FFMPEG=ON \
 | 
				
			||||||
 | 
					      -GNinja
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ninja
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ccache -s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ctest -VV -C Release
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										11
									
								
								.ci/scripts/clang/exec.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								.ci/scripts/clang/exec.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2021 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir -p "ccache"  || true
 | 
				
			||||||
 | 
					chmod a+x ./.ci/scripts/clang/docker.sh
 | 
				
			||||||
 | 
					# the UID for the container yuzu user is 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"
 | 
				
			||||||
 | 
					sudo chown -R $UID ./
 | 
				
			||||||
							
								
								
									
										23
									
								
								.ci/scripts/clang/upload.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										23
									
								
								.ci/scripts/clang/upload.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2021 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					. .ci/scripts/common/pre-upload.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REV_NAME="yuzu-linux-${GITDATE}-${GITREV}"
 | 
				
			||||||
 | 
					ARCHIVE_NAME="${REV_NAME}.tar.xz"
 | 
				
			||||||
 | 
					COMPRESSION_FLAGS="-cJvf"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "${RELEASE_NAME}" = "mainline" ]; then
 | 
				
			||||||
 | 
					    DIR_NAME="${REV_NAME}"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    DIR_NAME="${REV_NAME}_${RELEASE_NAME}"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir "$DIR_NAME"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cp build/bin/yuzu-cmd "$DIR_NAME"
 | 
				
			||||||
 | 
					cp build/bin/yuzu "$DIR_NAME"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					. .ci/scripts/common/post-upload.sh
 | 
				
			||||||
							
								
								
									
										20
									
								
								.ci/scripts/common/post-upload.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								.ci/scripts/common/post-upload.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Copy documentation
 | 
				
			||||||
 | 
					cp LICENSE.txt "$DIR_NAME"
 | 
				
			||||||
 | 
					cp README.md "$DIR_NAME"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [[ -z "${NO_SOURCE_PACK}" ]]; then
 | 
				
			||||||
 | 
					  git clone --depth 1 file://$(readlink -e .) ${REV_NAME}-source
 | 
				
			||||||
 | 
					  tar -cJvf "${REV_NAME}-source.tar.xz" ${REV_NAME}-source
 | 
				
			||||||
 | 
					  cp -v "${REV_NAME}-source.tar.xz" "$DIR_NAME"
 | 
				
			||||||
 | 
					  cp -v "${REV_NAME}-source.tar.xz" "${ARTIFACTS_DIR}/"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tar $COMPRESSION_FLAGS "$ARCHIVE_NAME" "$DIR_NAME"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# move the compiled archive into the artifacts directory to be uploaded by travis releases
 | 
				
			||||||
 | 
					mv "$ARCHIVE_NAME" "${ARTIFACTS_DIR}/"
 | 
				
			||||||
							
								
								
									
										10
									
								
								.ci/scripts/common/pre-upload.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.ci/scripts/common/pre-upload.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GITDATE="`git show -s --date=short --format='%ad' | sed 's/-//g'`"
 | 
				
			||||||
 | 
					GITREV="`git show -s --format='%h'`"
 | 
				
			||||||
 | 
					ARTIFACTS_DIR="$PWD/artifacts"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir -p "${ARTIFACTS_DIR}/"
 | 
				
			||||||
							
								
								
									
										9
									
								
								.ci/scripts/format/docker.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								.ci/scripts/format/docker.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Run clang-format
 | 
				
			||||||
 | 
					cd /yuzu
 | 
				
			||||||
 | 
					chmod a+x ./.ci/scripts/format/script.sh
 | 
				
			||||||
 | 
					./.ci/scripts/format/script.sh
 | 
				
			||||||
							
								
								
									
										10
									
								
								.ci/scripts/format/exec.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.ci/scripts/format/exec.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					chmod a+x ./.ci/scripts/format/docker.sh
 | 
				
			||||||
 | 
					# the UID for the container yuzu user is 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
 | 
				
			||||||
 | 
					sudo chown -R $UID ./
 | 
				
			||||||
							
								
								
									
										37
									
								
								.ci/scripts/format/script.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										37
									
								
								.ci/scripts/format/script.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					shopt -s nullglob globstar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if git grep -nrI '\s$' src **/*.yml **/*.txt **/*.md Doxyfile .gitignore .gitmodules .ci* dist/*.desktop dist/*.svg dist/*.xml; then
 | 
				
			||||||
 | 
					    echo Trailing whitespace found, aborting
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Default clang-format points to default 3.5 version one
 | 
				
			||||||
 | 
					CLANG_FORMAT="${CLANG_FORMAT:-clang-format-15}"
 | 
				
			||||||
 | 
					"$CLANG_FORMAT" --version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Turn off tracing for this because it's too verbose
 | 
				
			||||||
 | 
					set +x
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Check everything for branch pushes
 | 
				
			||||||
 | 
					FILES_TO_LINT="$(find src/ -name '*.cpp' -or -name '*.h')"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for f in $FILES_TO_LINT; do
 | 
				
			||||||
 | 
					    echo "$f"
 | 
				
			||||||
 | 
					    "$CLANG_FORMAT" -i "$f"
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DIFF=$(git -c core.fileMode=false diff)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ ! -z "$DIFF" ]; then
 | 
				
			||||||
 | 
					    echo "!!! Not compliant to coding style, here is the fix:"
 | 
				
			||||||
 | 
					    echo "$DIFF"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cd src/android
 | 
				
			||||||
 | 
					./gradlew ktlintCheck
 | 
				
			||||||
							
								
								
									
										79
									
								
								.ci/scripts/linux/docker.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										79
									
								
								.ci/scripts/linux/docker.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,79 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Exit on error, rather than continuing with the rest of the script.
 | 
				
			||||||
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ccache -s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir build || true && cd build
 | 
				
			||||||
 | 
					cmake .. \
 | 
				
			||||||
 | 
					      -DBoost_USE_STATIC_LIBS=ON \
 | 
				
			||||||
 | 
					      -DCMAKE_BUILD_TYPE=RelWithDebInfo \
 | 
				
			||||||
 | 
					      -DCMAKE_CXX_FLAGS="-march=x86-64-v2" \
 | 
				
			||||||
 | 
					      -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \
 | 
				
			||||||
 | 
					      -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \
 | 
				
			||||||
 | 
					      -DCMAKE_INSTALL_PREFIX="/usr" \
 | 
				
			||||||
 | 
					      -DDISPLAY_VERSION=$1 \
 | 
				
			||||||
 | 
					      -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
 | 
				
			||||||
 | 
					      -DENABLE_QT_TRANSLATION=ON \
 | 
				
			||||||
 | 
					      -DUSE_DISCORD_PRESENCE=ON \
 | 
				
			||||||
 | 
					      -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \
 | 
				
			||||||
 | 
					      -DYUZU_USE_BUNDLED_FFMPEG=ON \
 | 
				
			||||||
 | 
					      -DYUZU_ENABLE_LTO=ON \
 | 
				
			||||||
 | 
					      -DYUZU_CRASH_DUMPS=ON \
 | 
				
			||||||
 | 
					      -GNinja
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ninja
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ccache -s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ctest -VV -C Release
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Separate debug symbols from specified executables
 | 
				
			||||||
 | 
					for EXE in yuzu; do
 | 
				
			||||||
 | 
					    EXE_PATH="bin/$EXE"
 | 
				
			||||||
 | 
					    # Copy debug symbols out
 | 
				
			||||||
 | 
					    objcopy --only-keep-debug $EXE_PATH $EXE_PATH.debug
 | 
				
			||||||
 | 
					    # Add debug link and strip debug symbols
 | 
				
			||||||
 | 
					    objcopy -g --add-gnu-debuglink=$EXE_PATH.debug $EXE_PATH $EXE_PATH.out
 | 
				
			||||||
 | 
					    # Overwrite original with stripped copy
 | 
				
			||||||
 | 
					    mv $EXE_PATH.out $EXE_PATH
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					# Strip debug symbols from all executables
 | 
				
			||||||
 | 
					find bin/ -type f -not -regex '.*.debug' -exec strip -g {} ';'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESTDIR="$PWD/AppDir" ninja install
 | 
				
			||||||
 | 
					rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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://raw.githubusercontent.com/yuzu-emu/AppImageKit-checkrt/old/AppRun.sh
 | 
				
			||||||
 | 
					wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/exec-x86_64.so
 | 
				
			||||||
 | 
					# Set executable bit
 | 
				
			||||||
 | 
					chmod 755 \
 | 
				
			||||||
 | 
					    deploy-linux.sh \
 | 
				
			||||||
 | 
					    AppRun.sh \
 | 
				
			||||||
 | 
					    exec-x86_64.so \
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Workaround for https://github.com/AppImage/AppImageKit/issues/828
 | 
				
			||||||
 | 
					export APPIMAGE_EXTRACT_AND_RUN=1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir -p AppDir/usr/optional
 | 
				
			||||||
 | 
					mkdir -p AppDir/usr/optional/libstdc++
 | 
				
			||||||
 | 
					mkdir -p AppDir/usr/optional/libgcc_s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Deploy yuzu's needed dependencies
 | 
				
			||||||
 | 
					DEPLOY_QT=1 ./deploy-linux.sh AppDir/usr/bin/yuzu AppDir
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Workaround for building yuzu with GCC 10 but also trying to distribute it to Ubuntu 18.04 et al.
 | 
				
			||||||
 | 
					# See https://github.com/darealshinji/AppImageKit-checkrt
 | 
				
			||||||
 | 
					cp exec-x86_64.so AppDir/usr/optional/exec.so
 | 
				
			||||||
 | 
					cp AppRun.sh AppDir/AppRun
 | 
				
			||||||
 | 
					cp --dereference /usr/lib/x86_64-linux-gnu/libstdc++.so.6 AppDir/usr/optional/libstdc++/libstdc++.so.6
 | 
				
			||||||
 | 
					cp --dereference /lib/x86_64-linux-gnu/libgcc_s.so.1 AppDir/usr/optional/libgcc_s/libgcc_s.so.1
 | 
				
			||||||
							
								
								
									
										16
									
								
								.ci/scripts/linux/exec.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								.ci/scripts/linux/exec.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir -p "ccache"  || true
 | 
				
			||||||
 | 
					chmod a+x ./.ci/scripts/linux/docker.sh
 | 
				
			||||||
 | 
					# the UID for the container yuzu user is 1027
 | 
				
			||||||
 | 
					sudo chown -R 1027 ./
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The environment variables listed below:
 | 
				
			||||||
 | 
					# AZURECIREPO TITLEBARFORMATIDLE TITLEBARFORMATRUNNING DISPLAYVERSION
 | 
				
			||||||
 | 
					#  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"
 | 
				
			||||||
 | 
					sudo chown -R $UID ./
 | 
				
			||||||
							
								
								
									
										67
									
								
								.ci/scripts/linux/upload.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										67
									
								
								.ci/scripts/linux/upload.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,67 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					. .ci/scripts/common/pre-upload.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APPIMAGE_NAME="yuzu-${RELEASE_NAME}-${GITDATE}-${GITREV}.AppImage"
 | 
				
			||||||
 | 
					BASE_NAME="yuzu-linux"
 | 
				
			||||||
 | 
					REV_NAME="${BASE_NAME}-${GITDATE}-${GITREV}"
 | 
				
			||||||
 | 
					ARCHIVE_NAME="${REV_NAME}.tar.xz"
 | 
				
			||||||
 | 
					COMPRESSION_FLAGS="-cJvf"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
 | 
				
			||||||
 | 
					    DIR_NAME="${BASE_NAME}-${RELEASE_NAME}"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    DIR_NAME="${REV_NAME}-${RELEASE_NAME}"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir "$DIR_NAME"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cp build/bin/yuzu-cmd "$DIR_NAME"
 | 
				
			||||||
 | 
					if [ "${RELEASE_NAME}" != "early-access" ] && [ "${RELEASE_NAME}" != "mainline" ]; then
 | 
				
			||||||
 | 
					    cp build/bin/yuzu "$DIR_NAME"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build an AppImage
 | 
				
			||||||
 | 
					cd build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/appimagetool-x86_64.AppImage
 | 
				
			||||||
 | 
					chmod 755 appimagetool-x86_64.AppImage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# if FUSE is not available, then fallback to extract and run
 | 
				
			||||||
 | 
					if ! ./appimagetool-x86_64.AppImage --version; then
 | 
				
			||||||
 | 
					    export APPIMAGE_EXTRACT_AND_RUN=1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Don't let AppImageLauncher ask to integrate EA
 | 
				
			||||||
 | 
					if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
 | 
				
			||||||
 | 
					    echo "X-AppImage-Integrate=false" >> AppDir/org.yuzu_emu.yuzu.desktop
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "${RELEASE_NAME}" = "mainline" ]; then
 | 
				
			||||||
 | 
					    # 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}"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    ./appimagetool-x86_64.AppImage AppDir "${APPIMAGE_NAME}"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					cd ..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Copy the AppImage and update info to the artifacts directory and avoid compressing it
 | 
				
			||||||
 | 
					cp "build/${APPIMAGE_NAME}" "${ARTIFACTS_DIR}/"
 | 
				
			||||||
 | 
					if [ -f "build/${APPIMAGE_NAME}.zsync" ]; then
 | 
				
			||||||
 | 
					    cp "build/${APPIMAGE_NAME}.zsync" "${ARTIFACTS_DIR}/"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Copy the AppImage to the general release directory and remove git revision info
 | 
				
			||||||
 | 
					if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
 | 
				
			||||||
 | 
					    cp "build/${APPIMAGE_NAME}" "${DIR_NAME}/yuzu-${RELEASE_NAME}.AppImage"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Copy debug symbols to artifacts
 | 
				
			||||||
 | 
					cd build/bin
 | 
				
			||||||
 | 
					tar $COMPRESSION_FLAGS "${ARTIFACTS_DIR}/${REV_NAME}-debug.tar.xz" *.debug
 | 
				
			||||||
 | 
					cd -
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					. .ci/scripts/common/post-upload.sh
 | 
				
			||||||
							
								
								
									
										48
									
								
								.ci/scripts/merge/apply-patches-by-label-private.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								.ci/scripts/merge/apply-patches-by-label-private.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Download all pull requests as patches that match a specific label
 | 
				
			||||||
 | 
					# Usage: python download-patches-by-label.py <Label to Match> <Root Path Folder to DL to>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import requests, sys, json, shutil, subprocess, os, traceback
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					org = os.getenv("PRIVATEMERGEORG", "yuzu-emu")
 | 
				
			||||||
 | 
					repo = os.getenv("PRIVATEMERGEREPO", "yuzu-private")
 | 
				
			||||||
 | 
					tagline = sys.argv[3]
 | 
				
			||||||
 | 
					user = sys.argv[1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dl_list = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TAG_NAME = sys.argv[2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def check_individual(repo_id, pr_id):
 | 
				
			||||||
 | 
					    url = 'https://%sdev.azure.com/%s/%s/_apis/git/repositories/%s/pullRequests/%s/labels?api-version=5.1-preview.1' % (user, org, repo, repo_id, pr_id)
 | 
				
			||||||
 | 
					    response = requests.get(url)
 | 
				
			||||||
 | 
					    if (response.ok):
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            js = response.json()
 | 
				
			||||||
 | 
					            return any(tag.get('name') == TAG_NAME for tag in js['value'])
 | 
				
			||||||
 | 
					        except:
 | 
				
			||||||
 | 
					            return False
 | 
				
			||||||
 | 
					    return False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def merge_pr(pn, ref):
 | 
				
			||||||
 | 
					    print("Matched PR# %s" % pn)
 | 
				
			||||||
 | 
					    print(subprocess.check_output(["git", "fetch", "https://%sdev.azure.com/%s/_git/%s" % (user, org, repo), ref, "-f", "--no-recurse-submodules"]))
 | 
				
			||||||
 | 
					    print(subprocess.check_output(["git", "merge", "--squash", 'origin/' + ref.replace('refs/heads/','')]))
 | 
				
			||||||
 | 
					    print(subprocess.check_output(["git", "commit", "-m\"Merge %s PR %s\"" % (tagline, pn)]))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def main():
 | 
				
			||||||
 | 
					    url = 'https://%sdev.azure.com/%s/%s/_apis/git/pullrequests?api-version=5.1' % (user, org, repo)
 | 
				
			||||||
 | 
					    response = requests.get(url)
 | 
				
			||||||
 | 
					    if (response.ok):
 | 
				
			||||||
 | 
					        js = response.json()
 | 
				
			||||||
 | 
					        tagged_prs = filter(lambda pr: check_individual(pr['repository']['id'], pr['pullRequestId']), js['value'])
 | 
				
			||||||
 | 
					        map(lambda pr: merge_pr(pr['pullRequestId'], pr['sourceRefName']), tagged_prs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == '__main__':
 | 
				
			||||||
 | 
					    try:
 | 
				
			||||||
 | 
					        main()
 | 
				
			||||||
 | 
					    except:
 | 
				
			||||||
 | 
					        traceback.print_exc(file=sys.stdout)
 | 
				
			||||||
 | 
					        sys.exit(-1)
 | 
				
			||||||
							
								
								
									
										38
									
								
								.ci/scripts/merge/apply-patches-by-label.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								.ci/scripts/merge/apply-patches-by-label.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Download all pull requests as patches that match a specific label
 | 
				
			||||||
 | 
					# Usage: python apply-patches-by-label.py <Label to Match>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import json, requests, subprocess, sys, traceback
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tagline = sys.argv[2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def check_individual(labels):
 | 
				
			||||||
 | 
					    for label in labels:
 | 
				
			||||||
 | 
					        if (label["name"] == sys.argv[1]):
 | 
				
			||||||
 | 
					            return True
 | 
				
			||||||
 | 
					    return False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def do_page(page):
 | 
				
			||||||
 | 
					    url = f"https://api.github.com/repos/yuzu-emu/yuzu/pulls?page={page}"
 | 
				
			||||||
 | 
					    response = requests.get(url)
 | 
				
			||||||
 | 
					    response.raise_for_status()
 | 
				
			||||||
 | 
					    if (response.ok):
 | 
				
			||||||
 | 
					        j = json.loads(response.content)
 | 
				
			||||||
 | 
					        if j == []:
 | 
				
			||||||
 | 
					            return
 | 
				
			||||||
 | 
					        for pr in j:
 | 
				
			||||||
 | 
					            if (check_individual(pr["labels"])):
 | 
				
			||||||
 | 
					                pn = pr["number"]
 | 
				
			||||||
 | 
					                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", "merge", "--squash", f"pr-{pn}"]))
 | 
				
			||||||
 | 
					                print(subprocess.check_output(["git", "commit", f"-m\"Merge {tagline} PR {pn}\""]))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					try:
 | 
				
			||||||
 | 
					    for i in range(1,10):
 | 
				
			||||||
 | 
					        do_page(i)
 | 
				
			||||||
 | 
					except:
 | 
				
			||||||
 | 
					    traceback.print_exc(file=sys.stdout)
 | 
				
			||||||
 | 
					    sys.exit(-1)
 | 
				
			||||||
							
								
								
									
										21
									
								
								.ci/scripts/merge/check-label-presence.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								.ci/scripts/merge/check-label-presence.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Checks to see if the specified pull request # has the specified tag
 | 
				
			||||||
 | 
					# Usage: python check-label-presence.py <Pull Request ID> <Name of Label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import requests, json, sys
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					try:
 | 
				
			||||||
 | 
					    url = 'https://api.github.com/repos/yuzu-emu/yuzu/issues/%s' % sys.argv[1]
 | 
				
			||||||
 | 
					    response = requests.get(url)
 | 
				
			||||||
 | 
					    if (response.ok):
 | 
				
			||||||
 | 
					        j = json.loads(response.content)
 | 
				
			||||||
 | 
					        for label in j["labels"]:
 | 
				
			||||||
 | 
					            if label["name"] == sys.argv[2]:
 | 
				
			||||||
 | 
					                print('##vso[task.setvariable variable=enabletesting;]true')
 | 
				
			||||||
 | 
					                sys.exit()
 | 
				
			||||||
 | 
					except:
 | 
				
			||||||
 | 
					    sys.exit(-1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					print('##vso[task.setvariable variable=enabletesting;]false')
 | 
				
			||||||
							
								
								
									
										5
									
								
								.ci/scripts/merge/yuzubot-git-config.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.ci/scripts/merge/yuzubot-git-config.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					git config --global user.email "yuzu@yuzu-emu.org"
 | 
				
			||||||
 | 
					git config --global user.name "yuzubot"
 | 
				
			||||||
							
								
								
									
										19
									
								
								.ci/scripts/transifex/docker.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										19
									
								
								.ci/scripts/transifex/docker.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2021 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -x
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo -e "\e[1m\e[33mBuild tools information:\e[0m"
 | 
				
			||||||
 | 
					cmake --version
 | 
				
			||||||
 | 
					gcc -v
 | 
				
			||||||
 | 
					tx --version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					make translation
 | 
				
			||||||
 | 
					cd ..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cd dist/languages
 | 
				
			||||||
 | 
					tx push -s
 | 
				
			||||||
							
								
								
									
										66
									
								
								.ci/scripts/windows/docker.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										66
									
								
								.ci/scripts/windows/docker.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,66 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#cd /yuzu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ccache -sv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir -p build && cd build
 | 
				
			||||||
 | 
					cmake .. \
 | 
				
			||||||
 | 
					    -DCMAKE_BUILD_TYPE=Release \
 | 
				
			||||||
 | 
					    -DCMAKE_TOOLCHAIN_FILE="${PWD}/../CMakeModules/MinGWCross.cmake" \
 | 
				
			||||||
 | 
					    -DDISPLAY_VERSION="$1" \
 | 
				
			||||||
 | 
					    -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
 | 
				
			||||||
 | 
					    -DENABLE_QT_TRANSLATION=ON \
 | 
				
			||||||
 | 
					    -DUSE_CCACHE=ON \
 | 
				
			||||||
 | 
					    -DYUZU_USE_BUNDLED_SDL2=OFF \
 | 
				
			||||||
 | 
					    -DYUZU_USE_EXTERNAL_SDL2=OFF \
 | 
				
			||||||
 | 
					    -DYUZU_TESTS=OFF \
 | 
				
			||||||
 | 
					    -GNinja
 | 
				
			||||||
 | 
					ninja yuzu yuzu-cmd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ccache -sv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Tests skipped"
 | 
				
			||||||
 | 
					#ctest -VV -C Release
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo 'Prepare binaries...'
 | 
				
			||||||
 | 
					cd ..
 | 
				
			||||||
 | 
					mkdir package
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ -d "/usr/x86_64-w64-mingw32/lib/qt5/plugins/platforms/" ]; then
 | 
				
			||||||
 | 
					  QT_PLUGINS_PATH='/usr/x86_64-w64-mingw32/lib/qt5/plugins'
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					  #fallback to qt
 | 
				
			||||||
 | 
					  QT_PLUGINS_PATH='/usr/x86_64-w64-mingw32/lib/qt/plugins'
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					find build/ -name "yuzu*.exe" -exec cp {} 'package' \;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# copy Qt plugins
 | 
				
			||||||
 | 
					mkdir package/platforms
 | 
				
			||||||
 | 
					cp -v "${QT_PLUGINS_PATH}/platforms/qwindows.dll" package/platforms/
 | 
				
			||||||
 | 
					cp -rv "${QT_PLUGINS_PATH}/mediaservice/" package/
 | 
				
			||||||
 | 
					cp -rv "${QT_PLUGINS_PATH}/imageformats/" package/
 | 
				
			||||||
 | 
					cp -rv "${QT_PLUGINS_PATH}/styles/" package/
 | 
				
			||||||
 | 
					rm -f package/mediaservice/*d.dll
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for i in package/*.exe; do
 | 
				
			||||||
 | 
					  # we need to process pdb here, however, cv2pdb
 | 
				
			||||||
 | 
					  # does not work here, so we just simply strip all the debug symbols
 | 
				
			||||||
 | 
					  x86_64-w64-mingw32-strip "${i}"
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					python3 .ci/scripts/windows/scan_dll.py package/*.exe package/imageformats/*.dll "package/"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# copy FFmpeg libraries
 | 
				
			||||||
 | 
					EXTERNALS_PATH="$(pwd)/build/externals"
 | 
				
			||||||
 | 
					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/ ';'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# copy libraries from yuzu.exe path
 | 
				
			||||||
 | 
					find "$(pwd)/build/bin/" -type f -regex ".*\.dll" -exec cp -v {} package/ ';'
 | 
				
			||||||
							
								
								
									
										11
									
								
								.ci/scripts/windows/exec.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								.ci/scripts/windows/exec.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir -p "ccache" || true
 | 
				
			||||||
 | 
					chmod a+x ./.ci/scripts/windows/docker.sh
 | 
				
			||||||
 | 
					# the UID for the container yuzu user is 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"
 | 
				
			||||||
 | 
					sudo chown -R $UID ./
 | 
				
			||||||
							
								
								
									
										33
									
								
								.ci/scripts/windows/install-vulkan-sdk.ps1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								.ci/scripts/windows/install-vulkan-sdk.ps1
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-3.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ErrorActionPreference = "Stop"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$VulkanSDKVer = "1.3.250.1"
 | 
				
			||||||
 | 
					$ExeFile = "VulkanSDK-$VulkanSDKVer-Installer.exe"
 | 
				
			||||||
 | 
					$Uri = "https://sdk.lunarg.com/sdk/download/$VulkanSDKVer/windows/$ExeFile"
 | 
				
			||||||
 | 
					$Destination = "./$ExeFile"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Downloading Vulkan SDK $VulkanSDKVer from $Uri"
 | 
				
			||||||
 | 
					$WebClient = New-Object System.Net.WebClient
 | 
				
			||||||
 | 
					$WebClient.DownloadFile($Uri, $Destination)
 | 
				
			||||||
 | 
					echo "Finished downloading $ExeFile"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$VULKAN_SDK = "C:/VulkanSDK/$VulkanSDKVer"
 | 
				
			||||||
 | 
					$Arguments = "--root `"$VULKAN_SDK`" --accept-licenses --default-answer --confirm-command install"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Installing Vulkan SDK $VulkanSDKVer"
 | 
				
			||||||
 | 
					$InstallProcess = Start-Process -FilePath $Destination -NoNewWindow -PassThru -Wait -ArgumentList $Arguments
 | 
				
			||||||
 | 
					$ExitCode = $InstallProcess.ExitCode
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if ($ExitCode -ne 0) {
 | 
				
			||||||
 | 
					    echo "Error installing Vulkan SDK $VulkanSDKVer (Error: $ExitCode)"
 | 
				
			||||||
 | 
					    Exit $ExitCode
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Finished installing Vulkan SDK $VulkanSDKVer"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if ("$env:GITHUB_ACTIONS" -eq "true") {
 | 
				
			||||||
 | 
					    echo "VULKAN_SDK=$VULKAN_SDK" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
 | 
				
			||||||
 | 
					    echo "$VULKAN_SDK/Bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										109
									
								
								.ci/scripts/windows/scan_dll.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								.ci/scripts/windows/scan_dll.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,109 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import pefile
 | 
				
			||||||
 | 
					import sys
 | 
				
			||||||
 | 
					import re
 | 
				
			||||||
 | 
					import os
 | 
				
			||||||
 | 
					import queue
 | 
				
			||||||
 | 
					import shutil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# constant definitions
 | 
				
			||||||
 | 
					KNOWN_SYS_DLLS = ['WINMM.DLL', 'MSVCRT.DLL', 'VERSION.DLL', 'MPR.DLL',
 | 
				
			||||||
 | 
					                  'DWMAPI.DLL', 'UXTHEME.DLL', 'DNSAPI.DLL', 'IPHLPAPI.DLL']
 | 
				
			||||||
 | 
					# below is for Ubuntu 18.04 with specified PPA enabled, if you are using
 | 
				
			||||||
 | 
					# other distro or different repositories, change the following accordingly
 | 
				
			||||||
 | 
					DLL_PATH = [
 | 
				
			||||||
 | 
					    '/usr/x86_64-w64-mingw32/bin/',
 | 
				
			||||||
 | 
					    '/usr/x86_64-w64-mingw32/lib/',
 | 
				
			||||||
 | 
					    '/usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/'
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					missing = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def parse_imports(file_name):
 | 
				
			||||||
 | 
					    results = []
 | 
				
			||||||
 | 
					    pe = pefile.PE(file_name, fast_load=True)
 | 
				
			||||||
 | 
					    pe.parse_data_directories()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for entry in pe.DIRECTORY_ENTRY_IMPORT:
 | 
				
			||||||
 | 
					        current = entry.dll.decode()
 | 
				
			||||||
 | 
					        current_u = current.upper()  # b/c Windows is often case insensitive
 | 
				
			||||||
 | 
					        # here we filter out system dlls
 | 
				
			||||||
 | 
					        # dll w/ names like *32.dll are likely to be system dlls
 | 
				
			||||||
 | 
					        if current_u.upper() not in KNOWN_SYS_DLLS and not re.match(string=current_u, pattern=r'.*32\.DLL'):
 | 
				
			||||||
 | 
					            results.append(current)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return results
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def parse_imports_recursive(file_name, path_list=[]):
 | 
				
			||||||
 | 
					    q = queue.Queue()  # create a FIFO queue
 | 
				
			||||||
 | 
					    # file_name can be a string or a list for the convenience
 | 
				
			||||||
 | 
					    if isinstance(file_name, str):
 | 
				
			||||||
 | 
					        q.put(file_name)
 | 
				
			||||||
 | 
					    elif isinstance(file_name, list):
 | 
				
			||||||
 | 
					        for i in file_name:
 | 
				
			||||||
 | 
					            q.put(i)
 | 
				
			||||||
 | 
					    full_list = []
 | 
				
			||||||
 | 
					    while q.qsize():
 | 
				
			||||||
 | 
					        current = q.get_nowait()
 | 
				
			||||||
 | 
					        print('> %s' % current)
 | 
				
			||||||
 | 
					        deps = parse_imports(current)
 | 
				
			||||||
 | 
					        # if this dll does not have any import, ignore it
 | 
				
			||||||
 | 
					        if not deps:
 | 
				
			||||||
 | 
					            continue
 | 
				
			||||||
 | 
					        for dep in deps:
 | 
				
			||||||
 | 
					            # the dependency already included in the list, skip
 | 
				
			||||||
 | 
					            if dep in full_list:
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					            # find the requested dll in the provided paths
 | 
				
			||||||
 | 
					            full_path = find_dll(dep)
 | 
				
			||||||
 | 
					            if not full_path:
 | 
				
			||||||
 | 
					                missing.append(dep)
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					            full_list.append(dep)
 | 
				
			||||||
 | 
					            q.put(full_path)
 | 
				
			||||||
 | 
					            path_list.append(full_path)
 | 
				
			||||||
 | 
					    return full_list
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def find_dll(name):
 | 
				
			||||||
 | 
					    for path in DLL_PATH:
 | 
				
			||||||
 | 
					        for root, _, files in os.walk(path):
 | 
				
			||||||
 | 
					            for f in files:
 | 
				
			||||||
 | 
					                if name.lower() == f.lower():
 | 
				
			||||||
 | 
					                    return os.path.join(root, f)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def deploy(name, dst, dry_run=False):
 | 
				
			||||||
 | 
					    dlls_path = []
 | 
				
			||||||
 | 
					    parse_imports_recursive(name, dlls_path)
 | 
				
			||||||
 | 
					    for dll_entry in dlls_path:
 | 
				
			||||||
 | 
					        if not dry_run:
 | 
				
			||||||
 | 
					            shutil.copy(dll_entry, dst)
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            print('[Dry-Run] Copy %s to %s' % (dll_entry, dst))
 | 
				
			||||||
 | 
					    print('Deploy completed.')
 | 
				
			||||||
 | 
					    return dlls_path
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def main():
 | 
				
			||||||
 | 
					    if len(sys.argv) < 3:
 | 
				
			||||||
 | 
					        print('Usage: %s [files to examine ...] [target deploy directory]')
 | 
				
			||||||
 | 
					        return 1
 | 
				
			||||||
 | 
					    to_deploy = sys.argv[1:-1]
 | 
				
			||||||
 | 
					    tgt_dir = sys.argv[-1]
 | 
				
			||||||
 | 
					    if not os.path.isdir(tgt_dir):
 | 
				
			||||||
 | 
					        print('%s is not a directory.' % tgt_dir)
 | 
				
			||||||
 | 
					        return 1
 | 
				
			||||||
 | 
					    print('Scanning dependencies...')
 | 
				
			||||||
 | 
					    deploy(to_deploy, tgt_dir)
 | 
				
			||||||
 | 
					    if missing:
 | 
				
			||||||
 | 
					        print('Following DLLs are not found: %s' % ('\n'.join(missing)))
 | 
				
			||||||
 | 
					    return 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == '__main__':
 | 
				
			||||||
 | 
					    main()
 | 
				
			||||||
							
								
								
									
										118
									
								
								.ci/scripts/windows/upload.ps1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								.ci/scripts/windows/upload.ps1
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,118 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					param($BUILD_NAME)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$GITDATE = $(git show -s --date=short --format='%ad') -replace "-", ""
 | 
				
			||||||
 | 
					$GITREV = $(git show -s --format='%h')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if ("$BUILD_NAME" -eq "mainline") {
 | 
				
			||||||
 | 
					    $RELEASE_DIST = "yuzu-windows-msvc"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					else {
 | 
				
			||||||
 | 
					    $RELEASE_DIST = "yuzu-windows-msvc-$BUILD_NAME"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$MSVC_BUILD_ZIP = "yuzu-windows-msvc-$GITDATE-$GITREV.zip" -replace " ", ""
 | 
				
			||||||
 | 
					$MSVC_BUILD_PDB = "yuzu-windows-msvc-$GITDATE-$GITREV-debugsymbols.zip" -replace " ", ""
 | 
				
			||||||
 | 
					$MSVC_SEVENZIP = "yuzu-windows-msvc-$GITDATE-$GITREV.7z" -replace " ", ""
 | 
				
			||||||
 | 
					$MSVC_TAR = "yuzu-windows-msvc-$GITDATE-$GITREV.tar" -replace " ", ""
 | 
				
			||||||
 | 
					$MSVC_TARXZ = "yuzu-windows-msvc-$GITDATE-$GITREV.tar.xz" -replace " ", ""
 | 
				
			||||||
 | 
					$MSVC_SOURCE = "yuzu-windows-msvc-source-$GITDATE-$GITREV" -replace " ", ""
 | 
				
			||||||
 | 
					$MSVC_SOURCE_TAR = "$MSVC_SOURCE.tar"
 | 
				
			||||||
 | 
					$MSVC_SOURCE_TARXZ = "$MSVC_SOURCE_TAR.xz"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$env:BUILD_ZIP = $MSVC_BUILD_ZIP
 | 
				
			||||||
 | 
					$env:BUILD_SYMBOLS = $MSVC_BUILD_PDB
 | 
				
			||||||
 | 
					$env:BUILD_UPDATE = $MSVC_SEVENZIP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (Test-Path -Path ".\build\bin\Release") {
 | 
				
			||||||
 | 
					    $BUILD_DIR = ".\build\bin\Release"
 | 
				
			||||||
 | 
					} else {
 | 
				
			||||||
 | 
					    $BUILD_DIR = ".\build\bin\"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Cleanup unneeded data in submodules
 | 
				
			||||||
 | 
					git submodule foreach git clean -fxd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Upload debugging symbols
 | 
				
			||||||
 | 
					mkdir pdb
 | 
				
			||||||
 | 
					Get-ChildItem "$BUILD_DIR\" -Recurse -Filter "*.pdb" | Copy-Item -destination .\pdb
 | 
				
			||||||
 | 
					7z a -tzip $MSVC_BUILD_PDB .\pdb\*.pdb
 | 
				
			||||||
 | 
					rm "$BUILD_DIR\*.pdb"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Create artifact directories
 | 
				
			||||||
 | 
					mkdir $RELEASE_DIST
 | 
				
			||||||
 | 
					mkdir $MSVC_SOURCE
 | 
				
			||||||
 | 
					mkdir "artifacts"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$CURRENT_DIR = Convert-Path .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build a tar.xz for the source of the release
 | 
				
			||||||
 | 
					git clone --depth 1 file://$CURRENT_DIR $MSVC_SOURCE
 | 
				
			||||||
 | 
					7z a -r -ttar $MSVC_SOURCE_TAR $MSVC_SOURCE
 | 
				
			||||||
 | 
					7z a -r -txz $MSVC_SOURCE_TARXZ $MSVC_SOURCE_TAR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Following section is quick hack to package artifacts differently for GitHub Actions
 | 
				
			||||||
 | 
					if ("$env:GITHUB_ACTIONS" -eq "true") {
 | 
				
			||||||
 | 
					    echo "Hello GitHub Actions"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # With vcpkg we now have a few more dll files
 | 
				
			||||||
 | 
					    ls .\build\bin\*.dll
 | 
				
			||||||
 | 
					    cp .\build\bin\*.dll .\artifacts\
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Hopefully there is an exe in either .\build\bin or .\build\bin\Release
 | 
				
			||||||
 | 
					    cp .\build\bin\yuzu*.exe .\artifacts\
 | 
				
			||||||
 | 
					    Copy-Item "$BUILD_DIR\*" -Destination "artifacts" -Recurse
 | 
				
			||||||
 | 
					    Remove-Item .\artifacts\tests.exe -ErrorAction ignore
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # None of the other GHA builds are including source, so commenting out today
 | 
				
			||||||
 | 
					    #Copy-Item $MSVC_SOURCE_TARXZ -Destination "artifacts"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Debugging symbols
 | 
				
			||||||
 | 
					    cp .\build\bin\yuzu*.pdb .\artifacts\
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Write out a tag BUILD_TAG to environment for the Upload step
 | 
				
			||||||
 | 
					    # We're getting ${{ github.event.number }} as $env:PR_NUMBER"
 | 
				
			||||||
 | 
					    echo "env:PR_NUMBER: $env:PR_NUMBER"
 | 
				
			||||||
 | 
					    if (Test-Path env:PR_NUMBER) {
 | 
				
			||||||
 | 
					        $PR_NUMBER = $env:PR_NUMBER.Substring(2) -as [int]
 | 
				
			||||||
 | 
					        $PR_NUMBER_TAG = "pr"+([string]$PR_NUMBER).PadLeft(5,'0')
 | 
				
			||||||
 | 
					        if ($PR_NUMBER -gt 1){
 | 
				
			||||||
 | 
					            $BUILD_TAG="verify-$PR_NUMBER_TAG-$GITDATE-$GITREV"
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            $BUILD_TAG = "verify-$GITDATE-$GITREV"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        # If env:PR_NUMBER isn't set, we should still write out a variable
 | 
				
			||||||
 | 
					        $BUILD_TAG = "verify-$GITDATE-$GITREV"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    echo "BUILD_TAG=$BUILD_TAG"
 | 
				
			||||||
 | 
					    echo "BUILD_TAG=$BUILD_TAG" >> $env:GITHUB_ENV
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # For extra job, just the exe
 | 
				
			||||||
 | 
					    $INDIVIDUAL_EXE = "yuzu-msvc-$BUILD_TAG.exe"
 | 
				
			||||||
 | 
					    echo "INDIVIDUAL_EXE=$INDIVIDUAL_EXE"
 | 
				
			||||||
 | 
					    echo "INDIVIDUAL_EXE=$INDIVIDUAL_EXE" >> $env:GITHUB_ENV
 | 
				
			||||||
 | 
					    echo "Just the exe: $INDIVIDUAL_EXE"
 | 
				
			||||||
 | 
					    cp .\artifacts\yuzu.exe .\$INDIVIDUAL_EXE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					} else {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build the final release artifacts
 | 
				
			||||||
 | 
					Copy-Item $MSVC_SOURCE_TARXZ -Destination $RELEASE_DIST
 | 
				
			||||||
 | 
					Copy-Item "$BUILD_DIR\*" -Destination $RELEASE_DIST -Recurse
 | 
				
			||||||
 | 
					rm "$RELEASE_DIST\*.exe"
 | 
				
			||||||
 | 
					Get-ChildItem "$BUILD_DIR" -Recurse -Filter "yuzu*.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 $MSVC_SEVENZIP $RELEASE_DIST
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					7z a -r -ttar $MSVC_TAR $RELEASE_DIST
 | 
				
			||||||
 | 
					7z a -r -txz $MSVC_TARXZ $MSVC_TAR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Get-ChildItem . -Filter "*.zip" | Copy-Item -destination "artifacts"
 | 
				
			||||||
 | 
					Get-ChildItem . -Filter "*.7z" | Copy-Item -destination "artifacts"
 | 
				
			||||||
 | 
					Get-ChildItem . -Filter "*.tar.xz" | Copy-Item -destination "artifacts"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										22
									
								
								.ci/scripts/windows/upload.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								.ci/scripts/windows/upload.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					. .ci/scripts/common/pre-upload.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REV_NAME="yuzu-windows-mingw-${GITDATE}-${GITREV}"
 | 
				
			||||||
 | 
					ARCHIVE_NAME="${REV_NAME}.tar.xz"
 | 
				
			||||||
 | 
					COMPRESSION_FLAGS="-cJvf"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "${RELEASE_NAME}" = "mainline" ]; then
 | 
				
			||||||
 | 
					    DIR_NAME="${REV_NAME}"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    DIR_NAME="${REV_NAME}_${RELEASE_NAME}"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir "$DIR_NAME"
 | 
				
			||||||
 | 
					# get around the permission issues
 | 
				
			||||||
 | 
					cp -r package/* "$DIR_NAME"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					. .ci/scripts/common/post-upload.sh
 | 
				
			||||||
							
								
								
									
										8
									
								
								.ci/templates/build-mock.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.ci/templates/build-mock.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					  - script: mkdir artifacts || echo 'X' > artifacts/T1.txt
 | 
				
			||||||
 | 
					  - publish: artifacts
 | 
				
			||||||
 | 
					    artifact: 'yuzu-$(BuildName)-mock'
 | 
				
			||||||
 | 
					    displayName: 'Upload Artifacts'
 | 
				
			||||||
							
								
								
									
										31
									
								
								.ci/templates/build-msvc.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								.ci/templates/build-msvc.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					parameters:
 | 
				
			||||||
 | 
					  artifactSource: 'true'
 | 
				
			||||||
 | 
					  cache: 'false'
 | 
				
			||||||
 | 
					  version: ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					- task: Powershell@2
 | 
				
			||||||
 | 
					  displayName: 'Install Vulkan SDK'
 | 
				
			||||||
 | 
					  inputs:
 | 
				
			||||||
 | 
					    targetType: 'filePath'
 | 
				
			||||||
 | 
					    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 ..
 | 
				
			||||||
 | 
					  displayName: 'Configure CMake'
 | 
				
			||||||
 | 
					- task: MSBuild@1
 | 
				
			||||||
 | 
					  displayName: 'Build'
 | 
				
			||||||
 | 
					  inputs:
 | 
				
			||||||
 | 
					    solution: 'build/yuzu.sln'
 | 
				
			||||||
 | 
					    maximumCpuCount: true
 | 
				
			||||||
 | 
					    configuration: release
 | 
				
			||||||
 | 
					- task: PowerShell@2
 | 
				
			||||||
 | 
					  displayName: 'Package Artifacts'
 | 
				
			||||||
 | 
					  inputs:
 | 
				
			||||||
 | 
					    targetType: 'filePath'
 | 
				
			||||||
 | 
					    filePath: './.ci/scripts/windows/upload.ps1'
 | 
				
			||||||
 | 
					    arguments: '$(BuildName)'
 | 
				
			||||||
 | 
					- publish: artifacts
 | 
				
			||||||
 | 
					  artifact: 'yuzu-$(BuildName)-windows-msvc'
 | 
				
			||||||
 | 
					  displayName: 'Upload Artifacts'
 | 
				
			||||||
							
								
								
									
										26
									
								
								.ci/templates/build-single.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								.ci/templates/build-single.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					parameters:
 | 
				
			||||||
 | 
					  artifactSource: 'true'
 | 
				
			||||||
 | 
					  cache: 'false'
 | 
				
			||||||
 | 
					  version: ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					- task: DockerInstaller@0
 | 
				
			||||||
 | 
					  displayName: 'Prepare Environment'
 | 
				
			||||||
 | 
					  inputs:
 | 
				
			||||||
 | 
					    dockerVersion: '17.09.0-ce'
 | 
				
			||||||
 | 
					- task: CacheBeta@0
 | 
				
			||||||
 | 
					  displayName: 'Cache Build System'
 | 
				
			||||||
 | 
					  inputs:
 | 
				
			||||||
 | 
					    key: yuzu-v1-$(BuildName)-$(BuildSuffix)-$(CacheSuffix)
 | 
				
			||||||
 | 
					    path: $(System.DefaultWorkingDirectory)/ccache
 | 
				
			||||||
 | 
					    cacheHitVar: CACHE_RESTORED
 | 
				
			||||||
 | 
					- script: chmod a+x ./.ci/scripts/$(ScriptFolder)/exec.sh && ./.ci/scripts/$(ScriptFolder)/exec.sh ${{ parameters['version'] }}
 | 
				
			||||||
 | 
					  displayName: 'Build'
 | 
				
			||||||
 | 
					- script: chmod a+x ./.ci/scripts/$(ScriptFolder)/upload.sh && RELEASE_NAME=$(BuildName) ./.ci/scripts/$(ScriptFolder)/upload.sh
 | 
				
			||||||
 | 
					  displayName: 'Package Artifacts'
 | 
				
			||||||
 | 
					- publish: artifacts
 | 
				
			||||||
 | 
					  artifact: 'yuzu-$(BuildName)-$(BuildSuffix)'
 | 
				
			||||||
 | 
					  displayName: 'Upload Artifacts'
 | 
				
			||||||
							
								
								
									
										33
									
								
								.ci/templates/build-standard.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								.ci/templates/build-standard.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					parameters:
 | 
				
			||||||
 | 
					  version: ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					- job: build
 | 
				
			||||||
 | 
					  displayName: 'standard'
 | 
				
			||||||
 | 
					  pool:
 | 
				
			||||||
 | 
					    vmImage: ubuntu-latest
 | 
				
			||||||
 | 
					  strategy:
 | 
				
			||||||
 | 
					    maxParallel: 10
 | 
				
			||||||
 | 
					    matrix:
 | 
				
			||||||
 | 
					      windows:
 | 
				
			||||||
 | 
					        BuildSuffix: 'windows-mingw'
 | 
				
			||||||
 | 
					        ScriptFolder: 'windows'
 | 
				
			||||||
 | 
					      clang:
 | 
				
			||||||
 | 
					        BuildSuffix: 'clang'
 | 
				
			||||||
 | 
					        ScriptFolder: 'clang'
 | 
				
			||||||
 | 
					      linux:
 | 
				
			||||||
 | 
					        BuildSuffix: 'linux'
 | 
				
			||||||
 | 
					        ScriptFolder: 'linux'
 | 
				
			||||||
 | 
					  steps:
 | 
				
			||||||
 | 
					  - template: ./sync-source.yml
 | 
				
			||||||
 | 
					    parameters:
 | 
				
			||||||
 | 
					      artifactSource: $(parameters.artifactSource)
 | 
				
			||||||
 | 
					      needSubmodules: 'true'
 | 
				
			||||||
 | 
					  - template: ./build-single.yml
 | 
				
			||||||
 | 
					    parameters:
 | 
				
			||||||
 | 
					      artifactSource: 'false'
 | 
				
			||||||
 | 
					      cache: $(parameters.cache)
 | 
				
			||||||
 | 
					      version: $(parameters.version)
 | 
				
			||||||
							
								
								
									
										40
									
								
								.ci/templates/build-testing.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								.ci/templates/build-testing.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					parameters:
 | 
				
			||||||
 | 
					  version: ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					- job: build_test
 | 
				
			||||||
 | 
					  displayName: 'testing'
 | 
				
			||||||
 | 
					  pool:
 | 
				
			||||||
 | 
					    vmImage: ubuntu-latest
 | 
				
			||||||
 | 
					  strategy:
 | 
				
			||||||
 | 
					    maxParallel: 5
 | 
				
			||||||
 | 
					    matrix:
 | 
				
			||||||
 | 
					      windows:
 | 
				
			||||||
 | 
					        BuildSuffix: 'windows-testing'
 | 
				
			||||||
 | 
					        ScriptFolder: 'windows'
 | 
				
			||||||
 | 
					  steps:
 | 
				
			||||||
 | 
					  - script: sudo apt-get update && sudo apt-get --only-upgrade -y install python3-pip && pip install requests urllib3
 | 
				
			||||||
 | 
					    displayName: 'Prepare Environment'
 | 
				
			||||||
 | 
					  - task: PythonScript@0
 | 
				
			||||||
 | 
					    condition: eq(variables['Build.Reason'], 'PullRequest')
 | 
				
			||||||
 | 
					    displayName: 'Determine Testing Status'
 | 
				
			||||||
 | 
					    inputs:
 | 
				
			||||||
 | 
					      scriptSource: 'filePath'
 | 
				
			||||||
 | 
					      scriptPath: '.ci/scripts/merge/check-label-presence.py'
 | 
				
			||||||
 | 
					      arguments: '$(System.PullRequest.PullRequestNumber) create-testing-build'
 | 
				
			||||||
 | 
					  - ${{ if eq(variables.enabletesting, 'true') }}:
 | 
				
			||||||
 | 
					    - template: ./sync-source.yml
 | 
				
			||||||
 | 
					      parameters:
 | 
				
			||||||
 | 
					        artifactSource: $(parameters.artifactSource)
 | 
				
			||||||
 | 
					        needSubmodules: 'true'
 | 
				
			||||||
 | 
					    - template: ./mergebot.yml
 | 
				
			||||||
 | 
					      parameters:
 | 
				
			||||||
 | 
					        matchLabel: 'testing-merge'
 | 
				
			||||||
 | 
					    - template: ./build-single.yml
 | 
				
			||||||
 | 
					      parameters:
 | 
				
			||||||
 | 
					        artifactSource: 'false'
 | 
				
			||||||
 | 
					        cache: 'false'
 | 
				
			||||||
 | 
					        version: $(parameters.version)
 | 
				
			||||||
							
								
								
									
										17
									
								
								.ci/templates/format-check.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								.ci/templates/format-check.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					parameters:
 | 
				
			||||||
 | 
					  artifactSource: 'true'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					- template: ./sync-source.yml
 | 
				
			||||||
 | 
					  parameters:
 | 
				
			||||||
 | 
					    artifactSource: $(parameters.artifactSource)
 | 
				
			||||||
 | 
					    needSubmodules: 'false'
 | 
				
			||||||
 | 
					- task: DockerInstaller@0
 | 
				
			||||||
 | 
					  displayName: 'Prepare Environment'
 | 
				
			||||||
 | 
					  inputs:
 | 
				
			||||||
 | 
					    dockerVersion: '17.09.0-ce'
 | 
				
			||||||
 | 
					- script: chmod a+x ./.ci/scripts/format/exec.sh && ./.ci/scripts/format/exec.sh
 | 
				
			||||||
 | 
					  displayName: 'Verify Formatting'
 | 
				
			||||||
							
								
								
									
										44
									
								
								.ci/templates/merge-private.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								.ci/templates/merge-private.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					- job: merge
 | 
				
			||||||
 | 
					  displayName: 'pull requests'
 | 
				
			||||||
 | 
					  pool:
 | 
				
			||||||
 | 
					    vmImage: 'ubuntu-latest'
 | 
				
			||||||
 | 
					  steps:
 | 
				
			||||||
 | 
					  - checkout: self
 | 
				
			||||||
 | 
					    submodules: recursive
 | 
				
			||||||
 | 
					  - template: ./mergebot-private.yml
 | 
				
			||||||
 | 
					    parameters:
 | 
				
			||||||
 | 
					      matchLabel: '$(BuildName)-merge'
 | 
				
			||||||
 | 
					      matchLabelPublic: '$(PublicBuildName)-merge'
 | 
				
			||||||
 | 
					  - task: ArchiveFiles@2
 | 
				
			||||||
 | 
					    displayName: 'Package Source'
 | 
				
			||||||
 | 
					    inputs:
 | 
				
			||||||
 | 
					      rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
 | 
				
			||||||
 | 
					      includeRootFolder: false
 | 
				
			||||||
 | 
					      archiveType: '7z'
 | 
				
			||||||
 | 
					      archiveFile: '$(Build.ArtifactStagingDirectory)/yuzu-$(BuildName)-source.7z'
 | 
				
			||||||
 | 
					  - task: PublishPipelineArtifact@1
 | 
				
			||||||
 | 
					    displayName: 'Upload Artifacts'
 | 
				
			||||||
 | 
					    inputs:
 | 
				
			||||||
 | 
					      targetPath: '$(Build.ArtifactStagingDirectory)/yuzu-$(BuildName)-source.7z'
 | 
				
			||||||
 | 
					      artifact: 'yuzu-$(BuildName)-source'
 | 
				
			||||||
 | 
					      replaceExistingArchive: true
 | 
				
			||||||
 | 
					- job: upload_source
 | 
				
			||||||
 | 
					  displayName: 'upload'
 | 
				
			||||||
 | 
					  dependsOn: merge
 | 
				
			||||||
 | 
					  pool:
 | 
				
			||||||
 | 
					    vmImage: 'ubuntu-latest'
 | 
				
			||||||
 | 
					  steps:
 | 
				
			||||||
 | 
					  - template: ./sync-source.yml
 | 
				
			||||||
 | 
					    parameters:
 | 
				
			||||||
 | 
					      artifactSource: '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
 | 
				
			||||||
 | 
					    displayName: 'Apply Git Configuration'
 | 
				
			||||||
 | 
					  - script: git remote add other $(GitRepoPushChangesURL)
 | 
				
			||||||
 | 
					    displayName: 'Register Repository'
 | 
				
			||||||
 | 
					  - script: git push --force other HEAD:$(GitPushBranch)
 | 
				
			||||||
 | 
					    displayName: 'Update Code'
 | 
				
			||||||
							
								
								
									
										43
									
								
								.ci/templates/merge.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								.ci/templates/merge.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					- job: merge
 | 
				
			||||||
 | 
					  displayName: 'pull requests'
 | 
				
			||||||
 | 
					  pool:
 | 
				
			||||||
 | 
					    vmImage: 'ubuntu-latest'
 | 
				
			||||||
 | 
					  steps:
 | 
				
			||||||
 | 
					  - checkout: self
 | 
				
			||||||
 | 
					    submodules: recursive
 | 
				
			||||||
 | 
					  - template: ./mergebot.yml
 | 
				
			||||||
 | 
					    parameters:
 | 
				
			||||||
 | 
					      matchLabel: '$(BuildName)-merge'
 | 
				
			||||||
 | 
					  - task: ArchiveFiles@2
 | 
				
			||||||
 | 
					    displayName: 'Package Source'
 | 
				
			||||||
 | 
					    inputs:
 | 
				
			||||||
 | 
					      rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
 | 
				
			||||||
 | 
					      includeRootFolder: false
 | 
				
			||||||
 | 
					      archiveType: '7z'
 | 
				
			||||||
 | 
					      archiveFile: '$(Build.ArtifactStagingDirectory)/yuzu-$(BuildName)-source.7z'
 | 
				
			||||||
 | 
					  - task: PublishPipelineArtifact@1
 | 
				
			||||||
 | 
					    displayName: 'Upload Artifacts'
 | 
				
			||||||
 | 
					    inputs:
 | 
				
			||||||
 | 
					      targetPath: '$(Build.ArtifactStagingDirectory)/yuzu-$(BuildName)-source.7z'
 | 
				
			||||||
 | 
					      artifact: 'yuzu-$(BuildName)-source'
 | 
				
			||||||
 | 
					      replaceExistingArchive: true
 | 
				
			||||||
 | 
					- job: upload_source
 | 
				
			||||||
 | 
					  displayName: 'upload'
 | 
				
			||||||
 | 
					  dependsOn: merge
 | 
				
			||||||
 | 
					  pool:
 | 
				
			||||||
 | 
					    vmImage: 'ubuntu-latest'
 | 
				
			||||||
 | 
					  steps:
 | 
				
			||||||
 | 
					  - template: ./sync-source.yml
 | 
				
			||||||
 | 
					    parameters:
 | 
				
			||||||
 | 
					      artifactSource: '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
 | 
				
			||||||
 | 
					    displayName: 'Apply Git Configuration'
 | 
				
			||||||
 | 
					  - script: git remote add other $(GitRepoPushChangesURL)
 | 
				
			||||||
 | 
					    displayName: 'Register Repository'
 | 
				
			||||||
 | 
					  - script: git push --force other HEAD:$(GitPushBranch)
 | 
				
			||||||
 | 
					    displayName: 'Update Code'
 | 
				
			||||||
							
								
								
									
										33
									
								
								.ci/templates/mergebot-private.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								.ci/templates/mergebot-private.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					parameters:
 | 
				
			||||||
 | 
					  matchLabel: 'dummy-merge'
 | 
				
			||||||
 | 
					  matchLabelPublic: 'dummy-merge'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					  - script: mkdir $(System.DefaultWorkingDirectory)/patches && pip install requests urllib3
 | 
				
			||||||
 | 
					    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
 | 
				
			||||||
 | 
					    displayName: 'Apply Git Configuration'
 | 
				
			||||||
 | 
					  - task: PythonScript@0
 | 
				
			||||||
 | 
					    displayName: 'Discover, Download, and Apply Patches (Mainline)'
 | 
				
			||||||
 | 
					    inputs:
 | 
				
			||||||
 | 
					      scriptSource: 'filePath'
 | 
				
			||||||
 | 
					      scriptPath: '.ci/scripts/merge/apply-patches-by-label.py'
 | 
				
			||||||
 | 
					      arguments: '${{ parameters.matchLabelPublic }} $(MergeTaglinePublic) patches-public'
 | 
				
			||||||
 | 
					      workingDirectory: '$(System.DefaultWorkingDirectory)'
 | 
				
			||||||
 | 
					  - task: PythonScript@0
 | 
				
			||||||
 | 
					    displayName: 'Discover, Download, and Apply Patches (Patreon Public)'
 | 
				
			||||||
 | 
					    inputs:
 | 
				
			||||||
 | 
					      scriptSource: 'filePath'
 | 
				
			||||||
 | 
					      scriptPath: '.ci/scripts/merge/apply-patches-by-label.py'
 | 
				
			||||||
 | 
					      arguments: '${{ parameters.matchLabel }} "$(MergeTaglinePrivate) Public" patches-mixed-public'
 | 
				
			||||||
 | 
					      workingDirectory: '$(System.DefaultWorkingDirectory)'
 | 
				
			||||||
 | 
					  - task: PythonScript@0
 | 
				
			||||||
 | 
					    displayName: 'Discover, Download, and Apply Patches (Patreon Private)'
 | 
				
			||||||
 | 
					    inputs:
 | 
				
			||||||
 | 
					      scriptSource: 'filePath'
 | 
				
			||||||
 | 
					      scriptPath: '.ci/scripts/merge/apply-patches-by-label-private.py'
 | 
				
			||||||
 | 
					      arguments: '$(PrivateMergeUser) ${{ parameters.matchLabel }} "$(MergeTaglinePrivate) Private" patches-private'
 | 
				
			||||||
 | 
					      workingDirectory: '$(System.DefaultWorkingDirectory)'
 | 
				
			||||||
							
								
								
									
										18
									
								
								.ci/templates/mergebot.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								.ci/templates/mergebot.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					parameters:
 | 
				
			||||||
 | 
					  matchLabel: 'dummy-merge'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					  - script: mkdir $(System.DefaultWorkingDirectory)/patches && pip install requests urllib3
 | 
				
			||||||
 | 
					    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
 | 
				
			||||||
 | 
					    displayName: 'Apply Git Configuration'
 | 
				
			||||||
 | 
					  - task: PythonScript@0
 | 
				
			||||||
 | 
					    displayName: 'Discover, Download, and Apply Patches'
 | 
				
			||||||
 | 
					    inputs:
 | 
				
			||||||
 | 
					      scriptSource: 'filePath'
 | 
				
			||||||
 | 
					      scriptPath: '.ci/scripts/merge/apply-patches-by-label.py'
 | 
				
			||||||
 | 
					      arguments: '${{ parameters.matchLabel }} Tagged patches'
 | 
				
			||||||
 | 
					      workingDirectory: '$(System.DefaultWorkingDirectory)'
 | 
				
			||||||
							
								
								
									
										16
									
								
								.ci/templates/release-download.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								.ci/templates/release-download.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					  - task: DownloadPipelineArtifact@2
 | 
				
			||||||
 | 
					    displayName: 'Download Windows Release'
 | 
				
			||||||
 | 
					    inputs:
 | 
				
			||||||
 | 
					      artifactName: 'yuzu-$(BuildName)-windows-msvc'
 | 
				
			||||||
 | 
					      buildType: 'current'
 | 
				
			||||||
 | 
					      targetPath: '$(Build.ArtifactStagingDirectory)'
 | 
				
			||||||
 | 
					  - task: DownloadPipelineArtifact@2
 | 
				
			||||||
 | 
					    displayName: 'Download Linux Release'
 | 
				
			||||||
 | 
					    inputs:
 | 
				
			||||||
 | 
					      artifactName: 'yuzu-$(BuildName)-linux'
 | 
				
			||||||
 | 
					      buildType: 'current'
 | 
				
			||||||
 | 
					      targetPath: '$(Build.ArtifactStagingDirectory)'
 | 
				
			||||||
							
								
								
									
										16
									
								
								.ci/templates/release-github.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								.ci/templates/release-github.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					  - template: ./release-download.yml
 | 
				
			||||||
 | 
					  - task: GitHubRelease@0
 | 
				
			||||||
 | 
					    displayName: 'GitHub Release'
 | 
				
			||||||
 | 
					    inputs:
 | 
				
			||||||
 | 
					      action: 'create'
 | 
				
			||||||
 | 
					      title: '$(ReleasePrefix) $(DisplayVersion)'
 | 
				
			||||||
 | 
					      assets: '$(Build.ArtifactStagingDirectory)/*'
 | 
				
			||||||
 | 
					      gitHubConnection: $(GitHubReleaseConnectionName)
 | 
				
			||||||
 | 
					      repositoryName: '$(Build.Repository.Name)'
 | 
				
			||||||
 | 
					      target: '$(Build.SourceVersion)'
 | 
				
			||||||
 | 
					      tagSource: manual
 | 
				
			||||||
 | 
					      tag: $(BuildName)-$(DisplayPrefix)-$(DisplayVersion)
 | 
				
			||||||
							
								
								
									
										12
									
								
								.ci/templates/release-private-tag.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								.ci/templates/release-private-tag.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					  - script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh
 | 
				
			||||||
 | 
					    displayName: 'Apply Git Configuration'
 | 
				
			||||||
 | 
					  - script: git tag -a $(BuildName)-$(DisplayPrefix)-$(DisplayVersion) -m "yuzu $(BuildName) $(Build.BuildNumber) $(Build.DefinitionName) $(DisplayPrefix)-$(DisplayVersion)"
 | 
				
			||||||
 | 
					    displayName: 'Tag Source'
 | 
				
			||||||
 | 
					  - script: git remote add other $(GitRepoPushChangesURL)
 | 
				
			||||||
 | 
					    displayName: 'Register Repository'
 | 
				
			||||||
 | 
					  - script: git push other $(BuildName)-$(DisplayPrefix)-$(DisplayVersion)
 | 
				
			||||||
 | 
					    displayName: 'Update Code'
 | 
				
			||||||
							
								
								
									
										13
									
								
								.ci/templates/release-universal.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.ci/templates/release-universal.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					  - template: ./release-download.yml
 | 
				
			||||||
 | 
					  - task: UniversalPackages@0
 | 
				
			||||||
 | 
					    displayName: Publish Artifacts
 | 
				
			||||||
 | 
					    inputs:
 | 
				
			||||||
 | 
					      command: publish
 | 
				
			||||||
 | 
					      publishDirectory: '$(Build.ArtifactStagingDirectory)'
 | 
				
			||||||
 | 
					      vstsFeedPublish: 'yuzu-$(BuildName)'
 | 
				
			||||||
 | 
					      vstsFeedPackagePublish: 'main'
 | 
				
			||||||
 | 
					      packagePublishDescription: 'Yuzu Windows and Linux Executable Packages'
 | 
				
			||||||
							
								
								
									
										19
									
								
								.ci/templates/retrieve-artifact-source.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								.ci/templates/retrieve-artifact-source.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					- checkout: none
 | 
				
			||||||
 | 
					- task: DownloadPipelineArtifact@2
 | 
				
			||||||
 | 
					  displayName: 'Download Source'
 | 
				
			||||||
 | 
					  inputs:
 | 
				
			||||||
 | 
					    artifactName: 'yuzu-$(BuildName)-source'
 | 
				
			||||||
 | 
					    buildType: 'current'
 | 
				
			||||||
 | 
					    targetPath: '$(Build.ArtifactStagingDirectory)'
 | 
				
			||||||
 | 
					- script: rm -rf $(System.DefaultWorkingDirectory) && mkdir $(System.DefaultWorkingDirectory)
 | 
				
			||||||
 | 
					  displayName: 'Clean Working Directory'
 | 
				
			||||||
 | 
					- task: ExtractFiles@1
 | 
				
			||||||
 | 
					  displayName: 'Prepare Source'
 | 
				
			||||||
 | 
					  inputs:
 | 
				
			||||||
 | 
					    archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/*.7z'
 | 
				
			||||||
 | 
					    destinationFolder: '$(System.DefaultWorkingDirectory)'
 | 
				
			||||||
 | 
					    cleanDestinationFolder: false
 | 
				
			||||||
							
								
								
									
										14
									
								
								.ci/templates/retrieve-master-source.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								.ci/templates/retrieve-master-source.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					parameters:
 | 
				
			||||||
 | 
					  needSubmodules: 'true'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					- checkout: self
 | 
				
			||||||
 | 
					  displayName: 'Checkout Recursive'
 | 
				
			||||||
 | 
					  submodules: recursive
 | 
				
			||||||
 | 
					#  condition: eq(parameters.needSubmodules, 'true')
 | 
				
			||||||
 | 
					#- checkout: self
 | 
				
			||||||
 | 
					#  displayName: 'Checkout Fast'
 | 
				
			||||||
 | 
					#  condition: ne(parameters.needSubmodules, 'true')
 | 
				
			||||||
							
								
								
									
										10
									
								
								.ci/templates/sync-source.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.ci/templates/sync-source.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					- ${{ if eq(parameters.artifactSource, 'true') }}:
 | 
				
			||||||
 | 
					  - template: ./retrieve-artifact-source.yml
 | 
				
			||||||
 | 
					- ${{ if ne(parameters.artifactSource, 'true') }}:
 | 
				
			||||||
 | 
					  - template: ./retrieve-master-source.yml
 | 
				
			||||||
 | 
					    parameters:
 | 
				
			||||||
 | 
					      needSubmodules: $(parameters.needSubmodules)
 | 
				
			||||||
							
								
								
									
										14
									
								
								.ci/yuzu-mainline-step1.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								.ci/yuzu-mainline-step1.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					# 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.yml
 | 
				
			||||||
							
								
								
									
										64
									
								
								.ci/yuzu-mainline-step2.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								.ci/yuzu-mainline-step2.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
				
			|||||||
 | 
					# 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: build
 | 
				
			||||||
 | 
					    timeoutInMinutes: 120
 | 
				
			||||||
 | 
					    displayName: 'standard'
 | 
				
			||||||
 | 
					    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: 'true'
 | 
				
			||||||
 | 
					        version: $(DisplayVersion)
 | 
				
			||||||
 | 
					- stage: build_win
 | 
				
			||||||
 | 
					  displayName: 'build-windows'
 | 
				
			||||||
 | 
					  jobs:
 | 
				
			||||||
 | 
					  - job: build
 | 
				
			||||||
 | 
					    timeoutInMinutes: 120
 | 
				
			||||||
 | 
					    displayName: 'msvc'
 | 
				
			||||||
 | 
					    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: 'true'
 | 
				
			||||||
 | 
					        version: $(DisplayVersion)
 | 
				
			||||||
 | 
					- stage: release
 | 
				
			||||||
 | 
					  displayName: 'release'
 | 
				
			||||||
 | 
					  dependsOn:
 | 
				
			||||||
 | 
					  - build
 | 
				
			||||||
 | 
					  - build_win
 | 
				
			||||||
 | 
					  jobs:
 | 
				
			||||||
 | 
					  - job: github
 | 
				
			||||||
 | 
					    displayName: 'github'
 | 
				
			||||||
 | 
					    pool:
 | 
				
			||||||
 | 
					      vmImage: ubuntu-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					    - template: ./templates/release-github.yml
 | 
				
			||||||
							
								
								
									
										14
									
								
								.ci/yuzu-patreon-step1.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								.ci/yuzu-patreon-step1.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					# 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
 | 
				
			||||||
							
								
								
									
										59
									
								
								.ci/yuzu-patreon-step2.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								.ci/yuzu-patreon-step2.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
				
			|||||||
 | 
					# 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
 | 
				
			||||||
							
								
								
									
										22
									
								
								.ci/yuzu-repo-sync.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								.ci/yuzu-repo-sync.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					trigger:
 | 
				
			||||||
 | 
					- master
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					- job: copy
 | 
				
			||||||
 | 
					  displayName: 'Sync Repository'
 | 
				
			||||||
 | 
					  pool:
 | 
				
			||||||
 | 
					    vmImage: 'ubuntu-latest'
 | 
				
			||||||
 | 
					  steps:
 | 
				
			||||||
 | 
					  - script: echo 'https://$(GitUsername):$(GitAccessToken)@dev.azure.com' > $HOME/.git-credentials
 | 
				
			||||||
 | 
					    displayName: 'Load Credentials'
 | 
				
			||||||
 | 
					  - script: git config --global credential.helper store
 | 
				
			||||||
 | 
					    displayName: 'Register Credential Helper'
 | 
				
			||||||
 | 
					  - script: git remote add other $(GitRepoPushChangesURL)
 | 
				
			||||||
 | 
					    displayName: 'Register Repository'
 | 
				
			||||||
 | 
					  - script: git push --force other HEAD:$(GitPushBranch)
 | 
				
			||||||
 | 
					    displayName: 'Update Code'
 | 
				
			||||||
 | 
					  - script: rm -rf $HOME/.git-credentials
 | 
				
			||||||
 | 
					    displayName: 'Clear Cached Credentials'
 | 
				
			||||||
							
								
								
									
										23
									
								
								.ci/yuzu-verify.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								.ci/yuzu-verify.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					stages:
 | 
				
			||||||
 | 
					- stage: format
 | 
				
			||||||
 | 
					  displayName: 'format'
 | 
				
			||||||
 | 
					  jobs:
 | 
				
			||||||
 | 
					  - job: format
 | 
				
			||||||
 | 
					    displayName: 'clang'
 | 
				
			||||||
 | 
					    pool:
 | 
				
			||||||
 | 
					      vmImage: ubuntu-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					    - template: ./templates/format-check.yml
 | 
				
			||||||
 | 
					      parameters:
 | 
				
			||||||
 | 
					        artifactSource: 'false'
 | 
				
			||||||
 | 
					- stage: build
 | 
				
			||||||
 | 
					  displayName: 'build'
 | 
				
			||||||
 | 
					  dependsOn: format
 | 
				
			||||||
 | 
					  jobs:
 | 
				
			||||||
 | 
					  - template: ./templates/build-standard.yml
 | 
				
			||||||
 | 
					    parameters:
 | 
				
			||||||
 | 
					      cache: 'false'
 | 
				
			||||||
 | 
					  - template: ./templates/build-testing.yml
 | 
				
			||||||
							
								
								
									
										6
									
								
								.codespellrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.codespellrc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					; SPDX-FileCopyrightText: 2023 yuzu Emulator Project
 | 
				
			||||||
 | 
					; SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[codespell]
 | 
				
			||||||
 | 
					skip = ./.git,./build,./dist,./Doxyfile,./externals,./LICENSES,./src/android/app/src/main/res
 | 
				
			||||||
 | 
					ignore-words-list = aci,allright,ba,canonicalizations,deques,fpr,froms,hda,inout,lod,masia,nam,nax,nce,nd,optin,pullrequests,pullrequest,te,transfered,unstall,uscaled,vas,zink
 | 
				
			||||||
							
								
								
									
										5
									
								
								.git-blame-ignore-revs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.git-blame-ignore-revs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# CRLF -> LF
 | 
				
			||||||
 | 
					90aa937593e53a5d5e070fb623b228578b0b225f
 | 
				
			||||||
							
								
								
									
										7
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dist/languages/* linguist-vendored
 | 
				
			||||||
 | 
					dist/qt_themes/* linguist-vendored
 | 
				
			||||||
 | 
					externals/* linguist-vendored
 | 
				
			||||||
 | 
					*.h linguist-language=cpp
 | 
				
			||||||
							
								
								
									
										38
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2013 Citra Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build directory
 | 
				
			||||||
 | 
					[Bb]uild*/
 | 
				
			||||||
 | 
					doc-build/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generated source files
 | 
				
			||||||
 | 
					src/common/scm_rev.cpp
 | 
				
			||||||
 | 
					dist/english_plurals/generated_en.ts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Project/editor files
 | 
				
			||||||
 | 
					*.swp
 | 
				
			||||||
 | 
					.idea/
 | 
				
			||||||
 | 
					.vs/
 | 
				
			||||||
 | 
					.vscode/
 | 
				
			||||||
 | 
					CMakeLists.txt.user*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# *nix related
 | 
				
			||||||
 | 
					# Common convention for backup or temporary files
 | 
				
			||||||
 | 
					*~
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Visual Studio CMake settings
 | 
				
			||||||
 | 
					CMakeSettings.json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# OSX global filetypes
 | 
				
			||||||
 | 
					# Created by Finder or Spotlight in directories for various OS functionality (indexing, etc)
 | 
				
			||||||
 | 
					.DS_Store
 | 
				
			||||||
 | 
					.DS_Store?
 | 
				
			||||||
 | 
					._*
 | 
				
			||||||
 | 
					.AppleDouble
 | 
				
			||||||
 | 
					.LSOverride
 | 
				
			||||||
 | 
					.Spotlight-V100
 | 
				
			||||||
 | 
					.Trashes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Windows global filetypes
 | 
				
			||||||
 | 
					Thumbs.db
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										69
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
				
			|||||||
 | 
					# SPDX-FileCopyrightText: 2014 Citra Emulator Project
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[submodule "enet"]
 | 
				
			||||||
 | 
						path = externals/enet
 | 
				
			||||||
 | 
						url = https://github.com/lsalzman/enet.git
 | 
				
			||||||
 | 
					[submodule "cubeb"]
 | 
				
			||||||
 | 
						path = externals/cubeb
 | 
				
			||||||
 | 
						url = https://github.com/mozilla/cubeb.git
 | 
				
			||||||
 | 
					[submodule "dynarmic"]
 | 
				
			||||||
 | 
						path = externals/dynarmic
 | 
				
			||||||
 | 
						url = https://github.com/merryhime/dynarmic.git
 | 
				
			||||||
 | 
					[submodule "libusb"]
 | 
				
			||||||
 | 
						path = externals/libusb/libusb
 | 
				
			||||||
 | 
						url = https://github.com/libusb/libusb.git
 | 
				
			||||||
 | 
					[submodule "discord-rpc"]
 | 
				
			||||||
 | 
						path = externals/discord-rpc
 | 
				
			||||||
 | 
						url = https://github.com/yuzu-emu/discord-rpc.git
 | 
				
			||||||
 | 
					[submodule "Vulkan-Headers"]
 | 
				
			||||||
 | 
						path = externals/Vulkan-Headers
 | 
				
			||||||
 | 
						url = https://github.com/KhronosGroup/Vulkan-Headers.git
 | 
				
			||||||
 | 
					[submodule "sirit"]
 | 
				
			||||||
 | 
						path = externals/sirit
 | 
				
			||||||
 | 
						url = https://github.com/yuzu-emu/sirit.git
 | 
				
			||||||
 | 
					[submodule "mbedtls"]
 | 
				
			||||||
 | 
						path = externals/mbedtls
 | 
				
			||||||
 | 
						url = https://github.com/yuzu-emu/mbedtls.git
 | 
				
			||||||
 | 
					[submodule "xbyak"]
 | 
				
			||||||
 | 
						path = externals/xbyak
 | 
				
			||||||
 | 
						url = https://github.com/herumi/xbyak.git
 | 
				
			||||||
 | 
					[submodule "opus"]
 | 
				
			||||||
 | 
						path = externals/opus
 | 
				
			||||||
 | 
						url = https://github.com/xiph/opus.git
 | 
				
			||||||
 | 
					[submodule "SDL"]
 | 
				
			||||||
 | 
						path = externals/SDL
 | 
				
			||||||
 | 
						url = https://github.com/libsdl-org/SDL.git
 | 
				
			||||||
 | 
					[submodule "cpp-httplib"]
 | 
				
			||||||
 | 
						path = externals/cpp-httplib
 | 
				
			||||||
 | 
						url = https://github.com/yhirose/cpp-httplib.git
 | 
				
			||||||
 | 
					[submodule "ffmpeg"]
 | 
				
			||||||
 | 
						path = externals/ffmpeg/ffmpeg
 | 
				
			||||||
 | 
						url = https://github.com/FFmpeg/FFmpeg.git
 | 
				
			||||||
 | 
					[submodule "vcpkg"]
 | 
				
			||||||
 | 
						path = externals/vcpkg
 | 
				
			||||||
 | 
						url = https://github.com/microsoft/vcpkg.git
 | 
				
			||||||
 | 
					[submodule "cpp-jwt"]
 | 
				
			||||||
 | 
						path = externals/cpp-jwt
 | 
				
			||||||
 | 
						url = https://github.com/arun11299/cpp-jwt.git
 | 
				
			||||||
 | 
					[submodule "libadrenotools"]
 | 
				
			||||||
 | 
						path = externals/libadrenotools
 | 
				
			||||||
 | 
						url = https://github.com/bylaws/libadrenotools.git
 | 
				
			||||||
 | 
					[submodule "tzdb_to_nx"]
 | 
				
			||||||
 | 
						path = externals/nx_tzdb/tzdb_to_nx
 | 
				
			||||||
 | 
						url = https://github.com/lat9nq/tzdb_to_nx.git
 | 
				
			||||||
 | 
					[submodule "VulkanMemoryAllocator"]
 | 
				
			||||||
 | 
						path = externals/VulkanMemoryAllocator
 | 
				
			||||||
 | 
						url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
 | 
				
			||||||
 | 
					[submodule "breakpad"]
 | 
				
			||||||
 | 
						path = externals/breakpad
 | 
				
			||||||
 | 
						url = https://github.com/yuzu-emu/breakpad.git
 | 
				
			||||||
 | 
					[submodule "simpleini"]
 | 
				
			||||||
 | 
						path = externals/simpleini
 | 
				
			||||||
 | 
						url = https://github.com/brofield/simpleini.git
 | 
				
			||||||
 | 
					[submodule "oaknut"]
 | 
				
			||||||
 | 
						path = externals/oaknut
 | 
				
			||||||
 | 
						url = https://github.com/merryhime/oaknut
 | 
				
			||||||
 | 
					[submodule "Vulkan-Utility-Libraries"]
 | 
				
			||||||
 | 
						path = externals/Vulkan-Utility-Libraries
 | 
				
			||||||
 | 
						url = https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git
 | 
				
			||||||
							
								
								
									
										161
									
								
								.reuse/dep5
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										161
									
								
								.reuse/dep5
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,161 @@
 | 
				
			|||||||
 | 
					Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 | 
				
			||||||
 | 
					Comment: It is best to use this file to record copyright information about
 | 
				
			||||||
 | 
					         generated, binary and third party files
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: dist/english_plurals/*
 | 
				
			||||||
 | 
					       dist/icons/controller/*.png
 | 
				
			||||||
 | 
					       dist/icons/overlay/*.png
 | 
				
			||||||
 | 
					       dist/languages/*
 | 
				
			||||||
 | 
					       dist/qt_themes/*/icons/48x48/sd_card.png
 | 
				
			||||||
 | 
					       dist/qt_themes/*/icons/index.theme
 | 
				
			||||||
 | 
					       dist/qt_themes/default/style.qss
 | 
				
			||||||
 | 
					Copyright: yuzu Emulator Project
 | 
				
			||||||
 | 
					License: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: dist/qt_themes/default/icons/256x256/yuzu.png
 | 
				
			||||||
 | 
					       dist/yuzu.bmp
 | 
				
			||||||
 | 
					       dist/yuzu.icns
 | 
				
			||||||
 | 
					       dist/yuzu.ico
 | 
				
			||||||
 | 
					       dist/yuzu.svg
 | 
				
			||||||
 | 
					Copyright: yuzu Emulator Project
 | 
				
			||||||
 | 
					License: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: dist/qt_themes/qdarkstyle*/LICENSE.*
 | 
				
			||||||
 | 
					       dist/qt_themes/qdarkstyle*/style.qrc
 | 
				
			||||||
 | 
					       dist/qt_themes/qdarkstyle*/style.qss
 | 
				
			||||||
 | 
					Copyright: 2013 Colin Duquesnoy
 | 
				
			||||||
 | 
					           2019 Daniel Cosmo Pizetta
 | 
				
			||||||
 | 
					License: MIT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: dist/qt_themes/qdarkstyle*/rc/*
 | 
				
			||||||
 | 
					Copyright: 2013 Colin Duquesnoy
 | 
				
			||||||
 | 
					           2019 Daniel Cosmo Pizetta
 | 
				
			||||||
 | 
					License: CC-BY-4.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: dist/qt_themes/default/icons/256x256/plus_folder.png
 | 
				
			||||||
 | 
					       dist/qt_themes/default/icons/48x48/bad_folder.png
 | 
				
			||||||
 | 
					       dist/qt_themes/default/icons/48x48/chip.png
 | 
				
			||||||
 | 
					       dist/qt_themes/default/icons/48x48/folder.png
 | 
				
			||||||
 | 
					       dist/qt_themes/default/icons/48x48/star.png
 | 
				
			||||||
 | 
					       dist/qt_themes/qdarkstyle/icons/256x256/plus_folder.png
 | 
				
			||||||
 | 
					       dist/qt_themes/qdarkstyle/icons/48x48/bad_folder.png
 | 
				
			||||||
 | 
					       dist/qt_themes/qdarkstyle/icons/48x48/chip.png
 | 
				
			||||||
 | 
					       dist/qt_themes/qdarkstyle/icons/48x48/folder.png
 | 
				
			||||||
 | 
					       dist/qt_themes/qdarkstyle/icons/48x48/star.png
 | 
				
			||||||
 | 
					Copyright: Refactoring UI Inc.
 | 
				
			||||||
 | 
					License: MIT
 | 
				
			||||||
 | 
					Comment: https://github.com/tailwindlabs/heroicons
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: dist/qt_themes/colorful/icons/16x16/lock.png
 | 
				
			||||||
 | 
					       dist/qt_themes/colorful/icons/256x256/plus_folder.png
 | 
				
			||||||
 | 
					       dist/qt_themes/colorful/icons/48x48/bad_folder.png
 | 
				
			||||||
 | 
					       dist/qt_themes/colorful/icons/48x48/chip.png
 | 
				
			||||||
 | 
					       dist/qt_themes/colorful/icons/48x48/folder.png
 | 
				
			||||||
 | 
					       dist/qt_themes/colorful_dark/icons/16x16/lock.png
 | 
				
			||||||
 | 
					       dist/qt_themes/colorful/icons/16x16/info.png
 | 
				
			||||||
 | 
					       dist/qt_themes/colorful/icons/16x16/sync.png
 | 
				
			||||||
 | 
					Copyright: Icons8
 | 
				
			||||||
 | 
					License: MIT
 | 
				
			||||||
 | 
					Comment: https://github.com/icons8/flat-color-icons
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: dist/qt_themes/*/icons/16x16/connected.png
 | 
				
			||||||
 | 
					       dist/qt_themes/*/icons/16x16/connected_notification.png
 | 
				
			||||||
 | 
					       dist/qt_themes/*/icons/16x16/disconnected.png
 | 
				
			||||||
 | 
					Copyright: GNOME Project
 | 
				
			||||||
 | 
					License: CC-BY-SA-3.0
 | 
				
			||||||
 | 
					Comment: connected_notification and disconnected are modified
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: dist/qt_themes/*/icons/48x48/no_avatar.png
 | 
				
			||||||
 | 
					Copyright: Ionic (http://ionic.io/)
 | 
				
			||||||
 | 
					License: MIT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: dist/qt_themes/colorful/icons/48x48/star.png
 | 
				
			||||||
 | 
					       dist/qt_themes/colorful/icons/16x16/checked.png
 | 
				
			||||||
 | 
					       dist/qt_themes/colorful/icons/16x16/failed.png
 | 
				
			||||||
 | 
					Copyright: SVG Repo
 | 
				
			||||||
 | 
					License: CC0-1.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: dist/qt_themes/*/icons/16x16/view-refresh.png
 | 
				
			||||||
 | 
					       dist/qt_themes/default/icons/16x16/lock.png
 | 
				
			||||||
 | 
					       dist/qt_themes/qdarkstyle/icons/16x16/lock.png
 | 
				
			||||||
 | 
					Copyright: Google, Inc.
 | 
				
			||||||
 | 
					License: Apache-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: dist/qt_themes/*/icons/48x48/list-add.png
 | 
				
			||||||
 | 
					Copyright: Docteh
 | 
				
			||||||
 | 
					License: CC0-1.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: externals/getopt/getopt.c
 | 
				
			||||||
 | 
					       externals/getopt/getopt.h
 | 
				
			||||||
 | 
					Copyright: 2011 Ludvik Jerabek
 | 
				
			||||||
 | 
					License: LGPL-3.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: externals/glad/include/glad/glad.h
 | 
				
			||||||
 | 
					       externals/glad/src/glad.c
 | 
				
			||||||
 | 
					Copyright: The Khronos Group Inc.
 | 
				
			||||||
 | 
					License: (WTFPL OR CC0-1.0) AND Apache-2.0
 | 
				
			||||||
 | 
					Comment: https://github.com/Dav1dde/glad/issues/365#issuecomment-1138419515
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: externals/glad/include/KHR/khrplatform.h
 | 
				
			||||||
 | 
					Copyright: 2008-2018 The Khronos Group Inc.
 | 
				
			||||||
 | 
					License: MIT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: externals/microprofile/*
 | 
				
			||||||
 | 
					Copyright: Jonas Meyer
 | 
				
			||||||
 | 
					License: Unlicense
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: externals/FidelityFX-FSR/*
 | 
				
			||||||
 | 
					Copyright: 2021 Advanced Micro Devices, Inc.
 | 
				
			||||||
 | 
					License: MIT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: src/yuzu/*.ui
 | 
				
			||||||
 | 
					Copyright: 2018-2022 yuzu Emulator Project
 | 
				
			||||||
 | 
					License: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: src/yuzu/compatdb.ui
 | 
				
			||||||
 | 
					       src/yuzu/main.ui
 | 
				
			||||||
 | 
					Copyright: 2014-2017 Citra Emulator Project
 | 
				
			||||||
 | 
					License: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: src/yuzu/loading_screen.ui
 | 
				
			||||||
 | 
					Copyright: 2019 James Rowe <jroweboy@gmail.com>
 | 
				
			||||||
 | 
					License: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: src/yuzu/applets/aboutdialog.ui
 | 
				
			||||||
 | 
					       src/yuzu/applets/qt_software_keyboard.ui
 | 
				
			||||||
 | 
					       src/yuzu/util/overlay_dialog.ui
 | 
				
			||||||
 | 
					Copyright: 2020-2021 Its-Rei <kupfel@gmail.com>
 | 
				
			||||||
 | 
					           2020-2021 yuzu Emulator Project
 | 
				
			||||||
 | 
					License: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: vcpkg.json
 | 
				
			||||||
 | 
					Copyright: 2022 yuzu Emulator Project
 | 
				
			||||||
 | 
					License: GPL-3.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: .github/ISSUE_TEMPLATE/*
 | 
				
			||||||
 | 
					Copyright: 2022 yuzu Emulator Project
 | 
				
			||||||
 | 
					License: GPL-2.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: src/android/app/src/ea/res/*
 | 
				
			||||||
 | 
					Copyright: 2023 yuzu Emulator Project
 | 
				
			||||||
 | 
					License: GPL-3.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: src/android/app/src/main/res/*
 | 
				
			||||||
 | 
					Copyright: 2023 yuzu Emulator Project
 | 
				
			||||||
 | 
					License: GPL-3.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: src/android/gradle/wrapper/*
 | 
				
			||||||
 | 
					Copyright: 2023 yuzu Emulator Project
 | 
				
			||||||
 | 
					License: GPL-3.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: externals/stb/*
 | 
				
			||||||
 | 
					Copyright: Sean Barrett
 | 
				
			||||||
 | 
					License: MIT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: externals/gamemode/*
 | 
				
			||||||
 | 
					Copyright: Copyright 2017-2019 Feral Interactive
 | 
				
			||||||
 | 
					License: BSD-3-Clause
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files: src/android/app/debug.keystore
 | 
				
			||||||
 | 
					Copyright: 2023 yuzu Emulator Project
 | 
				
			||||||
 | 
					License: GPL-3.0-or-later
 | 
				
			||||||
		Reference in New Issue
	
	Block a user