mirror of
https://github.com/ETLCPP/etl.git
synced 2026-10-28 18:07:10 +08:00
* Removed ETL_USE_TYPE_TRAITS_BUILTINS macro * Added ETL_DISABLE_BUILTIN_FUNCTIONS to allow tests to to be run without using builtins * clang-format updates --------- Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com>
239 lines
6.3 KiB
YAML
239 lines
6.3 KiB
YAML
name: clang-c++20
|
|
on:
|
|
push:
|
|
branches: [ master, development, pull-request/* ]
|
|
paths:
|
|
- '.github/workflows/**'
|
|
- 'include/**'
|
|
- 'test/**'
|
|
- 'CMakeLists.txt'
|
|
- 'cmake/**'
|
|
- 'BUILD.bazel'
|
|
- 'MODULE.bazel*'
|
|
- 'meson.build'
|
|
- 'meson_options.txt'
|
|
- 'subprojects/**'
|
|
- '.devcontainer/**'
|
|
pull_request:
|
|
branches: [ master, development, pull-request/* ]
|
|
types: [opened, synchronize, reopened]
|
|
paths:
|
|
- '.github/workflows/**'
|
|
- 'include/**'
|
|
- 'test/**'
|
|
- 'CMakeLists.txt'
|
|
- 'cmake/**'
|
|
- 'BUILD.bazel'
|
|
- 'MODULE.bazel*'
|
|
- 'meson.build'
|
|
- 'meson_options.txt'
|
|
- 'subprojects/**'
|
|
- '.devcontainer/**'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
|
|
build-clang-cpp20-linux-stl-libcxx:
|
|
name: Clang C++20 Linux - STL - libc++
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-22.04]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6.0.3
|
|
|
|
# Temporary fix. See https://github.com/actions/runner-images/issues/8659
|
|
- name: Install newer Clang
|
|
run: |
|
|
wget https://apt.llvm.org/llvm.sh
|
|
chmod +x ./llvm.sh
|
|
sudo ./llvm.sh 17
|
|
|
|
- name: Install libc++
|
|
run: sudo apt-get install -y libc++-17-dev libc++abi-17-dev
|
|
|
|
- name: Build
|
|
run: |
|
|
export CC=clang-17
|
|
export CXX=clang++-17
|
|
export CXXFLAGS="-stdlib=libc++"
|
|
export LDFLAGS="-stdlib=libc++"
|
|
cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./
|
|
clang-17 --version
|
|
make -j "$(getconf _NPROCESSORS_ONLN)"
|
|
|
|
- name: Run tests
|
|
run: ./test/etl_tests -v
|
|
|
|
build-clang-cpp20-linux-no-stl:
|
|
name: Clang C++20 Linux - No STL
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-22.04]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6.0.3
|
|
|
|
# Temporary fix. See https://github.com/actions/runner-images/issues/8659
|
|
- name: Install newer Clang
|
|
run: |
|
|
wget https://apt.llvm.org/llvm.sh
|
|
chmod +x ./llvm.sh
|
|
sudo ./llvm.sh 17
|
|
|
|
- name: Build
|
|
run: |
|
|
export CC=clang-17
|
|
export CXX=clang++-17
|
|
cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./
|
|
clang-17 --version
|
|
make -j "$(getconf _NPROCESSORS_ONLN)"
|
|
|
|
- name: Run tests
|
|
run: ./test/etl_tests -v
|
|
|
|
build-clang-cpp20-linux-stl-force-cpp03:
|
|
name: Clang C++20 Linux - STL - Force C++03
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-22.04]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6.0.3
|
|
|
|
# Temporary fix. See https://github.com/actions/runner-images/issues/8659
|
|
- name: Install newer Clang
|
|
run: |
|
|
wget https://apt.llvm.org/llvm.sh
|
|
chmod +x ./llvm.sh
|
|
sudo ./llvm.sh 17
|
|
|
|
- name: Build
|
|
run: |
|
|
export CC=clang-17
|
|
export CXX=clang++-17
|
|
cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./
|
|
clang-17 --version
|
|
make -j "$(getconf _NPROCESSORS_ONLN)"
|
|
|
|
- name: Run tests
|
|
run: ./test/etl_tests -v
|
|
|
|
build-clang-cpp20-linux-no-stl-force-cpp03:
|
|
name: Clang C++20 Linux - No STL - Force C++03
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-22.04]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6.0.3
|
|
|
|
# Temporary fix. See https://github.com/actions/runner-images/issues/8659
|
|
- name: Install newer Clang
|
|
run: |
|
|
wget https://apt.llvm.org/llvm.sh
|
|
chmod +x ./llvm.sh
|
|
sudo ./llvm.sh 17
|
|
|
|
- name: Build
|
|
run: |
|
|
export CC=clang-17
|
|
export CXX=clang++-17
|
|
cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./
|
|
clang-17 --version
|
|
make -j "$(getconf _NPROCESSORS_ONLN)"
|
|
|
|
- name: Run tests
|
|
run: ./test/etl_tests -v
|
|
|
|
build-clang-cpp20-osx-stl:
|
|
name: Clang C++20 OSX - STL
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [macos-15]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6.0.3
|
|
|
|
- name: Build
|
|
run: |
|
|
export CC=clang
|
|
export CXX=clang++
|
|
cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./
|
|
clang --version
|
|
make -j "$(getconf _NPROCESSORS_ONLN)"
|
|
|
|
- name: Run tests
|
|
run: ./test/etl_tests -v
|
|
|
|
build-clang-cpp20-osx-no-stl:
|
|
name: Clang C++20 OSX - No STL
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [macos-15]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6.0.3
|
|
|
|
- name: Build
|
|
run: |
|
|
export CC=clang
|
|
export CXX=clang++
|
|
cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./
|
|
clang --version
|
|
make -j "$(getconf _NPROCESSORS_ONLN)"
|
|
|
|
- name: Run tests
|
|
run: ./test/etl_tests -v
|
|
|
|
build-clang-cpp20-osx-stl-force-cpp03:
|
|
name: Clang C++20 OSX - STL - Force C++03
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [macos-15]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6.0.3
|
|
|
|
- name: Build
|
|
run: |
|
|
export CC=clang
|
|
export CXX=clang++
|
|
cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./
|
|
clang --version
|
|
make -j "$(getconf _NPROCESSORS_ONLN)"
|
|
|
|
- name: Run tests
|
|
run: ./test/etl_tests -v
|
|
|
|
build-clang-cpp20-osx-no-stl-force-cpp03:
|
|
name: Clang C++20 OSX - No STL - Force C++03
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [macos-15]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6.0.3
|
|
|
|
- name: Build
|
|
run: |
|
|
export CC=clang
|
|
export CXX=clang++
|
|
cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./
|
|
clang --version
|
|
make -j "$(getconf _NPROCESSORS_ONLN)"
|
|
|
|
- name: Run tests
|
|
run: ./test/etl_tests -v
|