Skip to content

Revamp project#4

Merged
Katze719 merged 12 commits intomainfrom
revamp-project
Nov 29, 2025
Merged

Revamp project#4
Katze719 merged 12 commits intomainfrom
revamp-project

Conversation

@Katze719
Copy link
Copy Markdown
Member

No description provided.

- Deleted multiple sequential interface headers to streamline the codebase and eliminate unused functionality.
- Updated `cpp_core.h` to remove references to the deleted headers, enhancing organization and maintainability.

These changes are part of ongoing refactoring efforts to improve header management and code clarity.
- Introduced `CMakePresets.json` to define build configurations for GCC, Clang, and MSVC compilers.
- Added toolchain files for GCC (`gcc-toolchain.cmake`), Clang (`clang-toolchain.cmake`), and MSVC (`msvc-toolchain.cmake`) to specify compiler settings and flags.
- Each toolchain file sets the C++ standard to C++23 and includes appropriate compiler flags for different build types (Debug and Release).

These additions enhance the build system's flexibility and support for multiple compilers, facilitating easier project setup and configuration.
- Increased minimum CMake version requirement to 3.30.
- Enabled export of compile commands and added support for C++23 modules in CMake configuration.
- Introduced a new static library `hello_module` with a simple module implementation and a corresponding test executable.
- Updated `.gitignore` to include `compile_commands.json` for better build management.

These changes enhance the build system's capabilities and introduce modular programming support.
@Katze719 Katze719 requested a review from Mqxx November 14, 2025 20:35
@Katze719 Katze719 self-assigned this Nov 14, 2025
- Deleted the line setting CMAKE_SYSTEM_PROCESSOR in the GCC, Clang, and MSVC toolchain files to simplify configuration.
- This change streamlines the toolchain setup without affecting the build process.

These modifications enhance the clarity and maintainability of the CMake configuration.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR performs a major refactoring that removes the sequential dispatch system and introduces C++23 module support with new build infrastructure.

  • Removes entire sequential dispatch queue infrastructure (9 internal headers, 14 interface headers)
  • Adds C++23 module test with hello module and example usage
  • Introduces compiler-specific toolchain files (GCC, Clang, MSVC) and CMake presets for multi-compiler builds
  • Updates CMake minimum version from 3.14 to 3.30 to support C++23 modules

Reviewed Changes

Copilot reviewed 32 out of 33 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
test/main.cpp New test file demonstrating C++23 module import syntax
test/hello.cxx New C++23 module implementation with simple add function
include/cpp_core/internal/sequential/*.h Removed internal sequential dispatch implementation files
include/cpp_core/interface/sequential/*.h Removed public sequential API wrapper functions
include/cpp_core/interface/sequential.h Removed aggregated sequential interface header
include/cpp_core.h Removed include of deleted sequential.h header
cmake/msvc-toolchain.cmake New MSVC toolchain with C++23 configuration
cmake/gcc-toolchain.cmake New GCC toolchain with C++23 configuration
cmake/clang-toolchain.cmake New Clang toolchain with C++23 configuration
CMakePresets.json New presets file defining build configurations for all three compilers
CMakeLists.txt Updated minimum version to 3.30, added module test targets and compile commands export
.gitignore Added compile_commands.json to ignored files

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Katze719
Copy link
Copy Markdown
Member Author

@copilot take a look at the comments from @Mqxx

Copy link
Copy Markdown

Copilot AI commented Nov 24, 2025

@Katze719 I've opened a new pull request, #5, to work on those changes. Once the pull request is ready, I'll request review from you.

Copy link
Copy Markdown
Member

@Mqxx Mqxx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we are using C++ Modules, consider renaming the include folder in project root to src.

Copy link
Copy Markdown
Member

@Mqxx Mqxx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also consider renaming serialGetPortsInfo into serialGetDevices

@Katze719
Copy link
Copy Markdown
Member Author

Since we are using C++ Modules, consider renaming the include folder in project root to src.

the C-API headers are still normal headers, so no modules in this repo

@Katze719
Copy link
Copy Markdown
Member Author

Also consider renaming serialGetPortsInfo into serialGetDevices

will use serialListPorts

…hain files

- Introduced a new script `get_version_from_git.cmake` to automatically determine versioning from Git tags, replacing manual version settings.
- Updated `CMakeLists.txt` to utilize the new versioning system and removed redundant version definitions.
- Simplified toolchain files for GCC, Clang, and MSVC by removing unnecessary settings and ensuring consistent C++ standard enforcement.
- Updated `cpp_core_config.cmake.in` to set version variables for parent projects.

These changes improve the maintainability and clarity of the CMake configuration while ensuring accurate versioning based on Git history.
- Updated the description to reflect the library's purpose as a header-only API definition for cross-platform serial communication.
- Enhanced the features section to highlight key functionalities, including C++23 compatibility and centralized version information.
- Improved instructions for obtaining platform-specific bindings and clarified versioning details.
- Removed the outdated overview documentation file to streamline the repository.

These changes aim to provide clearer guidance and improve the overall presentation of the library's capabilities.
- Introduced a new header file `serial_list_ports.h` to provide a function for enumerating available serial ports on the system.
- Updated `serial.h` to include the new `serial_list_ports.h` header, enhancing the library's capabilities for serial communication.

These changes expand the API to facilitate easier access to serial port information.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 37 out of 38 changed files in this pull request and generated 5 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Katze719 Katze719 merged commit 3ff7894 into main Nov 29, 2025
@Katze719 Katze719 deleted the revamp-project branch November 29, 2025 21:50
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.

4 participants