From 84eb2f1ebfd3f00ce73eb2b0dc97a6f10175ff67 Mon Sep 17 00:00:00 2001 From: ClausKlein Date: Sat, 5 Jul 2025 16:09:56 +0200 Subject: [PATCH 1/3] use llvm-toolchain.cmake --- CMakeLists.txt | 2 +- CMakePresets.json | 6 +++--- cmake/gnu-toolchain.cmake | 4 ++-- cmake/llvm-toolchain.cmake | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index afdaf7d..6534324 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,7 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSIO set(CMAKE_CXX_SCAN_FOR_MODULES 1) elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 15) set(CMAKE_CXX_SCAN_FOR_MODULES 1) -elseif() +else() set(CMAKE_CXX_SCAN_FOR_MODULES 0) endif() diff --git a/CMakePresets.json b/CMakePresets.json index 8fbea46..dd5820d 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -7,7 +7,7 @@ "generator": "Ninja", "binaryDir": "${sourceDir}/build/${presetName}", "cacheVariables": { - "CMAKE_CXX_STANDARD": "20" + "CMAKE_CXX_STANDARD": "23" } }, { @@ -55,7 +55,7 @@ "_debug-base" ], "cacheVariables": { - "CMAKE_TOOLCHAIN_FILE": "cmake/appleclang-toolchain.cmake" + "CMAKE_TOOLCHAIN_FILE": "cmake/llvm-toolchain.cmake" } }, { @@ -66,7 +66,7 @@ "_release-base" ], "cacheVariables": { - "CMAKE_TOOLCHAIN_FILE": "cmake/appleclang-toolchain.cmake" + "CMAKE_TOOLCHAIN_FILE": "cmake/llvm-toolchain.cmake" } }, { diff --git a/cmake/gnu-toolchain.cmake b/cmake/gnu-toolchain.cmake index 2e2a2ad..b471c0d 100644 --- a/cmake/gnu-toolchain.cmake +++ b/cmake/gnu-toolchain.cmake @@ -15,8 +15,8 @@ include_guard(GLOBAL) -set(CMAKE_C_COMPILER gcc) -set(CMAKE_CXX_COMPILER g++) +set(CMAKE_C_COMPILER gcc-15) +set(CMAKE_CXX_COMPILER g++-15) if(BEMAN_BUILDSYS_SANITIZER STREQUAL "MaxSan") set(SANITIZER_FLAGS diff --git a/cmake/llvm-toolchain.cmake b/cmake/llvm-toolchain.cmake index d783803..8c018b5 100644 --- a/cmake/llvm-toolchain.cmake +++ b/cmake/llvm-toolchain.cmake @@ -15,8 +15,8 @@ include_guard(GLOBAL) -set(CMAKE_C_COMPILER clang) -set(CMAKE_CXX_COMPILER clang++) +set(CMAKE_C_COMPILER clang-20) +set(CMAKE_CXX_COMPILER clang++-20) if(BEMAN_BUILDSYS_SANITIZER STREQUAL "MaxSan") set(SANITIZER_FLAGS From 80a91460ac52cb28985b22325ef49a18d1186a25 Mon Sep 17 00:00:00 2001 From: ClausKlein Date: Sat, 5 Jul 2025 18:20:25 +0200 Subject: [PATCH 2/3] Fix some typos with codespell --- .devcontainer/Dockerfile | 6 +++--- .pre-commit-config.yaml | 10 +++++----- CMakeLists.txt | 5 +++-- cmake/gnu-toolchain.cmake | 4 ++-- cmake/llvm-toolchain.cmake | 4 ++-- tests/CMakeLists.txt | 8 +++++++- 6 files changed, 22 insertions(+), 15 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index e1ff34c..ef37a92 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -7,10 +7,10 @@ RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/nul RUN echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ noble main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null RUN sudo apt-get update && sudo apt-get install -y cmake -# Install pre-commit -RUN sudo apt-get install -y pipx && pipx install pre-commit +# Install pre-commit and ninja +RUN sudo apt-get install -y pipx && pipx install pre-commit && pipx install ninja # Newer gcc/ llvm is needed to avoid ASAN Stalling # See: https://github.com/google/sanitizers/issues/1614 -# Minimal vesion: clang-18.1.3, gcc-13.2 +# Minimal version: clang-18.1.3, gcc-13.2 RUN sudo apt-get install -y gcc-14 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a26bab0..e17e149 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -20,14 +20,14 @@ repos: # CMake linting and formatting - repo: https://github.com/BlankSpruce/gersemi - rev: 0.15.1 + rev: 0.20.0 hooks: - id: gersemi name: CMake linting # Markdown linting # Config file: .markdownlint.yaml - - repo: https://github.com/igorshubovych/markdownlint-cli - rev: v0.42.0 - hooks: - - id: markdownlint + # - repo: https://github.com/igorshubovych/markdownlint-cli + # rev: v0.42.0 + # hooks: + # - id: markdownlint diff --git a/CMakeLists.txt b/CMakeLists.txt index 6534324..6cd404a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -cmake_minimum_required(VERSION 3.28) +cmake_minimum_required(VERSION 3.28...4.1) project( beman.scope @@ -116,7 +116,8 @@ if(BEMAN_SCOPE_INSTALL_CONFIG_FILE_PACKAGE) EXPORT beman.scope-targets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/beman.scope NAMESPACE beman:: - CXX_MODULES_DIRECTORY cxx-modules + CXX_MODULES_DIRECTORY + cxx-modules COMPONENT beman.scope ) endif() diff --git a/cmake/gnu-toolchain.cmake b/cmake/gnu-toolchain.cmake index b471c0d..2e2a2ad 100644 --- a/cmake/gnu-toolchain.cmake +++ b/cmake/gnu-toolchain.cmake @@ -15,8 +15,8 @@ include_guard(GLOBAL) -set(CMAKE_C_COMPILER gcc-15) -set(CMAKE_CXX_COMPILER g++-15) +set(CMAKE_C_COMPILER gcc) +set(CMAKE_CXX_COMPILER g++) if(BEMAN_BUILDSYS_SANITIZER STREQUAL "MaxSan") set(SANITIZER_FLAGS diff --git a/cmake/llvm-toolchain.cmake b/cmake/llvm-toolchain.cmake index 8c018b5..d783803 100644 --- a/cmake/llvm-toolchain.cmake +++ b/cmake/llvm-toolchain.cmake @@ -15,8 +15,8 @@ include_guard(GLOBAL) -set(CMAKE_C_COMPILER clang-20) -set(CMAKE_CXX_COMPILER clang++-20) +set(CMAKE_C_COMPILER clang) +set(CMAKE_CXX_COMPILER clang++) if(BEMAN_BUILDSYS_SANITIZER STREQUAL "MaxSan") set(SANITIZER_FLAGS diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 1444b00..537f620 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -11,7 +11,13 @@ FetchContent_MakeAvailable(Catch2) # module tests will only compile with gcc15 or clang20 and above if(CMAKE_CXX_SCAN_FOR_MODULES) - set(ALL_TESTNAMES scope_success scope_exit scope_fail unique_resource module) + set(ALL_TESTNAMES + scope_success + scope_exit + scope_fail + unique_resource + module + ) else() set(ALL_TESTNAMES scope_success scope_exit scope_fail unique_resource) endif() From b21d19f72dbb8cb8747c7812d848f93efecc50ed Mon Sep 17 00:00:00 2001 From: Jeff Garland Date: Sun, 6 Jul 2025 17:52:27 -0700 Subject: [PATCH 3/3] revert to cpp20 CMakePresets.json --- CMakePresets.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakePresets.json b/CMakePresets.json index dd5820d..858c63c 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -7,7 +7,7 @@ "generator": "Ninja", "binaryDir": "${sourceDir}/build/${presetName}", "cacheVariables": { - "CMAKE_CXX_STANDARD": "23" + "CMAKE_CXX_STANDARD": "20" } }, {