Commit Graph

119 Commits

Author SHA1 Message Date
scawful
405b542e98 build: add Homebrew fallback for googletest in sandboxed environments
Adds automatic detection of Homebrew-installed googletest to support
offline/sandboxed builds (e.g., Claude Code, restricted networks).

Changes:
- Add Homebrew detection logic to cmake/dependencies/testing.cmake
- Check /opt/homebrew/opt/googletest and /usr/local/opt/googletest
- Use brew --prefix googletest for dynamic detection
- Create target aliases (gtest -> GTest::gtest) for compatibility
- Only fetch from GitHub if no local installation found
- Update macOS build docs with yaml-cpp and googletest installation

Pattern mirrors existing yaml.cmake implementation. Complements the
pre-existing yaml-cpp Homebrew fallback to minimize network dependencies.

Tested with: brew install googletest (1.17.0, 2.4MB)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-20 00:22:47 -05:00
scawful
7391b00553 feat: add HTTP REST API server for external agent access
Implements Phase 2 from AI_API_ENHANCEMENT_HANDOFF.md to expose yaze
functionality via HTTP endpoints for automation and external tools.

Changes:
- Add YAZE_ENABLE_HTTP_API CMake option (defaults to YAZE_ENABLE_AGENT_CLI)
- Add YAZE_HTTP_API_ENABLED compile definition when enabled
- Integrate HttpServer into z3ed with conditional compilation
- Add --http-port and --http-host CLI flags with full parsing
- Create comprehensive API documentation with examples

Initial endpoints:
- GET /api/v1/health - Server health check
- GET /api/v1/models - List available AI models from all providers

Built with mac-ai preset (46 steps, 89MB binary).
Tested both endpoints successfully on localhost:8080.

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-20 00:22:47 -05:00
scawful
61c99ecfcd feat: enhance CMake configuration and CI workflow for AI features
- Added new build options for agent UI and remote automation in CMake presets, improving modularity.
- Updated CI workflow to enable AI runtime and agent UI during builds, ensuring compatibility with new features.
- Adjusted default Ollama model in scripts and documentation to reflect the lightweight version used in CI.
- Enhanced agent test suite script to support model overrides, improving flexibility for testing scenarios.
2025-11-16 21:36:04 -05:00
scawful
a5d98ad83c refactor: reorganize submodule structure and enhance CMake configuration
- Moved all third-party libraries (SDL, ImGui, Asar, etc.) from `src/lib/` and `third_party/` to a new `ext/` directory for better organization and clarity in dependency management.
- Updated CMake configuration to reflect the new paths, ensuring all targets and includes point to the `ext/` directory.
- Enhanced CMake presets to support new build options for AI and gRPC features, improving modularity and build flexibility.
- Added new feature flags for agent UI and remote automation, allowing for more granular control over build configurations.
- Updated documentation to reflect changes in the project structure and build options, ensuring clarity for contributors and users.
2025-11-16 18:27:37 -05:00
scawful
57759ffeaf fix: temporarily disable utf8_range installation in gRPC configuration
- Added a workaround to prevent utf8_range export errors in gRPC 1.67.1 by disabling its installation.
- Set CMAKE_SKIP_INSTALL_RULES to TRUE during gRPC loading to avoid conflicts with Abseil installation settings.
- Re-enabled installation rules after gRPC is loaded to maintain proper build configuration.
2025-11-07 07:58:59 -05:00
scawful
43fff327d8 fix: adjust gRPC and testing dependencies in CMake configuration
- Updated the CMake configuration to load testing dependencies before gRPC when both are enabled, preventing export errors related to gmock.
- Ensured that testing dependencies are loaded after gRPC if tests are enabled but gRPC is not, maintaining proper dependency order.
- Added logic to guard CMake's package lookup for gRPC, ensuring consistent toolchain usage and preventing conflicts with system-installed versions.
- Implemented checks for target availability and improved error handling for missing gRPC components, enhancing build reliability.
2025-11-05 21:10:33 -05:00
scawful
e8d4f9a41f refactor: disable protobuf and Abseil installation in gRPC configuration
- Updated gRPC configuration to disable installation of protobuf and Abseil, streamlining the build process and reducing unnecessary dependencies.
- This change aligns with ongoing efforts to enhance build efficiency and maintainability across platforms.
2025-11-05 19:18:45 -05:00
scawful
8ec10aca87 refactor: disable Abseil installation in gRPC configuration
- Updated gRPC configuration to disable Abseil installation, ensuring it is only included when necessary.
- This change aims to streamline the build process and reduce unnecessary dependencies, aligning with recent CI improvements.

This adjustment supports ongoing efforts to enhance build efficiency and maintainability across platforms.
2025-11-05 19:12:03 -05:00
scawful
27131ba449 feat: enable gRPC in CI builds and update Abseil dependencies
- Updated CI presets for Linux, macOS, and Windows to enable gRPC, improving build performance with caching.
- Adjusted Abseil inclusion logic to only include standalone Abseil when gRPC is disabled, ensuring compatibility and reducing unnecessary dependencies.
- Enhanced the list of exported Abseil targets from gRPC's bundled version for better utility access.

This change aims to streamline CI processes while maintaining the necessary dependencies for successful builds.
2025-11-05 11:19:43 -05:00
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
c1ee6f197e Merge remote-tracking branch 'origin/develop' into claude/debug-ci-build-failures-011CUmiMP8xwyFa1kdhkJGaX 2025-11-04 21:48:38 -05:00
Claude
445de5b7cf fix: implement platform-specific CI presets to resolve build failures
This commit implements the fixes identified in CI_BUILD_FAILURE_ANALYSIS.md
to ensure stable, fast CI builds across all platforms.

Changes:
1. Add platform-specific CI presets (ci-linux, ci-macos, ci-windows)
   - Disable gRPC to avoid 30-40 min build times and MSVC errors
   - Use minimal build configuration for faster, reliable CI
   - Expected build time reduction: ~40 min -> 5-10 min

2. Update CI workflow to use platform-specific presets
   - Build job now uses ci-linux, ci-macos, ci-windows
   - Test job now uses platform-specific presets
   - Ensures consistent behavior across all platforms

3. Fix gRPC version for Windows MSVC compatibility
   - Downgrade from v1.75.1 to v1.67.1
   - v1.75.1 has UPB compilation errors on Windows MSVC
   - v1.67.1 is tested and stable on all platforms

4. Update test presets to use 'minimal' configuration
   - Ensures test presets work on all platforms
   - Consistent with new CI approach

Benefits:
- Eliminates Windows MSVC gRPC compilation errors
- Prevents Linux CI timeout issues from long gRPC builds
- Reduces CI build time by ~75% (40 min -> 5-10 min)
- Maintains build stability for releases
- No symbol linkage conflicts (verified)

Technical Notes:
- Test executables use gtest_main (no main() conflicts)
- Main app (yaze), emulator (yaze_emu), and tests are separate executables
- Shared libraries (yaze_core, yaze_gfx, etc.) properly isolated
- gRPC disabled in CI but still available for local dev builds
2025-11-03 22:15:50 +00: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
7ce08b7e13 chore: update ImGui configuration and remove legacy CMake file
- Incremented cache revision in dependencies.lock to trigger rebuild.
- Deleted obsolete imgui.cmake file to streamline project structure.
- Updated imgui.cmake to set C++ standard requirement for ImGui and its test engine.

Benefits:
- Simplifies dependency management and ensures compatibility with C++17.
- Cleans up unused files, improving project maintainability.
2025-11-01 11:29:56 -04:00
scawful
66565a5229 chore: update gRPC dependency configuration in CMake
- Incremented cache revision in dependencies.lock to trigger CPM cache invalidation.
- Modified gRPC package configuration to disable submodule recursion and enable shallow cloning for improved fetch efficiency.

Benefits:
- Ensures up-to-date dependency management and optimizes the build process.
2025-11-01 11:27:35 -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
ef1796aa1c chore: update CI workflow and gRPC CMake configuration
- Modified the CI workflow to remove the `build/_deps` directory during the clean-up process, ensuring a more thorough cache reset.
- Updated gRPC CMake configuration to disable reflection support, further optimizing the build process by preventing unnecessary proto generation.

Benefits:
- Enhances the CI workflow by ensuring a clean build environment.
- Improves build efficiency by reducing unnecessary steps in gRPC integration.
2025-10-23 11:57:29 -04:00
scawful
c25eb95081 chore: add Linux CI package list and update gRPC CMake configuration
- Introduced a new file for Linux CI package dependencies to streamline the installation process.
- Updated gRPC CMake configuration to disable C++ reflection support, reducing unnecessary proto generation.

Benefits:
- Enhances the CI workflow by clearly defining required packages for Linux builds.
- Improves build efficiency by avoiding extra generation steps in gRPC integration.
2025-10-21 15:53:18 -04:00
scawful
8fb496a100 chore: enhance gRPC CMake configuration for improved target resolution
- Added logic to handle gRPC target resolution, allowing for fallback to bare names when using FetchContent or vcpkg.
- Updated the handling of CMAKE_CROSSCOMPILING to ensure proper configuration for host builds, preventing issues with protoc binary location.
- Adjusted target_add_protobuf function to use generator expressions for better compatibility and maintainability.

Benefits:
- Improves build reliability and flexibility when integrating gRPC support.
- Ensures correct handling of cross-compilation scenarios, enhancing compatibility across platforms.
2025-10-21 13:33:35 -04:00
scawful
88b3070d67 chore: enhance CMake configuration for gRPC and dependencies
- Added optional gRPC support in CMake, allowing for conditional inclusion based on the `YAZE_WITH_GRPC` option.
- Updated the handling of the FTXUI library to ensure it is fetched if not found, improving build reliability.
- Streamlined dependency management by including the `dependencies.cmake` file in the appropriate location.

Benefits:
- Provides flexibility for users to enable gRPC support, enhancing functionality.
- Improves build process by ensuring necessary libraries are available and properly configured.
2025-10-21 12:53:59 -04:00
scawful
301ee5a1d7 chore: update CMake configuration for ARM64 macOS builds
- Added settings to disable x86-specific optimizations in the CMake configuration for ARM64 macOS builds, ensuring compatibility and stability.
- Removed redundant x86-specific settings that were previously included, streamlining the configuration.

Benefits:
- Enhances build compatibility for ARM64 macOS users by preventing the inclusion of incompatible optimizations.
2025-10-18 16:11:25 -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
9f56728f80 chore: update gRPC version to v1.75.1 and remove /WHOLEARCHIVE linking
- 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.
2025-10-17 22:57:27 -04:00
scawful
354a96d688 chore: downgrade gRPC version for Windows compatibility
- 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.
2025-10-17 19:44:55 -04:00
scawful
8f7b2bd6a6 chore: update CI and release workflows for toolchain handling
- 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.
2025-10-17 16:30:50 -04:00
scawful
63c2098a21 chore: update gRPC version and compatibility notes
- 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.
2025-10-17 12:10:25 -04:00
scawful
7a8738ca7c chore: update CI workflows and vcpkg configuration
- 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.
2025-10-17 11:20:25 -04:00
scawful
5aa265230d chore(cmake): update gRPC versioning for platform compatibility
- 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.
2025-10-16 10:59:13 -04:00
scawful
1115b8e1e5 chore(cmake): enhance gRPC configuration for Windows builds
- 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.
2025-10-16 09:46:08 -04:00
scawful
3811002d80 chore(vcpkg): remove SDL2 overlay and related configurations
- Eliminated the custom vcpkg overlay for SDL2, which was previously used to address installation issues on Windows.
- Updated `vcpkg.json` to remove SDL2 dependency and related configurations from CI and release workflows.
- Deleted associated documentation and files for the SDL2 overlay to streamline the project structure.

Benefits:
- Simplifies the vcpkg configuration by removing unnecessary overlays, improving maintainability.
- Reduces complexity in the CI and release processes, enhancing overall build reliability.
2025-10-15 22:56:12 -04:00
scawful
a20a4832d2 chore(cmake): add vcpkg overlay support for SDL2
- Introduced custom vcpkg port overlays to address SDL2 installation issues on Windows by skipping pkgconfig fixup.
- Updated CI and release workflows to include the new `VCPKG_OVERLAY_PORTS` configuration for enhanced build reliability.
- Added documentation for the overlays, detailing their purpose and usage.

Benefits:
- Prevents build failures related to SDL2 on Windows, improving the overall stability of the build process.
- Streamlines the integration of patched ports without forking the vcpkg repository, enhancing maintainability.
2025-10-15 22:50:44 -04:00
scawful
5acda67016 chore(cmake): update vcpkg configuration and toolchain for Windows
- 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.
2025-10-15 22:42:56 -04:00
scawful
c82888cab0 feat(vcpkg): add SDL2, yaml-cpp, and zlib dependencies for Windows
- 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.
2025-10-15 09:26:17 -04:00
scawful
e071914e83 fix(ci): update Ninja version command in CI and release workflows
- 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.
2025-10-15 09:13:20 -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
e236ed93c3 refactor(ci): enhance caching and dependency management in workflows
- Added caching for ccache and CMake dependencies in CI and release workflows to improve build performance.
- Updated installation commands to include ccache across Linux, macOS, and Windows environments.
- Enhanced CMake configuration steps to utilize ccache for faster builds and added statistics reporting.

Benefits:
- Reduces build times and improves efficiency in CI processes, facilitating quicker feedback and integration.
2025-10-14 13:24:44 -04:00
scawful
8b5429d84e refactor(ci): enable EMU, Z3ED, and tools builds in CI and release workflows
- Updated CI and release workflows to enable building the emulator (YAZE_BUILD_EMU), Z3ED (YAZE_BUILD_Z3ED), and additional tools (YAZE_BUILD_TOOLS).
- Ensured consistent build configurations across different platforms to enhance testing and deployment capabilities.

Benefits:
- Improves the completeness of builds in CI and release processes, facilitating better testing and integration of all components.
2025-10-14 12:23:23 -04:00
scawful
e9e574cffc Forced gRPC’s bundled dependencies (protobuf + Abseil + gRPC itself) to honor the static MSVC runtime 2025-10-14 10:42:38 -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
a026207a2d refactor(build): update CMake configurations and toolchain for macOS
- Modified CMake settings to ensure consistent use of the Homebrew LLVM/Clang installation on macOS.
- Added a new toolchain file to specify the correct compiler and header search paths, resolving potential conflicts.
- Updated CMake presets to enable the EMU build and set appropriate compiler flags.

Benefits:
- Enhances build reliability and compatibility on macOS by utilizing the Homebrew LLVM toolchain.
- Streamlines the build process with improved configuration management.
2025-10-14 01:06:35 -04:00
scawful
d91dddfbe0 refactor(cmake): simplify ImGui test engine integration and feature flags
- Updated CMake configuration to always include the ImGui Test Engine when tests are enabled, removing conditional checks for UI tests.
- Simplified feature flag management by enabling JSON and gRPC by default, with a minimal build option to disable only the most expensive features.
- Enhanced status messages to provide clearer feedback on build configurations and feature availability.

Benefits:
- Streamlined integration of the ImGui Test Engine for testing purposes.
- Improved clarity in feature flag settings, making it easier to manage build configurations.
2025-10-11 21:44:01 -04:00
scawful
73837a3c7f chore(cmake): update compiler flag settings in utils.cmake
- Modified the yaze_add_compiler_flags function to set C++ and C standards in the parent scope, ensuring they are applied correctly across the project.
- Added a new compiler flag for MSVC to support C++20/23 features, enhancing compatibility with modern C++ standards.

Benefits:
- Improved consistency in compiler settings across different CMake targets.
- Enhanced support for newer C++ features, facilitating modern development practices.
2025-10-11 11:13:23 -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