Use clang 18/17/16 instead of 15/14/13

This commit is contained in:
Siarhei Fedartsou 2024-07-01 16:43:32 +02:00
parent d2cf23c329
commit 895143b4a1

View File

@ -166,98 +166,98 @@ jobs:
strategy: strategy:
matrix: matrix:
include: include:
# - name: gcc-13-debug-cov - name: gcc-13-debug-cov
# continue-on-error: false continue-on-error: false
# node: 20 node: 20
# runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Debug BUILD_TYPE: Debug
# CCOMPILER: gcc-13 CCOMPILER: gcc-13
# CUCUMBER_TIMEOUT: 20000 CUCUMBER_TIMEOUT: 20000
# CXXCOMPILER: g++-13 CXXCOMPILER: g++-13
# ENABLE_COVERAGE: ON ENABLE_COVERAGE: ON
# - name: clang-18-debug-asan-ubsan - name: clang-18-debug-asan-ubsan
# continue-on-error: false continue-on-error: false
# node: 20 node: 20
# runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Debug BUILD_TYPE: Debug
# CCOMPILER: clang-18 CCOMPILER: clang-18
# CUCUMBER_TIMEOUT: 20000 CUCUMBER_TIMEOUT: 20000
# CXXCOMPILER: clang++-18 CXXCOMPILER: clang++-18
# ENABLE_SANITIZER: ON ENABLE_SANITIZER: ON
# TARGET_ARCH: x86_64-asan-ubsan TARGET_ARCH: x86_64-asan-ubsan
# OSRM_CONNECTION_RETRIES: 10 OSRM_CONNECTION_RETRIES: 10
# OSRM_CONNECTION_EXP_BACKOFF_COEF: 1.5 OSRM_CONNECTION_EXP_BACKOFF_COEF: 1.5
# - name: clang-18-release - name: clang-18-release
# continue-on-error: false continue-on-error: false
# node: 18 node: 18
# runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang-18 CCOMPILER: clang-18
# CXXCOMPILER: clang++-18 CXXCOMPILER: clang++-18
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# ENABLE_LTO: OFF ENABLE_LTO: OFF
# - name: clang-18-debug - name: clang-18-debug
# continue-on-error: false continue-on-error: false
# node: 18 node: 18
# runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Debug BUILD_TYPE: Debug
# CCOMPILER: clang-18 CCOMPILER: clang-18
# CXXCOMPILER: clang++-18 CXXCOMPILER: clang++-18
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# ENABLE_LTO: OFF ENABLE_LTO: OFF
# - name: clang-18-debug-clang-tidy - name: clang-18-debug-clang-tidy
# continue-on-error: false continue-on-error: false
# node: 18 node: 18
# runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Debug BUILD_TYPE: Debug
# CCOMPILER: clang-18 CCOMPILER: clang-18
# CXXCOMPILER: clang++-18 CXXCOMPILER: clang++-18
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# ENABLE_CLANG_TIDY: ON ENABLE_CLANG_TIDY: ON
# - name: clang-17-release - name: clang-17-release
# continue-on-error: false continue-on-error: false
# node: 18 node: 18
# runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang-17 CCOMPILER: clang-17
# CXXCOMPILER: clang++-17 CXXCOMPILER: clang++-17
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# ENABLE_LTO: OFF ENABLE_LTO: OFF
# - name: clang-16-release - name: clang-16-release
# continue-on-error: false continue-on-error: false
# node: 18 node: 18
# runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang-16 CCOMPILER: clang-16
# CXXCOMPILER: clang++-16 CXXCOMPILER: clang++-16
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# ENABLE_LTO: OFF ENABLE_LTO: OFF
# - name: conan-linux-debug-asan-ubsan - name: conan-linux-debug-asan-ubsan
# continue-on-error: false continue-on-error: false
# node: 18 node: 18
# runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang-18 CCOMPILER: clang-18
# CXXCOMPILER: clang++-18 CXXCOMPILER: clang++-18
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# ENABLE_SANITIZER: ON ENABLE_SANITIZER: ON
# ENABLE_LTO: OFF ENABLE_LTO: OFF
- name: conan-linux-release - name: conan-linux-release
continue-on-error: false continue-on-error: false
@ -270,81 +270,81 @@ jobs:
ENABLE_CONAN: ON ENABLE_CONAN: ON
ENABLE_LTO: OFF ENABLE_LTO: OFF
# - name: gcc-14-release - name: gcc-14-release
# continue-on-error: false continue-on-error: false
# node: 20 node: 20
# runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: gcc-14 CCOMPILER: gcc-14
# CXXCOMPILER: g++-14 CXXCOMPILER: g++-14
# CXXFLAGS: '-Wno-array-bounds -Wno-uninitialized' CXXFLAGS: '-Wno-array-bounds -Wno-uninitialized'
# - name: gcc-13-release - name: gcc-13-release
# continue-on-error: false continue-on-error: false
# node: 20 node: 20
# runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: gcc-13 CCOMPILER: gcc-13
# CXXCOMPILER: g++-13 CXXCOMPILER: g++-13
# CXXFLAGS: '-Wno-array-bounds -Wno-uninitialized' CXXFLAGS: '-Wno-array-bounds -Wno-uninitialized'
# - name: gcc-12-release - name: gcc-12-release
# continue-on-error: false continue-on-error: false
# node: 20 node: 20
# runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: gcc-12 CCOMPILER: gcc-12
# CXXCOMPILER: g++-12 CXXCOMPILER: g++-12
# CXXFLAGS: '-Wno-array-bounds -Wno-uninitialized' CXXFLAGS: '-Wno-array-bounds -Wno-uninitialized'
# - name: conan-linux-release-node - name: conan-linux-release-node
# build_node_package: true build_node_package: true
# continue-on-error: false continue-on-error: false
# node: 20 node: 20
# runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang-16 CCOMPILER: clang-16
# CXXCOMPILER: clang++-16 CXXCOMPILER: clang++-16
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON NODE_PACKAGE_TESTS_ONLY: ON
# - name: conan-linux-debug-node - name: conan-linux-debug-node
# build_node_package: true build_node_package: true
# continue-on-error: false continue-on-error: false
# node: 20 node: 20
# runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
# BUILD_TYPE: Debug BUILD_TYPE: Debug
# CCOMPILER: clang-16 CCOMPILER: clang-16
# CXXCOMPILER: clang++-16 CXXCOMPILER: clang++-16
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON NODE_PACKAGE_TESTS_ONLY: ON
# - name: conan-macos-x64-release-node - name: conan-macos-x64-release-node
# build_node_package: true build_node_package: true
# continue-on-error: true continue-on-error: true
# node: 20 node: 20
# runs-on: macos-13 # x86_64 runs-on: macos-13 # x86_64
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang CCOMPILER: clang
# CXXCOMPILER: clang++ CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# - name: conan-macos-arm64-release-node - name: conan-macos-arm64-release-node
# build_node_package: true build_node_package: true
# continue-on-error: true continue-on-error: true
# node: 20 node: 20
# runs-on: macos-14 # arm64 runs-on: macos-14 # arm64
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang CCOMPILER: clang
# CXXCOMPILER: clang++ CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON ENABLE_CONAN: ON
name: ${{ matrix.name}} name: ${{ matrix.name}}
continue-on-error: ${{ matrix.continue-on-error }} continue-on-error: ${{ matrix.continue-on-error }}
@ -495,43 +495,13 @@ jobs:
tar zxvf onetbb.tgz tar zxvf onetbb.tgz
sudo cp -a oneapi-tbb-${TBB_VERSION}/lib/. /usr/local/lib/ sudo cp -a oneapi-tbb-${TBB_VERSION}/lib/. /usr/local/lib/
sudo cp -a oneapi-tbb-${TBB_VERSION}/include/. /usr/local/include/ sudo cp -a oneapi-tbb-${TBB_VERSION}/include/. /usr/local/include/
- name: Add Clang 18 to list of Conan compilers - name: Add Clang 18 to list of Conan compilers # workaround for the issue that Conan 1.x doesn't know about Clang 18
if: ${{ matrix.ENABLE_CONAN == 'ON' }} if: ${{ matrix.ENABLE_CONAN == 'ON' && matrix.CCOMPILER == 'clang-18' }}
run: | run: |
sudo wget https://github.com/mikefarah/yq/releases/download/v4.9.6/yq_linux_amd64 -O /usr/bin/yq && sudo chmod +x /usr/bin/yq sudo wget https://github.com/mikefarah/yq/releases/download/v4.9.6/yq_linux_amd64 -O /usr/bin/yq && sudo chmod +x /usr/bin/yq
conan config init conan config init
yq eval '.compiler.clang.version += ["18"]' -i "$HOME/.conan/settings.yml"
ls -R $HOME/.conan/
# Path to the settings.yml file
SETTINGS_PATH="$HOME/.conan/settings.yml"
echo "AAA:"
cat $SETTINGS_PATH
yq eval '.compiler.clang.version += ["18"]' -i $SETTINGS_PATH
echo "BBB:"
cat $SETTINGS_PATH
# # Verify the settings.yml file is created
# if [[ ! -f "$SETTINGS_PATH" ]]; then
# echo "Error: $SETTINGS_PATH was not created."
# exit 1
# fi
# # Add Clang 18 to the list of versions if not already present
# if grep -q "18" "$SETTINGS_PATH"; then
# echo "Clang 18 is already present in settings.yml"
# else
# sed -i '/compiler:/,/version:/ s/version:$/version:\n - 18/' "$SETTINGS_PATH"
# echo "Added Clang 18 to settings.yml"
# fi
- name: Prepare build - name: Prepare build
run: | run: |
mkdir ${OSRM_BUILD_DIR} mkdir ${OSRM_BUILD_DIR}