-
Notifications
You must be signed in to change notification settings - Fork 0
Dev #9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dev #9
Conversation
… AddSubDir implementation
…and update AddSubDir and AddFile methods
…tory and file creation
…ject metadata - Updated CMakeLists.txt to include project description, homepage, and improved build configuration. - Added CLI11 dependency and structured main.cpp to handle command-line options for configuration and preset management.
…ance and throw an exception on file read errors
…nventions (snake_case)
…e registerAPI with error handling for directory and file creation
…ed performance and memory management; update Lua bindings for shared ownership.
… main function to set error result for missing presets
Cpp rewrite
…nt and directory creation
…te CMake presets to remove LTO flags
…t cases to use std::string for path initialization
…th vcpkg libraries
… in lua.cpp and presets.cpp for consistency
…ce matrix configuration and streamline build steps
…iler environment configuration
…sure consistency in header file usage
|
Caution Review failedThe pull request is closed. WalkthroughThe pull request performs a comprehensive architectural migration from C to modern C++. It removes legacy C implementations (directory/file management, path parsing, logging, presets) and replaces them with C++ abstractions (fs::Path/Dir/File, Lua::LuaEngine, Presets::PresetManager). The build system is modernized with a rewritten CMakeLists.txt and updated CMakePresets, CI workflows gain Windows/MSVC support, and a comprehensive GoogleTest-based test suite is introduced. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes
Possibly related PRs
Poem
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (40)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This pull request introduces significant improvements to the build system, project structure, and developer tooling for the
cdirnutsproject. The main focus is on modernizing CMake configuration, enhancing cross-platform CI workflows (including Windows, macOS, and Linux ARM64), and improving Lua and C++ integration. Additionally, developer experience is improved with better diagnostics and documentation updates.Build system modernization and cross-platform CI:
CMakeLists.txtto use modern CMake practices, modular targets, proper dependency management, and separate library/executable targets. Adds support for C++ standard 23, improved compiler flags, reproducible builds, and better installation/test configuration.CMakePresets.jsonwith new presets for release/debug builds and vcpkg toolchain integration, aligning with the new CMake workflow.build-release.yml: Adds Windows MSVC setup, environment configuration, and switches to new CMake/Ninja/vcpkg presets for consistent cross-platform builds. [1] [2]cmake-single-platform.yml(renamed to "Test Release Platforms"): Expands to a build matrix covering Linux x64/ARM64, macOS x64/ARM64, and Windows x64. Adds workflow dispatch for targeted runs, and uses new CMake/vcpkg/Ninja setup.Developer tooling and diagnostics:
.luarc.jsonand updates.vscode/settings.jsonto recognizecdirnutsas a global for Lua diagnostics, reducing false positives in editor linting. [1] [2]Documentation improvements:
LUA_API.mdto reflect the C++ rewrite, new API naming conventions, and improved descriptions of the Lua integration and usage patterns.Build System and CI Modernization
CMakeLists.txtfor modern CMake, modular targets, C++23, improved dependency management, and robust installation/testing.CMakePresets.jsonupdated with new build and configure presets for release/debug/test scenarios, matching the new workflow.Developer Experience
.luarc.jsonand updates VS Code settings to recognizecdirnutsas a global in Lua, improving linting and diagnostics for contributors. [1] [2]Documentation
LUA_API.mdfor new C++-based Lua API, revised function names, and clearer usage instructions.Summary by CodeRabbit
New Features
Documentation
Tests
Chores
✏️ Tip: You can customize this high-level summary in your review settings.