summaryrefslogtreecommitdiffstats
path: root/.ci
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-x.ci/scripts/clang/docker.sh21
-rw-r--r--.ci/scripts/clang/exec.sh5
-rwxr-xr-x[-rw-r--r--].ci/scripts/clang/upload.sh3
-rw-r--r--.ci/scripts/common/post-upload.sh13
-rw-r--r--.ci/scripts/common/pre-upload.sh3
-rw-r--r--.ci/scripts/format/docker.sh3
-rw-r--r--.ci/scripts/format/exec.sh5
-rw-r--r--.ci/scripts/format/script.sh3
-rwxr-xr-x.ci/scripts/linux/docker.sh15
-rw-r--r--.ci/scripts/linux/exec.sh10
-rwxr-xr-x[-rw-r--r--].ci/scripts/linux/upload.sh8
-rw-r--r--.ci/scripts/merge/apply-patches-by-label-private.py3
-rw-r--r--.ci/scripts/merge/apply-patches-by-label.py3
-rw-r--r--.ci/scripts/merge/check-label-presence.py3
-rw-r--r--.ci/scripts/merge/yuzubot-git-config.sh3
-rwxr-xr-x.ci/scripts/transifex/docker.sh8
-rwxr-xr-x.ci/scripts/windows/docker.sh33
-rw-r--r--.ci/scripts/windows/exec.sh5
-rw-r--r--.ci/scripts/windows/scan_dll.py3
-rw-r--r--.ci/scripts/windows/upload.ps164
-rwxr-xr-x[-rw-r--r--].ci/scripts/windows/upload.sh3
-rw-r--r--.ci/templates/build-mock.yml3
-rw-r--r--.ci/templates/build-msvc.yml7
-rw-r--r--.ci/templates/build-single.yml3
-rw-r--r--.ci/templates/build-standard.yml3
-rw-r--r--.ci/templates/build-testing.yml3
-rw-r--r--.ci/templates/format-check.yml3
-rw-r--r--.ci/templates/merge-private.yml3
-rw-r--r--.ci/templates/merge.yml3
-rw-r--r--.ci/templates/mergebot-private.yml3
-rw-r--r--.ci/templates/mergebot.yml3
-rw-r--r--.ci/templates/release-download.yml3
-rw-r--r--.ci/templates/release-github.yml3
-rw-r--r--.ci/templates/release-private-tag.yml3
-rw-r--r--.ci/templates/release-universal.yml3
-rw-r--r--.ci/templates/retrieve-artifact-source.yml3
-rw-r--r--.ci/templates/retrieve-master-source.yml3
-rw-r--r--.ci/templates/sync-source.yml3
-rw-r--r--.ci/yuzu-mainline-step1.yml3
-rw-r--r--.ci/yuzu-mainline-step2.yml5
-rw-r--r--.ci/yuzu-patreon-step1.yml3
-rw-r--r--.ci/yuzu-patreon-step2.yml5
-rw-r--r--.ci/yuzu-repo-sync.yml3
-rw-r--r--.ci/yuzu-verify.yml3
44 files changed, 257 insertions, 37 deletions
diff --git a/.ci/scripts/clang/docker.sh b/.ci/scripts/clang/docker.sh
index 885d74e97..792ef4aa8 100755
--- a/.ci/scripts/clang/docker.sh
+++ b/.ci/scripts/clang/docker.sh
@@ -1,16 +1,27 @@
#!/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
-cd /yuzu
-
ccache -s
mkdir build || true && cd build
-cmake .. -DDISPLAY_VERSION=$1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/lib/ccache/clang -DCMAKE_CXX_COMPILER=/usr/lib/ccache/clang++ -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DCMAKE_INSTALL_PREFIX="/usr"
-
-make -j$(nproc)
+cmake .. \
+ -DCMAKE_BUILD_TYPE=Release \
+ -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_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \
+ -GNinja
+
+ninja
ccache -s
diff --git a/.ci/scripts/clang/exec.sh b/.ci/scripts/clang/exec.sh
index e56cd4325..664fce5f8 100644
--- a/.ci/scripts/clang/exec.sh
+++ b/.ci/scripts/clang/exec.sh
@@ -1,8 +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 yuzuemu/build-environments:linux-fresh /bin/bash /yuzu/.ci/scripts/clang/docker.sh $1
+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 ./
diff --git a/.ci/scripts/clang/upload.sh b/.ci/scripts/clang/upload.sh
index fe4e6b2ac..0b4b3e330 100644..100755
--- a/.ci/scripts/clang/upload.sh
+++ b/.ci/scripts/clang/upload.sh
@@ -1,5 +1,8 @@
#!/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}"
diff --git a/.ci/scripts/common/post-upload.sh b/.ci/scripts/common/post-upload.sh
index 387431564..0930b7a7b 100644
--- a/.ci/scripts/common/post-upload.sh
+++ b/.ci/scripts/common/post-upload.sh
@@ -1,11 +1,18 @@
#!/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 LICENSE.txt "$DIR_NAME"
cp README.md "$DIR_NAME"
-tar -cJvf "${REV_NAME}-source.tar.xz" src externals CMakeLists.txt README.md license.txt
-cp "${REV_NAME}-source.tar.xz" "$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"
diff --git a/.ci/scripts/common/pre-upload.sh b/.ci/scripts/common/pre-upload.sh
index a49e3fff3..705362a3c 100644
--- a/.ci/scripts/common/pre-upload.sh
+++ b/.ci/scripts/common/pre-upload.sh
@@ -1,5 +1,8 @@
#!/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="artifacts"
diff --git a/.ci/scripts/format/docker.sh b/.ci/scripts/format/docker.sh
index 778411e4a..a0f7a61cc 100644
--- a/.ci/scripts/format/docker.sh
+++ b/.ci/scripts/format/docker.sh
@@ -1,5 +1,8 @@
#!/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
diff --git a/.ci/scripts/format/exec.sh b/.ci/scripts/format/exec.sh
index e9e9d2e17..40ab41abd 100644
--- a/.ci/scripts/format/exec.sh
+++ b/.ci/scripts/format/exec.sh
@@ -1,7 +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 yuzuemu/build-environments:linux-clang-format /bin/bash -ex /yuzu/.ci/scripts/format/docker.sh
+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 ./
diff --git a/.ci/scripts/format/script.sh b/.ci/scripts/format/script.sh
index c2550c966..119abae6a 100644
--- a/.ci/scripts/format/script.sh
+++ b/.ci/scripts/format/script.sh
@@ -1,5 +1,8 @@
#!/bin/bash -ex
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
if grep -nrI '\s$' src *.yml *.txt *.md Doxyfile .gitignore .gitmodules .ci* dist/*.desktop \
dist/*.svg dist/*.xml; then
echo Trailing whitespace found, aborting
diff --git a/.ci/scripts/linux/docker.sh b/.ci/scripts/linux/docker.sh
index 5070b92d1..b9862d1c2 100755
--- a/.ci/scripts/linux/docker.sh
+++ b/.ci/scripts/linux/docker.sh
@@ -1,10 +1,11 @@
#!/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
-cd /yuzu
-
ccache -s
mkdir build || true && cd build
@@ -19,15 +20,16 @@ cmake .. \
-DENABLE_QT_TRANSLATION=ON \
-DUSE_DISCORD_PRESENCE=ON \
-DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \
- -DYUZU_USE_BUNDLED_FFMPEG=ON
+ -DYUZU_USE_BUNDLED_FFMPEG=ON \
+ -GNinja
-make -j$(nproc)
+ninja
ccache -s
ctest -VV -C Release
-make install DESTDIR=AppDir
+DESTDIR="$PWD/AppDir" ninja install
rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester
# Download tools needed to build an AppImage
@@ -52,6 +54,9 @@ mkdir -p AppDir/usr/optional/libgcc_s
# Deploy yuzu's needed dependencies
./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt
+# 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
diff --git a/.ci/scripts/linux/exec.sh b/.ci/scripts/linux/exec.sh
index a7deddeb3..fa3d78cc2 100644
--- a/.ci/scripts/linux/exec.sh
+++ b/.ci/scripts/linux/exec.sh
@@ -1,8 +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 ./
-docker run -e ENABLE_COMPATIBILITY_REPORTING -e CCACHE_DIR=/yuzu/ccache -v $(pwd):/yuzu yuzuemu/build-environments:linux-fresh /bin/bash /yuzu/.ci/scripts/linux/docker.sh $1
+
+# 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 ./
diff --git a/.ci/scripts/linux/upload.sh b/.ci/scripts/linux/upload.sh
index 208cd0d04..8173c5728 100644..100755
--- a/.ci/scripts/linux/upload.sh
+++ b/.ci/scripts/linux/upload.sh
@@ -1,5 +1,8 @@
#!/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-${GITDATE}-${GITREV}.AppImage"
@@ -24,6 +27,11 @@ 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
+
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}"
diff --git a/.ci/scripts/merge/apply-patches-by-label-private.py b/.ci/scripts/merge/apply-patches-by-label-private.py
index 16b45043e..c640c4c4d 100644
--- a/.ci/scripts/merge/apply-patches-by-label-private.py
+++ b/.ci/scripts/merge/apply-patches-by-label-private.py
@@ -1,3 +1,6 @@
+# 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>
diff --git a/.ci/scripts/merge/apply-patches-by-label.py b/.ci/scripts/merge/apply-patches-by-label.py
index c288a70a1..8ddc8ff34 100644
--- a/.ci/scripts/merge/apply-patches-by-label.py
+++ b/.ci/scripts/merge/apply-patches-by-label.py
@@ -1,3 +1,6 @@
+# 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>
diff --git a/.ci/scripts/merge/check-label-presence.py b/.ci/scripts/merge/check-label-presence.py
index 048466d7e..51cf68129 100644
--- a/.ci/scripts/merge/check-label-presence.py
+++ b/.ci/scripts/merge/check-label-presence.py
@@ -1,3 +1,6 @@
+# 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>
diff --git a/.ci/scripts/merge/yuzubot-git-config.sh b/.ci/scripts/merge/yuzubot-git-config.sh
index d9d595bbc..d7f1f29db 100644
--- a/.ci/scripts/merge/yuzubot-git-config.sh
+++ b/.ci/scripts/merge/yuzubot-git-config.sh
@@ -1,2 +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" \ No newline at end of file
diff --git a/.ci/scripts/transifex/docker.sh b/.ci/scripts/transifex/docker.sh
index bafd326f9..6237b3f73 100755
--- a/.ci/scripts/transifex/docker.sh
+++ b/.ci/scripts/transifex/docker.sh
@@ -1,5 +1,8 @@
#!/bin/bash -e
+# SPDX-FileCopyrightText: 2021 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
# Setup RC file for tx
cat << EOF > ~/.transifexrc
[https://www.transifex.com]
@@ -16,8 +19,11 @@ cmake --version
gcc -v
tx --version
+# vcpkg needs these: curl zip unzip tar, have tar
+apt-get install -y curl zip unzip
+
mkdir build && cd build
-cmake .. -DENABLE_QT_TRANSLATION=ON -DGENERATE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_SDL2=OFF
+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 ..
diff --git a/.ci/scripts/windows/docker.sh b/.ci/scripts/windows/docker.sh
index 584b9b39f..790ba8218 100755
--- a/.ci/scripts/windows/docker.sh
+++ b/.ci/scripts/windows/docker.sh
@@ -1,14 +1,33 @@
#!/bin/bash -ex
-cd /yuzu
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
-ccache -s
+set -e
-mkdir build || true && cd build
-cmake .. -G Ninja -DDISPLAY_VERSION=$1 -DCMAKE_TOOLCHAIN_FILE="$(pwd)/../CMakeModules/MinGWCross.cmake" -DUSE_CCACHE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_QT_TRANSLATION=ON
-ninja
+#cd /yuzu
-ccache -s
+ccache -sv
+
+mkdir -p build && cd build
+export LDFLAGS="-fuse-ld=lld"
+# -femulated-tls required due to an incompatibility between GCC and Clang
+# TODO(lat9nq): If this is widespread, we probably need to add this to CMakeLists where appropriate
+export CXXFLAGS="-femulated-tls"
+cmake .. \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_TOOLCHAIN_FILE="${PWD}/../CMakeModules/MinGWClangCross.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
@@ -46,7 +65,7 @@ python3 .ci/scripts/windows/scan_dll.py package/*.exe package/imageformats/*.dll
# 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 -v {} package/ ';'
+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/ ';'
diff --git a/.ci/scripts/windows/exec.sh b/.ci/scripts/windows/exec.sh
index f904544bd..ca74eeba5 100644
--- a/.ci/scripts/windows/exec.sh
+++ b/.ci/scripts/windows/exec.sh
@@ -1,8 +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 yuzuemu/build-environments:linux-mingw /bin/bash -ex /yuzu/.ci/scripts/windows/docker.sh $1
+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 ./
diff --git a/.ci/scripts/windows/scan_dll.py b/.ci/scripts/windows/scan_dll.py
index 163183f2e..f374e0d78 100644
--- a/.ci/scripts/windows/scan_dll.py
+++ b/.ci/scripts/windows/scan_dll.py
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
import pefile
import sys
import re
diff --git a/.ci/scripts/windows/upload.ps1 b/.ci/scripts/windows/upload.ps1
index 62483607b..d463281de 100644
--- a/.ci/scripts/windows/upload.ps1
+++ b/.ci/scripts/windows/upload.ps1
@@ -1,3 +1,6 @@
+# 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 "-", ""
@@ -25,6 +28,9 @@ $env:BUILD_UPDATE = $MSVC_SEVENZIP
$BUILD_DIR = ".\build\bin\Release"
+# 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
@@ -36,17 +42,60 @@ mkdir $RELEASE_DIST
mkdir $MSVC_SOURCE
mkdir "artifacts"
+$CURRENT_DIR = Convert-Path .
+
# Build a tar.xz for the source of the release
-Copy-Item .\license.txt -Destination $MSVC_SOURCE
-Copy-Item .\README.md -Destination $MSVC_SOURCE
-Copy-Item .\CMakeLists.txt -Destination $MSVC_SOURCE
-Copy-Item .\src -Recurse -Destination $MSVC_SOURCE
-Copy-Item .\externals -Recurse -Destination $MSVC_SOURCE
-Copy-Item .\dist -Recurse -Destination $MSVC_SOURCE
-Copy-Item .\CMakeModules -Recurse -Destination $MSVC_SOURCE
+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"
+
+ # Are debug symbols important?
+ # cp .\build\bin\yuzu*.pdb .\pdb\
+
+ # 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
@@ -62,3 +111,4 @@ Get-ChildItem "$BUILD_DIR" -Recurse -Filter "QtWebEngineProcess*.exe" | Copy-Ite
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"
+}
diff --git a/.ci/scripts/windows/upload.sh b/.ci/scripts/windows/upload.sh
index 3c6a74218..4aa5be544 100644..100755
--- a/.ci/scripts/windows/upload.sh
+++ b/.ci/scripts/windows/upload.sh
@@ -1,5 +1,8 @@
#!/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}"
diff --git a/.ci/templates/build-mock.yml b/.ci/templates/build-mock.yml
index 0318a0ad8..3d3bb6d86 100644
--- a/.ci/templates/build-mock.yml
+++ b/.ci/templates/build-mock.yml
@@ -1,3 +1,6 @@
+# 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
diff --git a/.ci/templates/build-msvc.yml b/.ci/templates/build-msvc.yml
index cca3189fa..2a1bf93bc 100644
--- a/.ci/templates/build-msvc.yml
+++ b/.ci/templates/build-msvc.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
parameters:
artifactSource: 'true'
cache: 'false'
@@ -6,9 +9,7 @@ parameters:
steps:
- script: choco install vulkan-sdk
displayName: 'Install vulkan-sdk'
-- script: python -m pip install --upgrade pip conan
- displayName: 'Install conan'
-- script: refreshenv && mkdir build && cd build && cmake -G "Visual Studio 17 2022" -A x64 -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 .. && cd ..
+- script: refreshenv && mkdir build && cd build && cmake -G "Visual Studio 16 2019" -A x64 -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 .. && cd ..
displayName: 'Configure CMake'
- task: MSBuild@1
displayName: 'Build'
diff --git a/.ci/templates/build-single.yml b/.ci/templates/build-single.yml
index 7b27693be..3f81f9197 100644
--- a/.ci/templates/build-single.yml
+++ b/.ci/templates/build-single.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
parameters:
artifactSource: 'true'
cache: 'false'
diff --git a/.ci/templates/build-standard.yml b/.ci/templates/build-standard.yml
index 57d36f813..314076f1f 100644
--- a/.ci/templates/build-standard.yml
+++ b/.ci/templates/build-standard.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
parameters:
version: ''
diff --git a/.ci/templates/build-testing.yml b/.ci/templates/build-testing.yml
index 30c8aaac3..c8390b327 100644
--- a/.ci/templates/build-testing.yml
+++ b/.ci/templates/build-testing.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
parameters:
version: ''
diff --git a/.ci/templates/format-check.yml b/.ci/templates/format-check.yml
index 5061f1cb8..1042e7d13 100644
--- a/.ci/templates/format-check.yml
+++ b/.ci/templates/format-check.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
parameters:
artifactSource: 'true'
diff --git a/.ci/templates/merge-private.yml b/.ci/templates/merge-private.yml
index c74561c46..8b14065a3 100644
--- a/.ci/templates/merge-private.yml
+++ b/.ci/templates/merge-private.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
jobs:
- job: merge
displayName: 'pull requests'
diff --git a/.ci/templates/merge.yml b/.ci/templates/merge.yml
index 27c36e162..eec342120 100644
--- a/.ci/templates/merge.yml
+++ b/.ci/templates/merge.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
jobs:
- job: merge
displayName: 'pull requests'
diff --git a/.ci/templates/mergebot-private.yml b/.ci/templates/mergebot-private.yml
index f9a40cf61..1560f9a9c 100644
--- a/.ci/templates/mergebot-private.yml
+++ b/.ci/templates/mergebot-private.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
parameters:
matchLabel: 'dummy-merge'
matchLabelPublic: 'dummy-merge'
diff --git a/.ci/templates/mergebot.yml b/.ci/templates/mergebot.yml
index a4c5c2a28..59523161c 100644
--- a/.ci/templates/mergebot.yml
+++ b/.ci/templates/mergebot.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
parameters:
matchLabel: 'dummy-merge'
diff --git a/.ci/templates/release-download.yml b/.ci/templates/release-download.yml
index f7e30690f..bd32de395 100644
--- a/.ci/templates/release-download.yml
+++ b/.ci/templates/release-download.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
steps:
- task: DownloadPipelineArtifact@2
displayName: 'Download Windows Release'
diff --git a/.ci/templates/release-github.yml b/.ci/templates/release-github.yml
index c200954f1..d20296ca0 100644
--- a/.ci/templates/release-github.yml
+++ b/.ci/templates/release-github.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
steps:
- template: ./release-download.yml
- task: GitHubRelease@0
diff --git a/.ci/templates/release-private-tag.yml b/.ci/templates/release-private-tag.yml
index e80d57593..70a8543b5 100644
--- a/.ci/templates/release-private-tag.yml
+++ b/.ci/templates/release-private-tag.yml
@@ -1,3 +1,6 @@
+# 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'
diff --git a/.ci/templates/release-universal.yml b/.ci/templates/release-universal.yml
index 707697007..151c8f35c 100644
--- a/.ci/templates/release-universal.yml
+++ b/.ci/templates/release-universal.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
steps:
- template: ./release-download.yml
- task: UniversalPackages@0
diff --git a/.ci/templates/retrieve-artifact-source.yml b/.ci/templates/retrieve-artifact-source.yml
index 47d217e7b..b4cce5890 100644
--- a/.ci/templates/retrieve-artifact-source.yml
+++ b/.ci/templates/retrieve-artifact-source.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
steps:
- checkout: none
- task: DownloadPipelineArtifact@2
diff --git a/.ci/templates/retrieve-master-source.yml b/.ci/templates/retrieve-master-source.yml
index a08a3f926..e497c0e18 100644
--- a/.ci/templates/retrieve-master-source.yml
+++ b/.ci/templates/retrieve-master-source.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
parameters:
needSubmodules: 'true'
diff --git a/.ci/templates/sync-source.yml b/.ci/templates/sync-source.yml
index 409e1cd83..e796b6238 100644
--- a/.ci/templates/sync-source.yml
+++ b/.ci/templates/sync-source.yml
@@ -1,3 +1,6 @@
+# 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
diff --git a/.ci/yuzu-mainline-step1.yml b/.ci/yuzu-mainline-step1.yml
index 6b6acb5c6..207bddfa3 100644
--- a/.ci/yuzu-mainline-step1.yml
+++ b/.ci/yuzu-mainline-step1.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
trigger:
- master
diff --git a/.ci/yuzu-mainline-step2.yml b/.ci/yuzu-mainline-step2.yml
index b37eab6cd..0e99f43fa 100644
--- a/.ci/yuzu-mainline-step2.yml
+++ b/.ci/yuzu-mainline-step2.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
trigger:
- master
@@ -47,7 +50,7 @@ stages:
timeoutInMinutes: 120
displayName: 'msvc'
pool:
- vmImage: windows-2022
+ vmImage: windows-2019
steps:
- template: ./templates/sync-source.yml
parameters:
diff --git a/.ci/yuzu-patreon-step1.yml b/.ci/yuzu-patreon-step1.yml
index c63d7a066..44e0a5c81 100644
--- a/.ci/yuzu-patreon-step1.yml
+++ b/.ci/yuzu-patreon-step1.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
trigger:
- master
diff --git a/.ci/yuzu-patreon-step2.yml b/.ci/yuzu-patreon-step2.yml
index 119123a63..33c081c53 100644
--- a/.ci/yuzu-patreon-step2.yml
+++ b/.ci/yuzu-patreon-step2.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
trigger:
- master
@@ -12,7 +15,7 @@ stages:
timeoutInMinutes: 120
displayName: 'windows-msvc'
pool:
- vmImage: windows-2022
+ vmImage: windows-2019
steps:
- template: ./templates/sync-source.yml
parameters:
diff --git a/.ci/yuzu-repo-sync.yml b/.ci/yuzu-repo-sync.yml
index 602e298a6..c5b6ba927 100644
--- a/.ci/yuzu-repo-sync.yml
+++ b/.ci/yuzu-repo-sync.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
trigger:
- master
diff --git a/.ci/yuzu-verify.yml b/.ci/yuzu-verify.yml
index 5492e696a..38e3e6121 100644
--- a/.ci/yuzu-verify.yml
+++ b/.ci/yuzu-verify.yml
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
stages:
- stage: format
displayName: 'format'