diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 74b4489..b966b0c 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -23,20 +23,20 @@ jobs: run: | wget https://apt.llvm.org/llvm.sh chmod +x llvm.sh - sudo ./llvm.sh 18 + sudo ./llvm.sh 19 - name: Install dependencies run: | sudo apt-get update - sudo apt-get install -y gcc-14 g++-14 cmake ninja-build clang-18 libfmt-dev libc++-18-dev libc++abi-18-dev - sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-18 100 - sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 100 + sudo apt-get install -y gcc-14 g++-14 cmake ninja-build clang-19 libfmt-dev libc++-19-dev libc++abi-19-dev + sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-19 100 + sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-19 100 - - name: tests clang-18-release - run: cmake --workflow --preset="clang-18-release" + - name: tests clang-19-release + run: cmake --workflow --preset="clang-19-release" - - name: tests clang-18-libc++release - run: cmake --workflow --preset="clang-18-libc++release" + - name: tests clang-19-libc++release + run: cmake --workflow --preset="clang-19-libc++release" - name: tests gcc-14-release run: cmake --workflow --preset="gcc-14-release" diff --git a/CMakeLists.txt b/CMakeLists.txt index 3281098..9ca94f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,13 +21,13 @@ if( PROJECT_IS_TOP_LEVEL AND STRALGO_ENABLE_UNIT_TESTS) enable_testing() endif() -include(cmake/CPM.cmake) +include(cmake/get_cpm.cmake) # ---- Add dependencies via CPM ---- # see https://github.com/cpm-cmake/CPM.cmake for more info CPMAddPackage( NAME PackageProject.cmake GITHUB_REPOSITORY TheLartians/PackageProject.cmake - VERSION 1.11.2 + VERSION 1.12.0 ) #---------------------------------------------------------------- @@ -36,7 +36,7 @@ CPMAddPackage( CPMAddPackage( small_vectors GITHUB_REPOSITORY arturbac/small_vectors - GIT_TAG v3.1.8 + GIT_TAG v3.1.9 ) if( PROJECT_IS_TOP_LEVEL ) diff --git a/CMakePresets.json b/CMakePresets.json index 2d11906..d024f2b 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -36,48 +36,22 @@ } }, { - "name": "clang-18-release", - "inherits": [ "cfg-common", "cfg-ninja", "cfg-c++23" ], - "cacheVariables": { "CMAKE_CXX_COMPILER" : "clang++-18" } - }, - { - "name": "clang-18-libc++release", - "inherits": ["clang-18-release", "cfg-libc++"] - }, - { - "name": "clang-17-release", + "name": "clang-19-release", "inherits": [ "cfg-common", "cfg-ninja", "cfg-c++23" ], - "cacheVariables": { "CMAKE_CXX_COMPILER" : "clang++-17" } + "cacheVariables": { "CMAKE_CXX_COMPILER" : "clang++-19" } }, { - "name": "clang-17-libc++release", - "inherits": ["clang-17-release", "cfg-libc++"] + "name": "clang-19-libc++release", + "inherits": ["clang-19-release", "cfg-libc++"] }, { - "name": "clang-16-release", - "inherits": [ "cfg-common", "cfg-ninja", "cfg-c++23" ], - "cacheVariables": { "CMAKE_CXX_COMPILER" : "clang++-16" } - }, - { - "name": "clang-16-libc++release", - "inherits": ["clang-16-release", "cfg-libc++"] - }, - { - "name": "clang-15-release", + "name": "clang-18-release", "inherits": [ "cfg-common", "cfg-ninja", "cfg-c++23" ], - "cacheVariables": { "CMAKE_CXX_COMPILER": "clang++-15" } - }, - { - "name": "clang-15-libc++release", - "inherits": ["clang-15-release", "cfg-libc++"] + "cacheVariables": { "CMAKE_CXX_COMPILER" : "clang++-18" } }, { - "name": "gcc-12-release", - "inherits": [ "cfg-common", "cfg-ninja", "cfg-c++20" ], - "cacheVariables": { - "CMAKE_CXX_COMPILER": "g++-12", - "CMAKE_BUILD_TYPE": "RelWithDebInfo" - } + "name": "clang-18-libc++release", + "inherits": ["clang-18-release", "cfg-libc++"] }, { "name": "gcc-13-release", @@ -107,8 +81,8 @@ "generator": "Visual Studio 17 2022" }, { - "name": "clang-15-release-coverage", - "inherits": "clang-15-release", + "name": "clang-19-release-coverage", + "inherits": "clang-19-release", "cacheVariables": { "CMAKE_CXX_FLAGS": "--coverage" } @@ -116,40 +90,20 @@ ], "buildPresets": [ { - "name": "clang-18-release", - "configurePreset": "clang-18-release" - }, - { - "name": "clang-18-libc++release", - "configurePreset": "clang-18-libc++release" + "name": "clang-19-release", + "configurePreset": "clang-19-release" }, { - "name": "clang-17-release", - "configurePreset": "clang-17-release" + "name": "clang-19-libc++release", + "configurePreset": "clang-19-libc++release" }, { - "name": "clang-17-libc++release", - "configurePreset": "clang-17-libc++release" - }, - { - "name": "clang-16-release", - "configurePreset": "clang-16-release" - }, - { - "name": "clang-16-libc++release", - "configurePreset": "clang-16-libc++release" - }, - { - "name": "clang-15-release", - "configurePreset": "clang-15-release" - }, - { - "name": "clang-15-libc++release", - "configurePreset": "clang-15-libc++release" + "name": "clang-18-release", + "configurePreset": "clang-18-release" }, { - "name": "gcc-12-release", - "configurePreset": "gcc-12-release" + "name": "clang-18-libc++release", + "configurePreset": "clang-18-libc++release" }, { "name": "gcc-13-release", @@ -162,56 +116,26 @@ ], "testPresets": [ { - "name": "clang-18-release", - "configurePreset": "clang-18-release", - "output": {"outputOnFailure": true}, - "execution": {"noTestsAction": "error", "stopOnFailure": true} - }, - { - "name": "clang-18-libc++release", - "configurePreset": "clang-18-libc++release", - "output": {"outputOnFailure": true}, - "execution": {"noTestsAction": "error", "stopOnFailure": true} - }, - { - "name": "clang-17-release", - "configurePreset": "clang-17-release", - "output": {"outputOnFailure": true}, - "execution": {"noTestsAction": "error", "stopOnFailure": true} - }, - { - "name": "clang-17-libc++release", - "configurePreset": "clang-17-libc++release", + "name": "clang-19-release", + "configurePreset": "clang-19-release", "output": {"outputOnFailure": true}, "execution": {"noTestsAction": "error", "stopOnFailure": true} }, { - "name": "clang-16-release", - "configurePreset": "clang-16-release", + "name": "clang-19-libc++release", + "configurePreset": "clang-19-libc++release", "output": {"outputOnFailure": true}, "execution": {"noTestsAction": "error", "stopOnFailure": true} }, { - "name": "clang-16-libc++release", - "configurePreset": "clang-16-libc++release", - "output": {"outputOnFailure": true}, - "execution": {"noTestsAction": "error", "stopOnFailure": true} - }, - { - "name": "clang-15-release", - "configurePreset": "clang-15-release", - "output": {"outputOnFailure": true}, - "execution": {"noTestsAction": "error", "stopOnFailure": true} - }, - { - "name": "clang-15-libc++release", - "configurePreset": "clang-15-libc++release", + "name": "clang-18-release", + "configurePreset": "clang-18-release", "output": {"outputOnFailure": true}, "execution": {"noTestsAction": "error", "stopOnFailure": true} }, { - "name": "gcc-12-release", - "configurePreset": "gcc-12-release", + "name": "clang-18-libc++release", + "configurePreset": "clang-18-libc++release", "output": {"outputOnFailure": true}, "execution": {"noTestsAction": "error", "stopOnFailure": true} }, @@ -230,155 +154,70 @@ ], "workflowPresets": [ { - "name": "clang-18-release", - "steps": [ - { - "type": "configure", - "name": "clang-18-release" - }, - { - "type": "build", - "name": "clang-18-release" - }, - { - "type": "test", - "name": "clang-18-release" - } - ] - }, - { - "name": "clang-18-libc++release", - "steps": [ - { - "type": "configure", - "name": "clang-18-libc++release" - }, - { - "type": "build", - "name": "clang-18-libc++release" - }, - { - "type": "test", - "name": "clang-18-libc++release" - } - ] - }, - { - "name": "clang-17-release", + "name": "clang-19-release", "steps": [ { "type": "configure", - "name": "clang-17-release" + "name": "clang-19-release" }, { "type": "build", - "name": "clang-17-release" + "name": "clang-19-release" }, { "type": "test", - "name": "clang-17-release" + "name": "clang-19-release" } ] }, { - "name": "clang-17-libc++release", + "name": "clang-19-libc++release", "steps": [ { "type": "configure", - "name": "clang-17-libc++release" + "name": "clang-19-libc++release" }, { "type": "build", - "name": "clang-17-libc++release" + "name": "clang-19-libc++release" }, { "type": "test", - "name": "clang-17-libc++release" + "name": "clang-19-libc++release" } ] }, { - "name": "clang-16-release", - "steps": [ - { - "type": "configure", - "name": "clang-16-release" - }, - { - "type": "build", - "name": "clang-16-release" - }, - { - "type": "test", - "name": "clang-16-release" - } - ] - }, - { - "name": "clang-16-libc++release", - "steps": [ - { - "type": "configure", - "name": "clang-16-libc++release" - }, - { - "type": "build", - "name": "clang-16-libc++release" - }, - { - "type": "test", - "name": "clang-16-libc++release" - } - ] - }, - { - "name": "clang-15-release", - "steps": [ - { - "type": "configure", - "name": "clang-15-release" - }, - { - "type": "build", - "name": "clang-15-release" - }, - { - "type": "test", - "name": "clang-15-release" - } - ] - }, - { - "name": "clang-15-libc++release", + "name": "clang-18-release", "steps": [ { "type": "configure", - "name": "clang-15-libc++release" + "name": "clang-18-release" }, { "type": "build", - "name": "clang-15-libc++release" + "name": "clang-18-release" }, { "type": "test", - "name": "clang-15-libc++release" + "name": "clang-18-release" } ] }, { - "name": "gcc-12-release", + "name": "clang-18-libc++release", "steps": [ { "type": "configure", - "name": "gcc-12-release" + "name": "clang-18-libc++release" }, { "type": "build", - "name": "gcc-12-release" + "name": "clang-18-libc++release" }, { "type": "test", - "name": "gcc-12-release" + "name": "clang-18-libc++release" } ] }, diff --git a/README.md b/README.md index fd23d79..a6b03b8 100644 --- a/README.md +++ b/README.md @@ -298,13 +298,12 @@ full implementation performance comparison can be seen in perf/perf.cc ### tested compilers there are predefined cmake workflows to test -* cmake --workflow --preset="clang-16-release" -* cmake --workflow --preset="clang-16-libc++release" -* cmake --workflow --preset="clang-15-release" , this is limited as clang 15 has broken views -* cmake --workflow --preset="clang-15-libc++release" +* cmake --workflow --preset="clang-19-release" +* cmake --workflow --preset="clang-19-libc++release" +* cmake --workflow --preset="clang-18-release" +* cmake --workflow --preset="clang-18-libc++release" +* cmake --workflow --preset="gcc-14-release" * cmake --workflow --preset="gcc-13-release" -* cmake --workflow --preset="gcc-12-release" -* msvc support is planned ## Feedback diff --git a/cmake/CPM.cmake b/cmake/get_cpm.cmake similarity index 100% rename from cmake/CPM.cmake rename to cmake/get_cpm.cmake diff --git a/test.sh b/test.sh index 3a188e4..637d998 100755 --- a/test.sh +++ b/test.sh @@ -1,8 +1,5 @@ -cmake --workflow --preset="clang-17-release" -cmake --workflow --preset="clang-17-libc++release" -cmake --workflow --preset="clang-16-release" -cmake --workflow --preset="clang-16-libc++release" -cmake --workflow --preset="clang-15-release" -cmake --workflow --preset="clang-15-libc++release" -cmake --workflow --preset="gcc-13-release" -cmake --workflow --preset="gcc-12-release" +cmake --workflow --preset="clang-18-release" --fresh +cmake --workflow --preset="clang-18-libc++release" --fresh +cmake --workflow --preset="clang-19-release" --fresh +cmake --workflow --preset="clang-19-libc++release" --fresh +cmake --workflow --preset="gcc-14-release" --fresh