Commit Graph

14 Commits

Author SHA1 Message Date
scawful
a4a826274a fix: include Abseil when gRPC is disabled
Abseil is required for failure_signal_handler and other utilities
used by the application even when gRPC is disabled. This fixes CI
build failures on Ubuntu where Abseil targets were not found when
gRPC was disabled in CI presets.
2025-11-05 11:15:13 -05:00
scawful
a9f0b8eb9c chore: update CMake dependency configurations to remove PARENT_SCOPE
- Removed PARENT_SCOPE from various dependency target definitions in CMake files (grpc.cmake, imgui.cmake, sdl2.cmake, testing.cmake, yaml.cmake).
- Ensured that all targets are set locally for better clarity and management.

Benefits:
- Simplifies the dependency management process and improves the readability of CMake configurations.
2025-11-01 11:32:16 -04:00
scawful
ef07dc0012 chore: update configuration files and enhance dependency management
- Added new entries to `.pre-commit-config.yaml`, `cmake-format.yaml`, and `.github/dependabot.yml` to improve code quality checks and dependency updates.
- Enhanced GitHub Actions workflows by adding new steps for testing and build retention.
- Introduced support for the nlohmann_json library in CMake, allowing for conditional inclusion based on the `YAZE_ENABLE_JSON` option.
- Updated CMake configurations to streamline SDL2 and gRPC integration, ensuring proper linking and target management.

Benefits:
- Improves code quality and consistency through automated checks and formatting.
- Enhances dependency management and build reliability across platforms.
- Provides flexibility for users to enable optional features, improving overall functionality.
2025-10-31 20:20:31 -04:00
scawful
d07c0abae8 chore: enhance clangd and CI configurations for improved development experience
- Updated `.clangd` configuration to include additional include paths and feature flags tailored for ROM hacking workflows, optimizing IntelliSense support.
- Introduced `.pre-commit-config.yaml` for managing code quality checks and formatting, ensuring consistent code style across the project.
- Added `cmake-format.yaml` for CMake formatting configuration, promoting adherence to style guidelines.
- Enhanced CI workflows to include new actions for testing and building, improving overall reliability and efficiency in the development process.

Benefits:
- Streamlines development setup and improves code quality through automated checks.
- Facilitates better collaboration by ensuring consistent coding standards and configurations.
2025-10-31 20:19:22 -04:00
scawful
6db7ba4782 chore: consolidate gRPC and protobuf linking into a dedicated support library
- 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.
2025-10-18 15:58:58 -04:00
scawful
283a21888e chore: refine protobuf linking logic for Windows builds
- Enhanced CMake configuration to conditionally apply /WHOLEARCHIVE linking for protobuf targets, ensuring only library targets are included.
- Updated linking logic across multiple components including `yaze`, `yaze_emu`, `z3ed`, and test suites to improve compatibility and prevent linker errors.

Benefits:
- Increases build stability and clarity by ensuring only relevant targets are linked, reducing potential conflicts during the build process.
2025-10-18 12:53:15 -04:00
scawful
0127913ff9 refactor(cmake): simplify Protobuf target handling in dependencies.cmake
- Refactored the logic for appending Protobuf targets to streamline the configuration.
- Removed unnecessary checks and consolidated target handling for improved clarity and maintainability.
- Introduced YAZE_PROTOBUF_WHOLEARCHIVE_TARGETS to facilitate linking without "lite" variants.

Benefits:
- Enhances the organization of CMake configurations, leading to a more efficient build process.
2025-10-14 22:53:14 -04:00
scawful
0b72b56594 refactor(cmake): enhance Protobuf target handling for MSVC
- Introduced YAZE_PROTOBUF_WHOLEARCHIVE_TARGETS to streamline linking of Protobuf targets, excluding "lite" variants.
- Updated CMake configurations across various components (yaze, yaze_core_lib, yaze_editor, yaze_net, yaze_agent, z3ed) to utilize the new whole-archive targets for MSVC builds.
- Improved test suite linking to ensure all Protobuf symbols are included during the build process.

Benefits:
- Enhances compatibility and maintainability of Protobuf linking, leading to a more robust build configuration.
2025-10-14 22:22:00 -04:00
scawful
6dbc30c11f refactor: Introduced a SessionCardRegistry and WindowDelegate for better session management in the editor.
Benefits:
- Streamlines the build process by allowing for multiple Protobuf targets, enhancing compatibility and maintainability.
- Improves session management capabilities within the editor, leading to a more organized and efficient user experience.
- Enhance Protobuf target handling in CMake configuration
- Updated CMake files to support multiple Protobuf targets, improving flexibility in linking.
- Adjusted target link libraries across various components (yaze, yaze_core_lib, yaze_editor, etc.) to utilize the new
2025-10-14 20:30:25 -04:00
scawful
01d3e46e87 refactor(build): enhance CMake configurations for protobuf integration
- Updated CMake files to conditionally link against libprotobuf based on the YAZE_PROTOBUF_TARGET variable across various modules (core, net, agent, z3ed).
- Ensured consistent use of the static MSVC runtime to align with vcpkg static triplets.
- Improved clarity in build logs by adding status messages for whole-archive linking conditions.

Benefits:
- Enhances modularity and compatibility of the build system with protobuf.
- Streamlines the build process for different platforms by ensuring appropriate linking based on configuration options.
2025-10-14 09:01:12 -04:00
scawful
feeb16cb9f chore(cmake): enhance CMake configuration for Abseil and yaml-cpp
- 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.
2025-10-11 10:49:40 -04:00
scawful
a8d49306e5 chore(cmake): update .gitignore and enhance CMake configuration
- Added new entries to .gitignore to exclude generated files and directories, improving project cleanliness.
- Set minimum policy version for subdirectories in CMake to ensure compatibility with older dependencies like yaml-cpp, enhancing build reliability.

Benefits:
- Streamlined project structure by ignoring unnecessary files.
- Improved compatibility and maintainability of the CMake configuration.
2025-10-11 03:52:20 -04:00
scawful
3b6f06f882 feat(cmake): update yaml-cpp dependency handling for CMake compatibility
- Modified the CMake configuration for yaml-cpp to use version 0.8.0 with an inline patch, ensuring compatibility with CMake 3.31+.
- Implemented a manual population and patching process to adjust the minimum required CMake version in the yaml-cpp CMakeLists.txt, enhancing build reliability.

Benefits:
- Improved compatibility with newer CMake versions.
- Streamlined dependency management for yaml-cpp.
2025-10-11 03:38:42 -04:00
scawful
f54949bdd8 feat(build-system): enhance CMake configuration and introduce new utility files
- 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.
2025-10-11 02:44:17 -04:00