diff options
Diffstat (limited to '')
-rwxr-xr-x | .ci/scripts/clang/docker.sh | 18 | ||||
-rw-r--r-- | .ci/scripts/clang/exec.sh | 8 | ||||
-rw-r--r-- | .ci/scripts/clang/upload.sh | 20 | ||||
-rwxr-xr-x | .ci/scripts/linux/docker.sh | 5 | ||||
-rw-r--r-- | .ci/scripts/linux/upload.sh | 24 | ||||
-rwxr-xr-x | .ci/scripts/windows/docker.sh | 5 | ||||
-rw-r--r-- | .ci/templates/build-standard.yml | 5 |
7 files changed, 75 insertions, 10 deletions
diff --git a/.ci/scripts/clang/docker.sh b/.ci/scripts/clang/docker.sh new file mode 100755 index 000000000..885d74e97 --- /dev/null +++ b/.ci/scripts/clang/docker.sh @@ -0,0 +1,18 @@ +#!/bin/bash -ex + +# 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) + +ccache -s + +ctest -VV -C Release + diff --git a/.ci/scripts/clang/exec.sh b/.ci/scripts/clang/exec.sh new file mode 100644 index 000000000..e56cd4325 --- /dev/null +++ b/.ci/scripts/clang/exec.sh @@ -0,0 +1,8 @@ +#!/bin/bash -ex + +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 +sudo chown -R $UID ./ diff --git a/.ci/scripts/clang/upload.sh b/.ci/scripts/clang/upload.sh new file mode 100644 index 000000000..fe4e6b2ac --- /dev/null +++ b/.ci/scripts/clang/upload.sh @@ -0,0 +1,20 @@ +#!/bin/bash -ex + +. .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 diff --git a/.ci/scripts/linux/docker.sh b/.ci/scripts/linux/docker.sh index 30391f6ad..39b1f77d7 100755 --- a/.ci/scripts/linux/docker.sh +++ b/.ci/scripts/linux/docker.sh @@ -22,12 +22,10 @@ rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester # Download tools needed to build an AppImage wget -nc https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage wget -nc https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage -wget -nc https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage wget -nc https://github.com/darealshinji/AppImageKit-checkrt/releases/download/continuous/AppRun-patched-x86_64 wget -nc https://github.com/darealshinji/AppImageKit-checkrt/releases/download/continuous/exec-x86_64.so # Set executable bit chmod 755 \ - appimagetool-x86_64.AppImage \ AppRun-patched-x86_64 \ exec-x86_64.so \ linuxdeploy-x86_64.AppImage \ @@ -49,6 +47,3 @@ cp exec-x86_64.so AppDir/usr/optional/exec.so cp AppRun-patched-x86_64 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 - -# Build the AppImage -./appimagetool-x86_64.AppImage AppDir diff --git a/.ci/scripts/linux/upload.sh b/.ci/scripts/linux/upload.sh index 7175e4cb5..b2ea07388 100644 --- a/.ci/scripts/linux/upload.sh +++ b/.ci/scripts/linux/upload.sh @@ -2,8 +2,7 @@ . .ci/scripts/common/pre-upload.sh -APPIMAGE_NAME="yuzu-x86_64.AppImage" -NEW_APPIMAGE_NAME="yuzu-${GITDATE}-${GITREV}-x86_64.AppImage" +APPIMAGE_NAME="yuzu-${GITDATE}-${GITREV}.AppImage" REV_NAME="yuzu-linux-${GITDATE}-${GITREV}" ARCHIVE_NAME="${REV_NAME}.tar.xz" COMPRESSION_FLAGS="-cJvf" @@ -19,7 +18,24 @@ mkdir "$DIR_NAME" cp build/bin/yuzu-cmd "$DIR_NAME" cp build/bin/yuzu "$DIR_NAME" -# Copy the AppImage to the artifacts directory and avoid compressing it -cp "build/${APPIMAGE_NAME}" "${ARTIFACTS_DIR}/${NEW_APPIMAGE_NAME}" +# Build an AppImage +cd build + +wget -nc https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage +chmod 755 appimagetool-x86_64.AppImage + +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 . .ci/scripts/common/post-upload.sh diff --git a/.ci/scripts/windows/docker.sh b/.ci/scripts/windows/docker.sh index 2bc9f36ab..192a01fd8 100755 --- a/.ci/scripts/windows/docker.sh +++ b/.ci/scripts/windows/docker.sh @@ -42,3 +42,8 @@ done pip3 install pefile python3 .ci/scripts/windows/scan_dll.py package/*.exe "package/" python3 .ci/scripts/windows/scan_dll.py 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 -v {} package/ ';' diff --git a/.ci/templates/build-standard.yml b/.ci/templates/build-standard.yml index 7422c8346..57d36f813 100644 --- a/.ci/templates/build-standard.yml +++ b/.ci/templates/build-standard.yml @@ -12,6 +12,9 @@ jobs: windows: BuildSuffix: 'windows-mingw' ScriptFolder: 'windows' + clang: + BuildSuffix: 'clang' + ScriptFolder: 'clang' linux: BuildSuffix: 'linux' ScriptFolder: 'linux' @@ -24,4 +27,4 @@ jobs: parameters: artifactSource: 'false' cache: $(parameters.cache) - version: $(parameters.version)
\ No newline at end of file + version: $(parameters.version) |