- Introduced a new `yaze_grpc_support` library to centralize all gRPC and protobuf usage, addressing Windows linker errors and improving build stability.
- Updated CMake configurations across various components to link against the new support library instead of individual protobuf targets, simplifying the linking process.
- Removed legacy whole-archive linking logic, ensuring a cleaner and more maintainable build setup.
Benefits:
- Reduces complexity in CMake files and enhances compatibility across platforms.
- Prevents potential linker errors by consolidating gRPC and protobuf dependencies into a single library.
- Upgraded gRPC version from v1.68.0 to v1.75.1 for improved compatibility across all platforms.
- Removed /WHOLEARCHIVE linking for protobuf to prevent duplicate version resource errors in the dependency chain.
- Updated status messages to reflect the latest gRPC version and build optimizations.
Benefits:
- Enhances build stability and compatibility with modern toolchains.
- Simplifies linking process by avoiding unnecessary options that cause conflicts.
- Changed gRPC version from v1.75.1 to v1.68.0 to resolve linker errors related to protobuf resource files on Windows.
- Updated compatibility notes to reflect the stable version and reasons for the downgrade.
Benefits:
- Improves build stability on Windows by avoiding LNK1241 errors during linking.
- Ensures better compatibility with clang-cl and MSVC toolchains.
- Upgraded gRPC from v1.67.1 to v1.75.1 for improved Windows compatibility.
- Disabled BoringSSL ASM optimizations for better clang-cl support.
- Updated documentation to reflect changes in build times and reasons for using FetchContent over vcpkg for gRPC.
- Removed unused gRPC and protobuf dependencies from `vcpkg.json`.
- Updated CI configuration to enable vcpkg installation for SDL2 and yaml-cpp.
- Added support for MSVC in CI workflows and improved caching strategies for vcpkg packages.
- Enhanced logging in build steps to provide better feedback on dependency status and build progress.
- Added detailed logging for vcpkg toolchain detection and gRPC target verification in `grpc_windows.cmake`.
- Updated gRPC version to v1.67.1 for improved MSVC compatibility and stability.
- Enhanced target checks for `protoc` and `grpc_cpp_plugin`, providing fallbacks and clearer error messages.
- Streamlined the export of gRPC and protobuf targets to ensure proper linking in Windows builds.
Benefits:
- Improves build diagnostics and error handling for gRPC integration on Windows.
- Ensures compatibility with modern compilers and enhances overall build reliability.
- Modified CMake presets to include static triplet for vcpkg in Windows configurations, enhancing build consistency.
- Updated vcpkg baseline and commit ID across configuration files to ensure compatibility with the latest package versions.
- Enhanced CI workflows to utilize the new vcpkg toolchain file, improving the setup process for Windows builds.
Benefits:
- Ensures the project leverages the latest features and fixes from vcpkg, enhancing overall stability.
- Streamlines the Windows build process by consolidating vcpkg configurations, reducing potential discrepancies during builds.
- Updated CMakeLists.txt to provide clearer logging and error messages for vcpkg integration, including detailed status reports for toolchain and triplet settings.
- Modified CI workflows to utilize manifest mode for vcpkg installations, improving dependency management and build reliability.
- Enhanced SDL2 and gRPC configurations to prioritize vcpkg packages, ensuring faster builds and clearer fallback mechanisms.
- Improved overall CMake structure for better readability and maintainability, including updated messages for build configurations and warnings.
- Updated gRPC configuration to use version 1.67.1, improving compatibility with modern compilers and fixing MSVC template issues.
- Enhanced warning messages for missing vcpkg gRPC installation, providing clearer instructions for faster builds.
- Introduced a new dungeon test harness tool to capture and dump the state of WRAM and CPU/PPU registers, aiding in emulator testing and development.
- Organized source groups in CMake for better structure and clarity in the input and UI systems.
- Added a new `grpc_windows.cmake` file for optimized gRPC builds on Windows using vcpkg, including checks for required targets and fallbacks.
- Updated `grpc.cmake` to include the new Windows-specific configuration and streamline the build process.
- Removed the `abseil-cpp` submodule from `.gitmodules` as it is no longer needed.