diff --git a/package/ci/circleci.yml b/package/ci/circleci.yml index 520e63b76..55c4dc4d9 100644 --- a/package/ci/circleci.yml +++ b/package/ci/circleci.yml @@ -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