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 afdaf7d..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 @@ -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() @@ -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/CMakePresets.json b/CMakePresets.json index 8fbea46..858c63c 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -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/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()