summaryrefslogtreecommitdiffstats
path: root/.ci/scripts/windows
diff options
context:
space:
mode:
Diffstat (limited to '.ci/scripts/windows')
-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
5 files changed, 93 insertions, 15 deletions
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}"