Skip to content

chore: Modernize CMake build, CI workflows, and code quality tooling#16

Merged
monkey0722 merged 13 commits intomainfrom
feature/20261229-v2
Dec 29, 2025
Merged

chore: Modernize CMake build, CI workflows, and code quality tooling#16
monkey0722 merged 13 commits intomainfrom
feature/20261229-v2

Conversation

@monkey0722
Copy link
Copy Markdown
Owner

This pull request introduces significant improvements to the C++ project's build system, code quality tooling, and codebase consistency. The main focus is on modernizing the CMake configuration, enhancing CI workflows, enforcing code quality standards, and making minor code improvements for readability and correctness.

Build System Modernization and CI Improvements:

  • Migrated to CMake 3.25+ with modern target-based configuration, introduced CMakePresets.json for standardized build and test presets, and improved compiler warning handling using target_compile_options. [1] [2] [3]
  • Updated the GitHub Actions workflow to split formatting and build/test jobs, enforce clang-format checks, and use CMake presets for CI builds.

Code Quality and Tooling Enhancements:

  • Refined .clang-tidy configuration to enable/disable specific checks, treat critical warnings as errors, and set header filtering for source files.
  • Improved CMake targets for clang-format and clang-tidy, ensuring only source files are linted and all code is properly formatted. [1] [2]
  • Added VSCode settings for YAML associations and updated documentation with requirements, build instructions, and code quality commands. [1] [2]
  • Removed obsolete scripts/run_tests.sh in favor of CMake presets and CI workflows.

Codebase Consistency and Minor Fixes:

Summary of Most Important Changes:

Build System & CI Modernization

  • Migrated to CMake 3.25+ with modern target-based configuration, introduced CMakePresets.json for easier builds and tests, and improved compiler warning management. [1] [2] [3]
  • Updated GitHub Actions workflow to separate formatting and build/test jobs, enforce code formatting with clang-format, and use CMake presets for CI.
  • Removed legacy shell script scripts/run_tests.sh in favor of CMake-based workflows.

Code Quality Tooling

  • Enhanced .clang-tidy configuration: fine-tuned enabled/disabled checks, set key warnings as errors, and added header filtering for focused analysis.
  • Improved CMake integration for clang-format and clang-tidy targets, ensuring correct file selection and command usage. [1] [2]
  • Updated VSCode settings for better YAML support and improved documentation with requirements and code quality instructions. [1] [2]

Codebase Improvements

@monkey0722 monkey0722 self-assigned this Dec 29, 2025
@monkey0722 monkey0722 merged commit ce8936e into main Dec 29, 2025
2 checks passed
@monkey0722 monkey0722 deleted the feature/20261229-v2 branch December 29, 2025 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant