diff --git a/.github/workflows/clang-c++11.yml b/.github/workflows/clang-c++11.yml deleted file mode 100644 index 1ed503178..000000000 --- a/.github/workflows/clang-c++11.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: clang-c++11 -on: - push: - branches: [ master, development, pull-request/* ] - pull_request: - branches: [ master, pull-request/* ] - -jobs: - - build-clang-cpp11-linux-stl: - name: Clang C++11 Linux - STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export CC=clang - export CXX=clang++ - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=11 ./ - clang --version - make - - - name: Run tests - run: ./test/etl_tests - - build-clang-cpp11-linux-no-stl: - name: Clang C++11 Linux - No STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export CC=clang - export CXX=clang++ - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=11 ./ - clang --version - make - - - name: Run tests - run: ./test/etl_tests \ No newline at end of file diff --git a/.github/workflows/clang-c++14.yml b/.github/workflows/clang-c++14.yml deleted file mode 100644 index a8e26999e..000000000 --- a/.github/workflows/clang-c++14.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: clang-c++14 -on: - push: - branches: [ master, development, pull-request/* ] - pull_request: - branches: [ master, pull-request/* ] - -jobs: - - build-clang-cpp14-linux-stl: - name: Clang C++14 Linux - STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export CC=clang - export CXX=clang++ - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=14 ./ - clang --version - make - - - name: Run tests - run: ./test/etl_tests - - build-clang-cpp14-linux-no-stl: - name: Clang C++14 Linux - No STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export CC=clang - export CXX=clang++ - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=14 ./ - clang --version - make - - - name: Run tests - run: ./test/etl_tests \ No newline at end of file diff --git a/.github/workflows/clang-c++17.yml b/.github/workflows/clang-c++17.yml deleted file mode 100644 index ff00ee599..000000000 --- a/.github/workflows/clang-c++17.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: clang-c++17 -on: - push: - branches: [ master, development, pull-request/* ] - pull_request: - branches: [ master, pull-request/* ] - -jobs: - - build-clang-cpp17-linux-stl: - name: Clang C++17 Linux - STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export CC=clang - export CXX=clang++ - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=17 ./ - clang --version - make - - - name: Run tests - run: ./test/etl_tests - - build-clang-cpp17-linux-no-stl: - name: Clang C++17 Linux - No STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export CC=clang - export CXX=clang++ - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=17 ./ - clang --version - make - - - name: Run tests - run: ./test/etl_tests \ No newline at end of file diff --git a/.github/workflows/clang-c++20.yml b/.github/workflows/clang-c++20.yml deleted file mode 100644 index 362c32971..000000000 --- a/.github/workflows/clang-c++20.yml +++ /dev/null @@ -1,184 +0,0 @@ -name: clang-c++20 -on: - push: - branches: [ master, development, pull-request/* ] - pull_request: - branches: [ master, pull-request/* ] - -jobs: - - 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@v3 - - # 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 - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=20 ./ - clang-17 --version - make - - - name: Run tests - run: ./test/etl_tests - - 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@v3 - - # 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 - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON -DETL_CXX_STANDARD=20 ./ - clang-17 --version - make - - - name: Run tests - run: ./test/etl_tests - - 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@v3 - - # 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 - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON -DETL_CXX_STANDARD=20 ./ - clang-17 --version - make - - - name: Run tests - run: ./test/etl_tests - - build-clang-cpp20-osx-stl: - name: Clang C++20 OSX - STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [macos-12] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export CC=clang - export CXX=clang++ - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=20 ./ - clang --version - make - - - name: Run tests - run: ./test/etl_tests - - build-clang-cpp20-osx-no-stl: - name: Clang C++20 OSX - No STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [macos-12] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export CC=clang - export CXX=clang++ - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=20 ./ - clang --version - make - - - name: Run tests - run: ./test/etl_tests - - build-clang-cpp20-osx-stl-force-cpp03: - name: Clang C++20 OSX - STL - Force C++03 - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [macos-12] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export CC=clang - export CXX=clang++ - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON -DETL_CXX_STANDARD=20 ./ - clang --version - make - - - name: Run tests - run: ./test/etl_tests - - 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-12] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export CC=clang - export CXX=clang++ - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON -DETL_CXX_STANDARD=20 ./ - clang --version - make - - - name: Run tests - run: ./test/etl_tests - diff --git a/.github/workflows/gcc-c++11.yml b/.github/workflows/gcc-c++11.yml deleted file mode 100644 index 9a7c7b1a0..000000000 --- a/.github/workflows/gcc-c++11.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: gcc-c++11 -on: - push: - branches: [ master, development, pull-request/* ] - pull_request: - branches: [ master, pull-request/* ] - -jobs: - - build-gcc-cpp11-linux-stl: - name: GCC C++11 Linux - STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - git fetch - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - export CC=gcc - export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=11 ./ - gcc --version - make - - - name: Run tests - run: ./test/etl_tests - - build-gcc-cpp11-linux-no-stl: - name: GCC C++11 Linux - No STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - git fetch - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - export CC=gcc - export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=11 ./ - gcc --version - make - - - name: Run tests - run: ./test/etl_tests diff --git a/.github/workflows/gcc-c++14.yml b/.github/workflows/gcc-c++14.yml deleted file mode 100644 index 3d20beb3d..000000000 --- a/.github/workflows/gcc-c++14.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: gcc-c++14 -on: - push: - branches: [ master, development, pull-request/* ] - pull_request: - branches: [ master, pull-request/* ] - -jobs: - - build-gcc-cpp14-linux-stl: - name: GCC C++14 Linux - STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - export CC=gcc - export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=14 ./ - gcc --version - make - - - name: Run tests - run: ./test/etl_tests - - build-gcc-cpp14-linux-no-stl: - name: GCC C++14 Linux - No STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - export CC=gcc - export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=14 ./ - gcc --version - make - - - name: Run tests - run: ./test/etl_tests \ No newline at end of file diff --git a/.github/workflows/gcc-c++17.yml b/.github/workflows/gcc-c++17.yml deleted file mode 100644 index ca3dc8b25..000000000 --- a/.github/workflows/gcc-c++17.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: gcc-c++17 -on: - push: - branches: [ master, development, pull-request/* ] - pull_request: - branches: [ master, pull-request/* ] - -jobs: - - build-gcc-cpp17-linux-stl: - name: GCC C++17 Linux - STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - export CC=gcc - export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=17 ./ - gcc --version - make - - - name: Run tests - run: ./test/etl_tests - - build-gcc-cpp17-linux-no-stl: - name: GCC C++17 Linux - No STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - export CC=gcc - export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=17 ./ - gcc --version - make - - - name: Run tests - run: ./test/etl_tests diff --git a/.github/workflows/gcc-c++20.yml b/.github/workflows/gcc-c++20.yml deleted file mode 100644 index ecfcf9368..000000000 --- a/.github/workflows/gcc-c++20.yml +++ /dev/null @@ -1,96 +0,0 @@ -name: gcc-c++20 -on: - push: - branches: [ master, development, pull-request/* ] - pull_request: - branches: [ master, pull-request/* ] - -jobs: - - build-gcc-cpp20-linux-stl: - name: GCC C++20 Linux - STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - export CC=gcc - export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=20 ./ - gcc --version - make - - - name: Run tests - run: ./test/etl_tests - - build-gcc-cpp20-linux-no-stl: - name: GCC C++20 Linux - No STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - export CC=gcc - export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=20 ./ - gcc --version - make - - - name: Run tests - run: ./test/etl_tests - - build-gcc-cpp20-linux-stl-force-cpp03: - name: GCC C++20 Linux - STL - Force C++03 - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - export CC=gcc - export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON -DETL_CXX_STANDARD=20 ./ - gcc --version - make - - - name: Run tests - run: ./test/etl_tests - - build-gcc-cpp20-linux-no-stl-force-cpp03: - name: GCC C++20 Linux - No STL - Force C++03 - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - export CC=gcc - export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=OON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON -DETL_CXX_STANDARD=20 ./ - gcc --version - make - - - name: Run tests - run: ./test/etl_tests \ No newline at end of file diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 000000000..e9c8ec66b --- /dev/null +++ b/.github/workflows/linux.yml @@ -0,0 +1,82 @@ +name: ubuntu +on: + push: + branches: [ master, development, pull-request/* ] + pull_request: + branches: [ master, pull-request/* ] + workflow_dispatch: + +jobs: + posix: + name: Ubuntu + runs-on: ubuntu-24.04 + strategy: + matrix: + cpp-ver: ["03", 11, 14, 17, 20] + no-stl: [ON, OFF] + force-03: [ON, OFF] + compiler: [GCC, LLVM] + exclude: + - cpp-ver: 03 + force-03: ON + include: + - tests: YES + - cpp-ver: "03" + tests: NO + - compiler: GCC + cc: gcc + cxx: g++ + - compiler: LLVM + cc: clang + cxx: clang++ + env: + ASAN_OPTIONS: alloc_dealloc_mismatch=0,detect_leaks=0 + CC: ${{ matrix.cc }} + CXX: ${{ matrix.cxx }} + CXX_VER: ${{ matrix.cpp-ver }} + FORCE_03: ${{ matrix.force-03 }} + NO_STL: ${{ matrix.no-stl }} + + steps: + - uses: actions/checkout@v4 + + - name: Versions + run: | + cmake --version + ${CXX} --version + make --version + + - name: Syntax check + run: | + mkdir syntax-check + cd syntax-check + cmake ../test/syntax_check/c++${CXX_VER} \ + -DNO_STL=${NO_STL} \ + -DETL_USE_TYPE_TRAITS_BUILTINS=OFF \ + -DETL_USER_DEFINED_TYPE_TRAITS=OFF \ + -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=${FORCE_03} + make -j $(getconf _NPROCESSORS_ONLN) + + - name: Configure + if: ${{ matrix.tests == 'YES' }} + run: | + mkdir build + cd build + cmake .. \ + -DBUILD_TESTS=YES \ + -DNO_STL=${NO_STL} \ + -DETL_USE_TYPE_TRAITS_BUILTINS=OFF \ + -DETL_USER_DEFINED_TYPE_TRAITS=OFF \ + -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=${FORCE_03} \ + -DETL_CXX_STANDARD=${CXX_VER} + + - name: Build + if: ${{ matrix.tests == 'YES' }} + run: | + cd build + # getconf as portable solution via https://stackoverflow.com/a/64571679/6178613 + make -j $(getconf _NPROCESSORS_ONLN) + + - name: Run tests + if: ${{ matrix.tests == 'YES' }} + run: ./build/test/etl_tests diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml new file mode 100644 index 000000000..dfb0e5630 --- /dev/null +++ b/.github/workflows/macos.yml @@ -0,0 +1,77 @@ +name: macos +on: + push: + branches: [ master, development, pull-request/* ] + pull_request: + branches: [ master, pull-request/* ] + workflow_dispatch: + +jobs: + posix: + name: macOS + runs-on: macos-14 + strategy: + matrix: + #cpp-ver: ["03", 11, 14, 17, 20] + #no-stl: [ON, OFF] + cpp-ver: [11, 14, 17, 20] + no-stl: [OFF] + force-03: [ON, OFF] + #exclude: + #- cpp-ver: 03 + #force-03: ON + include: + - tests: YES + #- cpp-ver: "03" + #tests: NO + env: + ASAN_OPTIONS: alloc_dealloc_mismatch=0,detect_leaks=0 + CC: clang + CXX: clang++ + CXX_VER: ${{ matrix.cpp-ver }} + FORCE_03: ${{ matrix.force-03 }} + NO_STL: ${{ matrix.no-stl }} + + steps: + - uses: actions/checkout@v4 + + - name: Versions + run: | + cmake --version + ${CXX} --version + make --version + + - name: Syntax check + run: | + mkdir syntax-check + cd syntax-check + cmake ../test/syntax_check/c++${CXX_VER} \ + -DNO_STL=${NO_STL} \ + -DETL_USE_TYPE_TRAITS_BUILTINS=OFF \ + -DETL_USER_DEFINED_TYPE_TRAITS=OFF \ + -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=${FORCE_03} + make -j $(getconf _NPROCESSORS_ONLN) + + - name: Configure + if: ${{ matrix.tests == 'YES' }} + run: | + mkdir build + cd build + cmake .. \ + -DBUILD_TESTS=YES \ + -DNO_STL=${NO_STL} \ + -DETL_USE_TYPE_TRAITS_BUILTINS=OFF \ + -DETL_USER_DEFINED_TYPE_TRAITS=OFF \ + -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=${FORCE_03} \ + -DETL_CXX_STANDARD=${CXX_VER} + + - name: Build + if: ${{ matrix.tests == 'YES' }} + run: | + cd build + # getconf as portable solution via https://stackoverflow.com/a/64571679/6178613 + make -j $(getconf _NPROCESSORS_ONLN) + + - name: Run tests + if: ${{ matrix.tests == 'YES' }} + run: ./build/test/etl_tests diff --git a/.github/workflows/msvc.yml b/.github/workflows/msvc.yml index c63a35c2e..834630e2e 100644 --- a/.github/workflows/msvc.yml +++ b/.github/workflows/msvc.yml @@ -6,90 +6,49 @@ on: branches: [ master, pull-request/* ] jobs: - build-windows-msvc-stl: - name: Windows - STL + windows: + name: Windows runs-on: [windows-2022] + strategy: + matrix: + cpp-ver: ["03", 11, 14, 17, 20] + no-stl: [ON, OFF] + force-03: [ON, OFF] + exclude: + - cpp-ver: 03 + force-03: ON + include: + - cpp-ver: "03" + tests: NO + + env: + CXX_VER: ${{ matrix.cpp-ver }} + FORCE_03: ${{ matrix.force-03 }} + NO_STL: ${{ matrix.no-stl }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: recursive - name: Add msbuild to PATH - uses: microsoft/setup-msbuild@v1.0.2 + uses: microsoft/setup-msbuild@v2 - name: Build + shell: bash run: | - cmake -G "Visual Studio 17 2022" -AWin32 -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=20 ./ + cmake -G "Visual Studio 17 2022" \ + ./ \ + -AWin32 \ + -DBUILD_TESTS=ON \ + -DNO_STL=${NO_STL} \ + -DETL_USE_TYPE_TRAITS_BUILTINS=OFF \ + -DETL_USER_DEFINED_TYPE_TRAITS=OFF \ + -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=${FORCE_03} \ + -DETL_CXX_STANDARD=${CXX_VER} MSBuild.exe -version - MSBuild.exe .\etl.sln - - - name: Run tests - run: test/Debug/etl_tests.exe - - build-windows-msvc-no-stl: - name: Windows - No STL - runs-on: [windows-2022] - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - submodules: recursive - - - name: Add msbuild to PATH - uses: microsoft/setup-msbuild@v1.0.2 + MSBuild.exe -m ./etl.sln - - name: Build - run: | - cmake -G "Visual Studio 17 2022" -AWin32 -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=17 ./ - MSBuild.exe -version - MSBuild.exe .\etl.sln - - name: Run tests run: test/Debug/etl_tests.exe - - build-windows-msvc-stl-force-cpp03: - name: Windows - STL - Force C++03 - runs-on: [windows-2022] - - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - submodules: recursive - - - name: Add msbuild to PATH - uses: microsoft/setup-msbuild@v1.0.2 - - - name: Build - run: | - cmake -G "Visual Studio 17 2022" -AWin32 -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON -DETL_CXX_STANDARD=17 ./ - MSBuild.exe -version - MSBuild.exe .\etl.sln - - - name: Run tests - run: test/Debug/etl_tests.exe - - build-windows-msvc-no-stl-force-cpp03: - name: Windows - No STL - Force C++03 - runs-on: [windows-2022] - - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - submodules: recursive - - - name: Add msbuild to PATH - uses: microsoft/setup-msbuild@v1.0.2 - - - name: Build - run: | - cmake -G "Visual Studio 17 2022" -AWin32 -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON -DETL_CXX_STANDARD=17 ./ - MSBuild.exe -version - MSBuild.exe .\etl.sln - - - name: Run tests - run: test/Debug/etl_tests.exe -