2020-04-07 04:53:23 +02:00
|
|
|
#!/bin/sh -ex
|
2018-07-16 03:12:43 +02:00
|
|
|
|
|
|
|
# Setup Qt variables
|
|
|
|
export QT_BASE_DIR=/opt/qt${QTVERMIN}
|
|
|
|
export PATH=$QT_BASE_DIR/bin:$PATH
|
|
|
|
export LD_LIBRARY_PATH=$QT_BASE_DIR/lib/x86_64-linux-gnu:$QT_BASE_DIR/lib
|
|
|
|
|
2021-04-04 10:34:12 +02:00
|
|
|
if [ -z "$CIRRUS_CI" ]; then
|
|
|
|
cd rpcs3 || exit 1
|
|
|
|
fi
|
2018-07-16 03:12:43 +02:00
|
|
|
|
2020-04-07 04:53:23 +02:00
|
|
|
# Pull all the submodules except llvm, since it is built separately and we just download that build
|
|
|
|
# Note: Tried to use git submodule status, but it takes over 20 seconds
|
|
|
|
# shellcheck disable=SC2046
|
|
|
|
git submodule -q update --init $(awk '/path/ && !/llvm/ { print $3 }' .gitmodules)
|
2018-07-16 03:12:43 +02:00
|
|
|
|
|
|
|
# Download pre-compiled llvm libs
|
2020-02-24 18:39:39 +01:00
|
|
|
curl -sLO https://github.com/RPCS3/llvm-mirror/releases/download/custom-build/llvmlibs-linux.tar.gz
|
2018-07-16 03:12:43 +02:00
|
|
|
mkdir llvmlibs
|
|
|
|
tar -xzf ./llvmlibs-linux.tar.gz -C llvmlibs
|
|
|
|
|
2020-04-07 04:53:23 +02:00
|
|
|
mkdir build && cd build || exit 1
|
2018-07-16 03:12:43 +02:00
|
|
|
|
2020-04-07 04:53:23 +02:00
|
|
|
if [ "$COMPILER" = "gcc" ]; then
|
2020-04-09 06:33:38 +02:00
|
|
|
# These are set in the dockerfile
|
|
|
|
export CC=${GCC_BINARY}
|
|
|
|
export CXX=${GXX_BINARY}
|
|
|
|
export LINKER=gold
|
|
|
|
# We need to set the following variables for LTO to link properly
|
2020-05-15 05:04:24 +02:00
|
|
|
export AR=/usr/bin/gcc-ar-$GCCVER
|
|
|
|
export RANLIB=/usr/bin/gcc-ranlib-$GCCVER
|
2020-04-09 06:33:38 +02:00
|
|
|
export CFLAGS="-fuse-linker-plugin"
|
2018-07-16 03:12:43 +02:00
|
|
|
else
|
2020-04-09 06:33:38 +02:00
|
|
|
export CC=${CLANG_BINARY}
|
|
|
|
export CXX=${CLANGXX_BINARY}
|
|
|
|
export LINKER=lld
|
|
|
|
export AR=/usr/bin/llvm-ar-$LLVMVER
|
|
|
|
export RANLIB=/usr/bin/llvm-ranlib-$LLVMVER
|
2018-07-16 03:12:43 +02:00
|
|
|
fi
|
|
|
|
|
2020-03-19 08:49:40 +01:00
|
|
|
export CFLAGS="$CFLAGS -fuse-ld=${LINKER}"
|
2020-03-17 06:54:47 +01:00
|
|
|
|
2020-04-09 06:33:38 +02:00
|
|
|
cmake .. \
|
|
|
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
2020-02-20 08:53:10 +01:00
|
|
|
-DBUILD_LLVM_SUBMODULE=OFF \
|
2020-04-09 06:33:38 +02:00
|
|
|
-DLLVM_DIR=llvmlibs/lib/cmake/llvm/ \
|
|
|
|
-DUSE_NATIVE_INSTRUCTIONS=OFF \
|
2020-02-20 08:53:10 +01:00
|
|
|
-DUSE_PRECOMPILED_HEADERS=OFF \
|
2020-04-09 06:33:38 +02:00
|
|
|
-DCMAKE_C_FLAGS="$CFLAGS" \
|
|
|
|
-DCMAKE_CXX_FLAGS="$CFLAGS" \
|
|
|
|
-DCMAKE_AR="$AR" \
|
|
|
|
-DCMAKE_RANLIB="$RANLIB" \
|
2020-10-29 00:44:21 +01:00
|
|
|
-DUSE_SYSTEM_CURL=ON \
|
2021-05-07 04:14:31 +02:00
|
|
|
-DOpenGL_GL_PREFERENCE=LEGACY \
|
2020-04-09 06:33:38 +02:00
|
|
|
-G Ninja
|
2018-07-16 03:12:43 +02:00
|
|
|
|
2019-04-06 05:17:54 +02:00
|
|
|
ninja; build_status=$?;
|
2018-07-16 03:12:43 +02:00
|
|
|
|
|
|
|
cd ..
|
2020-03-03 03:42:28 +01:00
|
|
|
|
2021-03-20 07:11:37 +01:00
|
|
|
shellcheck .ci/*.sh
|
|
|
|
|
2021-04-04 10:34:12 +02:00
|
|
|
# If it compiled succesfully let's deploy.
|
|
|
|
# Azure and Cirrus publish PRs as artifacts only.
|
|
|
|
{ [ "$CI_HAS_ARTIFACTS" = "true" ];
|
2020-04-07 04:53:23 +02:00
|
|
|
} && SHOULD_DEPLOY="true" || SHOULD_DEPLOY="false"
|
|
|
|
|
|
|
|
if [ "$build_status" -eq 0 ] && [ "$SHOULD_DEPLOY" = "true" ]; then
|
2020-04-09 06:33:38 +02:00
|
|
|
.ci/deploy-linux.sh
|
2020-03-03 03:42:28 +01:00
|
|
|
fi
|