ci: Add clang build scripts
Adds scripts that instruct CI to build yuzu with the installed Clang compiler on yuzuemu/build-environments:linux-fresh. These scripts are based on the .ci/scripts/linux scripts, minus AppImage building since that isn't necessary. Re-uses linux-fresh since that container has Clang 12 installed.
This commit is contained in:
parent
20245e660f
commit
fb0b4c7e27
18
.ci/scripts/clang/docker.sh
Executable file
18
.ci/scripts/clang/docker.sh
Executable file
|
@ -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
|
||||||
|
|
8
.ci/scripts/clang/exec.sh
Normal file
8
.ci/scripts/clang/exec.sh
Normal file
|
@ -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 ./
|
20
.ci/scripts/clang/upload.sh
Normal file
20
.ci/scripts/clang/upload.sh
Normal file
|
@ -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
|
|
@ -12,6 +12,9 @@ jobs:
|
||||||
windows:
|
windows:
|
||||||
BuildSuffix: 'windows-mingw'
|
BuildSuffix: 'windows-mingw'
|
||||||
ScriptFolder: 'windows'
|
ScriptFolder: 'windows'
|
||||||
|
clang:
|
||||||
|
BuildSuffix: 'clang'
|
||||||
|
ScriptFolder: 'clang'
|
||||||
linux:
|
linux:
|
||||||
BuildSuffix: 'linux'
|
BuildSuffix: 'linux'
|
||||||
ScriptFolder: 'linux'
|
ScriptFolder: 'linux'
|
||||||
|
@ -24,4 +27,4 @@ jobs:
|
||||||
parameters:
|
parameters:
|
||||||
artifactSource: 'false'
|
artifactSource: 'false'
|
||||||
cache: $(parameters.cache)
|
cache: $(parameters.cache)
|
||||||
version: $(parameters.version)
|
version: $(parameters.version)
|
||||||
|
|
Loading…
Reference in a new issue