|
|
|
|
@ -4,12 +4,9 @@ orbs:
|
|
|
|
|
codecov: codecov/codecov@1.1.1 |
|
|
|
|
|
|
|
|
|
executors: |
|
|
|
|
ubuntu-16_04: |
|
|
|
|
docker: |
|
|
|
|
- image: ubuntu:xenial-20201014 |
|
|
|
|
ubuntu-18_04: |
|
|
|
|
docker: |
|
|
|
|
- image: ubuntu:bionic-20200921 |
|
|
|
|
- image: ubuntu:bionic-20220427 |
|
|
|
|
xcode-11_5: |
|
|
|
|
# Molten-vk isn't in (non-updated) Homebrew on the 9.4 or 10.0/1/2 image, |
|
|
|
|
# have to use 10.3 instead; since 2021-06-08 it refuses to work on 10.14 so |
|
|
|
|
@ -60,7 +57,8 @@ commands:
|
|
|
|
|
command: | |
|
|
|
|
apt update |
|
|
|
|
if [[ "$CMAKE_CXX_FLAGS" == *"--coverage"* ]]; then export LCOV_PACKAGES="lcov curl"; fi |
|
|
|
|
apt install -y git ninja-build $LCOV_PACKAGES << parameters.extra >> |
|
|
|
|
# libidn11 needed by CMake |
|
|
|
|
apt install -y git ninja-build libidn11 $LCOV_PACKAGES << parameters.extra >> |
|
|
|
|
|
|
|
|
|
install-base-linux-arm64: |
|
|
|
|
parameters: |
|
|
|
|
@ -137,45 +135,34 @@ commands:
|
|
|
|
|
echo 'export CC=gcc-4.8' >> $BASH_ENV |
|
|
|
|
echo 'export CXX=g++-4.8' >> $BASH_ENV |
|
|
|
|
|
|
|
|
|
install-clang-3_8: |
|
|
|
|
# While we want to make sure the project builds on GCC 4.8 as certain |
|
|
|
|
# embedded toolchains still use it, for Clang we just pick the version |
|
|
|
|
# available in the oldest supported distro. |
|
|
|
|
install-clang: |
|
|
|
|
steps: |
|
|
|
|
- run: |
|
|
|
|
name: Install Clang 3.8 |
|
|
|
|
# https://askubuntu.com/questions/787383/how-to-install-llvm-3-9 |
|
|
|
|
# because the `deb` commands from https://apt.llvm.org don't work |
|
|
|
|
# |
|
|
|
|
# The software-properties-common need to be installed in order to have |
|
|
|
|
# apt-add-repository. Sigh, adding a repository should be a core |
|
|
|
|
# feature ffs! |
|
|
|
|
# |
|
|
|
|
# The apt-transport-https needs to be installed because |
|
|
|
|
# E: The method driver /usr/lib/apt/methods/https could not be found. |
|
|
|
|
# N: Is the package apt-transport-https installed? |
|
|
|
|
# |
|
|
|
|
# For some reason, CMake needs a working C compiler, so provice CC as |
|
|
|
|
# well for the case when default gcc isn't installed. |
|
|
|
|
# |
|
|
|
|
# The llvm-symbolizer link needs to be set in order to have usable |
|
|
|
|
# symbols in the output. This affects suppressions as well, meaning |
|
|
|
|
# they won't work if the symbols are not resolvable. It's not enough to |
|
|
|
|
# just `export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.8` |
|
|
|
|
# just `export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-6.0` |
|
|
|
|
# because it then complains that |
|
|
|
|
# |
|
|
|
|
# External symbolizer path is set to '/usr/bin/llvm-symbolizer-3.8' |
|
|
|
|
# External symbolizer path is set to '/usr/bin/llvm-symbolizer-6.0' |
|
|
|
|
# which isn't a known symbolizer. Please set the path to the |
|
|
|
|
# llvm-symbolizer binary or other known tool. |
|
|
|
|
# |
|
|
|
|
# Probably because because it detects tool type based on the filename? |
|
|
|
|
# Ugh. |
|
|
|
|
name: Install Clang |
|
|
|
|
command: | |
|
|
|
|
apt install -y software-properties-common apt-transport-https wget |
|
|
|
|
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - |
|
|
|
|
apt-add-repository "deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-3.9 main" |
|
|
|
|
apt update |
|
|
|
|
apt install -y clang-3.8 |
|
|
|
|
echo 'export CC=clang-3.8' >> $BASH_ENV |
|
|
|
|
echo 'export CXX=clang++-3.8' >> $BASH_ENV |
|
|
|
|
ln -s /usr/bin/llvm-symbolizer{-3.8,} |
|
|
|
|
apt install -y clang |
|
|
|
|
echo 'export CC=clang' >> $BASH_ENV |
|
|
|
|
echo 'export CXX=clang++' >> $BASH_ENV |
|
|
|
|
ls -l /usr/bin/llvm-symbolizer-6.0 |
|
|
|
|
ln -s /usr/bin/llvm-symbolizer{-6.0,} |
|
|
|
|
|
|
|
|
|
install-cmake: |
|
|
|
|
parameters: |
|
|
|
|
@ -280,7 +267,7 @@ commands:
|
|
|
|
|
|
|
|
|
|
jobs: |
|
|
|
|
linux-gl: |
|
|
|
|
executor: ubuntu-16_04 |
|
|
|
|
executor: ubuntu-18_04 |
|
|
|
|
environment: |
|
|
|
|
CMAKE_CXX_FLAGS: --coverage |
|
|
|
|
LCOV_EXTRA_OPTS: --gcov-tool /usr/bin/gcov-4.8 |
|
|
|
|
@ -317,9 +304,6 @@ jobs:
|
|
|
|
|
script: unix-desktop.sh |
|
|
|
|
- lcov |
|
|
|
|
|
|
|
|
|
# vulkan-loader is broken on 16.04 and swiftshader vulkan needs GCC 7 to |
|
|
|
|
# compile, so using 18.04 for Vulkan tests instead. Compile tests with GCC |
|
|
|
|
# 4.8 are still done on 16.04 |
|
|
|
|
linux-vulkan: |
|
|
|
|
executor: ubuntu-18_04 |
|
|
|
|
environment: |
|
|
|
|
@ -340,7 +324,7 @@ jobs:
|
|
|
|
|
- lcov |
|
|
|
|
|
|
|
|
|
linux-gles2: |
|
|
|
|
executor: ubuntu-16_04 |
|
|
|
|
executor: ubuntu-18_04 |
|
|
|
|
environment: |
|
|
|
|
CMAKE_CXX_FLAGS: --coverage |
|
|
|
|
LCOV_EXTRA_OPTS: --gcov-tool /usr/bin/gcov-4.8 |
|
|
|
|
@ -365,7 +349,7 @@ jobs:
|
|
|
|
|
- lcov |
|
|
|
|
|
|
|
|
|
linux-gles3: |
|
|
|
|
executor: ubuntu-16_04 |
|
|
|
|
executor: ubuntu-18_04 |
|
|
|
|
environment: |
|
|
|
|
CMAKE_CXX_FLAGS: --coverage |
|
|
|
|
LCOV_EXTRA_OPTS: --gcov-tool /usr/bin/gcov-4.8 |
|
|
|
|
@ -390,7 +374,7 @@ jobs:
|
|
|
|
|
- lcov |
|
|
|
|
|
|
|
|
|
linux-static: |
|
|
|
|
executor: ubuntu-16_04 |
|
|
|
|
executor: ubuntu-18_04 |
|
|
|
|
environment: |
|
|
|
|
# STUPID yml interprets unquoted ON as a boolean |
|
|
|
|
# https://stackoverflow.com/questions/53648244/specifying-the-string-value-yes-in-a-yaml-property |
|
|
|
|
@ -415,7 +399,7 @@ jobs:
|
|
|
|
|
- lcov |
|
|
|
|
|
|
|
|
|
linux-nondeprecated: |
|
|
|
|
executor: ubuntu-16_04 |
|
|
|
|
executor: ubuntu-18_04 |
|
|
|
|
environment: |
|
|
|
|
# STUPID yml interprets unquoted OFF as a boolean |
|
|
|
|
BUILD_DEPRECATED: "OFF" |
|
|
|
|
@ -437,7 +421,7 @@ jobs:
|
|
|
|
|
script: unix-desktop.sh |
|
|
|
|
|
|
|
|
|
linux-sanitizers: |
|
|
|
|
executor: ubuntu-16_04 |
|
|
|
|
executor: ubuntu-18_04 |
|
|
|
|
environment: |
|
|
|
|
# STUPID yml interprets unquoted OFF as a boolean. Applications don't |
|
|
|
|
# have any automated tests, so building them for sanitizers doesn't make |
|
|
|
|
@ -449,7 +433,7 @@ jobs:
|
|
|
|
|
steps: |
|
|
|
|
- install-base-linux: |
|
|
|
|
extra: libgl1-mesa-dev libopenal-dev libvulkan-dev |
|
|
|
|
- install-clang-3_8 |
|
|
|
|
- install-clang |
|
|
|
|
- install-cmake: |
|
|
|
|
version: "3.4.3" |
|
|
|
|
- setup-null-openal-driver |
|
|
|
|
@ -457,7 +441,7 @@ jobs:
|
|
|
|
|
script: unix-desktop.sh |
|
|
|
|
|
|
|
|
|
linux-threadsanitizer: |
|
|
|
|
executor: ubuntu-16_04 |
|
|
|
|
executor: ubuntu-18_04 |
|
|
|
|
environment: |
|
|
|
|
# STUPID yml interprets unquoted OFF as a boolean. Applications don't |
|
|
|
|
# have any automated tests, so building them for sanitizers doesn't make |
|
|
|
|
@ -469,7 +453,7 @@ jobs:
|
|
|
|
|
steps: |
|
|
|
|
- install-base-linux: |
|
|
|
|
extra: libgl1-mesa-dev libopenal-dev libvulkan-dev |
|
|
|
|
- install-clang-3_8 |
|
|
|
|
- install-clang |
|
|
|
|
- install-cmake: |
|
|
|
|
version: "3.4.3" |
|
|
|
|
- setup-null-openal-driver |
|
|
|
|
|