- 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.
- Modified CI workflow to correctly format the toolchain file argument for CMake.
- Updated release workflow to enhance the release creation process, ensuring the latest release is marked appropriately.
- Added configuration to disable protobuf version resource on Windows to prevent duplicate resource errors during linking.
Benefits:
- Improves build reliability and consistency across different environments.
- Streamlines the release process, making it more intuitive for developers.
- 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.
- Adjusted gRPC versioning in `grpc.cmake` to use platform-specific versions: v1.75.1 for macOS/Linux and v1.67.1 for Windows MSVC.
- Added detailed logging to indicate the selected gRPC version and its compatibility rationale.
Benefits:
- Enhances compatibility with modern compilers and platforms, improving overall build reliability.
- 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.
- Introduced new dependencies for SDL2, yaml-cpp, and zlib in the vcpkg.json file, enhancing the project's capability to support additional features on Windows.
- Updated the SDL2 override to specify version 2.30.9, ensuring compatibility with the latest features.
Benefits:
- Expands the project's functionality by integrating essential libraries, improving overall performance and maintainability.
- Modified the Ninja version command in both CI and release workflows to ensure the correct environment path is set before executing the version check.
- This change enhances the reliability of the Ninja installation process on Windows.
Benefits:
- Improves the setup process for Windows environments by ensuring accurate feedback on the Ninja installation, leading to more efficient builds.
- Made ABSL_TARGETS available to the rest of the project via include(), improving modularity.
- Added MSVC-specific compile options for yaml-cpp to address exception handling warnings.
Benefits:
- Streamlined integration of Abseil targets across the project.
- Improved compatibility and reduced warnings for yaml-cpp on MSVC.
- Refactored CMakeLists.txt to streamline project configuration and improve readability.
- Introduced new utility functions in `utils.cmake` for setting compiler flags and managing dependencies.
- Added `dependencies.cmake` to centralize third-party dependency management, enhancing modularity.
- Updated CI workflows to include new build options and improved logging for better feedback during configuration.
- Implemented precompiled headers in various libraries to speed up compilation times.
Benefits:
- Improved maintainability and clarity of the build system.
- Enhanced build performance through precompiled headers.
- Streamlined dependency management for easier integration of third-party libraries.
- Removed the abseil dependency from vcpkg.json for Windows platform.
- Updated CMake configuration to prevent finding system-installed protobuf and abseil, ensuring gRPC uses bundled versions.
- Modified todo_manager.cc to convert paths to strings for consistency.
- Updated vision_action_refiner.cc to explicitly convert stripped whitespace strings to std::string.
- Added undefinitions for Windows macros in z3ed_network_client.cc to avoid conflicts with method names.
- Removed the `builtin-baseline` from `vcpkg.json` to prevent version database mismatches.
- Updated the CI workflow to synchronize with the stable vcpkg commit `c8696863d371ab7f46e213d8f5ca923c4aef2a00`.
- Adjusted the CI build matrix to remove the x86 Windows build due to cpp-httplib incompatibility.
- Added compiler definitions in `cmake/grpc.cmake` to prevent Windows macro pollution in protobuf-generated headers.
- 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.
- Integrated gRPC service for automated GUI testing in ImGuiTestHarness.
- Implemented service methods: Ping, Click, Type, Wait, Assert, and Screenshot.
- Created proto definitions for the gRPC service and messages.
- Added server lifecycle management for the gRPC server.
- Included necessary dependencies and build configurations in CMake.