Commit Graph

2780 Commits

Author SHA1 Message Date
scawful
7a7acb71bd Enhance GitHub Actions workflow by adding vcpkg download cache preparation for Windows and macOS
- Introduced steps to prepare a download cache for vcpkg on both Windows and macOS, improving build efficiency and reducing download times.
- Ensured that the cache directories are created conditionally based on the operating system, maintaining compatibility across platforms.
2025-09-28 22:08:52 -04:00
scawful
c967b2be95 Enhance GitHub Actions workflow for macOS builds and artifact management
- Updated the concurrency group in the release workflow to include the event name for better tracking.
- Split macOS builds into separate jobs for arm64 and x86_64 architectures, improving clarity and organization.
- Added a new job to merge macOS slices into a universal binary, streamlining the packaging process.
- Refined the installation steps for macOS dependencies and vcpkg setup for consistency across architectures.
- Improved artifact upload steps to include staged outputs and ensure proper retention.
2025-09-28 21:58:02 -04:00
scawful
c1902687c5 Add comprehensive YAZE Overworld Testing Guide and test scripts
- Introduced a detailed documentation guide for testing the YAZE overworld implementation, covering unit tests, integration tests, end-to-end tests, and golden data validation.
- Added a new script to orchestrate the complete testing workflow, including building the golden data extractor, running tests, and generating reports.
- Implemented new test files for end-to-end testing and integration testing, ensuring compatibility with ZScream logic and validating overworld data integrity.
- Enhanced the Overworld class with additional methods for expanded tile and entrance handling, improving test coverage and functionality.
2025-09-28 21:47:22 -04:00
scawful
18c739d630 fix syntax error 2025-09-28 21:26:06 -04:00
scawful
b463878d6e Refactor GitHub Actions workflow and Tile16Editor for improved functionality
- Updated the concurrency group in the release workflow to use a more consistent reference for tags.
- Enhanced the release notes generation logic for clarity and consistency.
- Improved logging in Tile16Editor to provide better insights during bitmap updates and error handling.
- Refactored the UpdateBlocksetBitmap method to ensure proper handling of active bitmaps and pixel copying, enhancing the editor's responsiveness.
2025-09-28 21:21:38 -04:00
scawful
aeed90090d Refactor release notes generation in GitHub Actions workflow
- Simplified the logic for creating release notes by replacing heredoc syntax with echo commands for better readability.
- Ensured consistent formatting of release notes with clear headers and references to the changelog.
2025-09-28 21:11:14 -04:00
scawful
76cb817f26 Refactor Tile16Editor for improved data handling and bitmap updates
- Changed the storage of current tile16 data from a static variable to an instance variable for better persistence.
- Added a new method to update the blockset bitmap displayed in the editor, ensuring it reflects the current tile16 data.
- Enhanced the DrawToCurrentTile16 method to include updates to the blockset bitmap after drawing.
- Updated the CMake configuration for the tile edit table to ensure proper initialization.
2025-09-28 21:06:57 -04:00
scawful
5a242c8c6f Update vcpkg Git commit ID in release workflow for consistency 2025-09-28 20:49:36 -04:00
scawful
94568e2be2 Enhance GitHub Actions workflow for release process
- Added concurrency control to the release workflow to manage simultaneous runs.
- Improved permissions settings for actions and contents.
- Refactored tag validation logic to streamline the process and ensure semantic versioning compliance.
- Updated job names for clarity and consistency.
- Integrated caching for ccache to speed up builds on Linux and macOS.
- Enhanced packaging steps for Windows, macOS, and Linux, ensuring proper artifact handling and uploads.
- Improved error handling and output messages for better debugging and user experience.
2025-09-28 20:42:24 -04:00
scawful
328302335f enable z3ed on release 2025-09-28 20:18:47 -04:00
scawful
7a5446e6cc Enable testing in CMake configuration for YAZE build process
- Updated the CMake configuration in `release.yml` to enable the building of tests by setting `YAZE_BUILD_TESTS` to ON.
- This change allows for the inclusion of test frameworks in the build, enhancing the testing capabilities of the project.
2025-09-28 20:15:54 -04:00
scawful
b02f1fbb7d Enable conditional compilation for testing frameworks in EditorManager
- Added preprocessor directives to include testing-related headers and initialize test suites only when YAZE_ENABLE_TESTING is defined.
- This change enhances the modularity of the code by allowing for optional testing features based on the build configuration.
2025-09-28 20:08:26 -04:00
scawful
947c5be06d Refactor asset copying in CMake configuration for yaze target
- Removed the custom target for copying assets and integrated post-build commands directly into the yaze target.
- Updated commands to create necessary directories and copy asset files (fonts, themes, layouts, libraries) to the output directory, streamlining the build process for Windows and Linux.
2025-09-28 20:03:57 -04:00
scawful
89d0938e89 Enhance CMake configuration for asset management across platforms
- Updated `CMakeLists.txt` to configure asset deployment for macOS, Windows, and Linux, ensuring proper handling of resource files based on the target platform.
- Added custom build steps in `app.cmake` to copy asset files (fonts, themes, layouts, libraries) to the output directory for Windows and Linux builds, improving the build process and asset accessibility.
- Organized asset files into source groups for better project structure and clarity.
2025-09-28 20:02:36 -04:00
scawful
2b50678cc5 Refactor test environment setup to use SDL's cross-platform environment variable function
- Updated the `SetupTestEnvironment` function in `yaze_test.cc` to replace `setenv` with `SDL_setenv` for setting environment variables, enhancing cross-platform compatibility for test configurations.
2025-09-28 19:59:36 -04:00
scawful
2c1c7df987 Update GitHub Actions workflow for improved CMake configuration and packaging
- Changed the vcpkg Git commit ID to a specific version for consistency in builds.
- Refactored the CMake configuration steps to use PowerShell syntax, enhancing readability and maintainability.
- Improved the packaging process for Windows, macOS, and Linux by utilizing PowerShell commands and ensuring proper handling of binaries, assets, and documentation.
- Added checks for the existence of required files and directories, providing clearer error messages and improving the robustness of the workflow.
2025-09-28 19:44:02 -04:00
scawful
c8cafe30e1 Remove Visual Studio project files and filters for YAZE
- Deleted `YAZE.sln`, `YAZE.vcxproj`, and `YAZE.vcxproj.filters` to streamline the project structure and transition to a CMake-based build system.
- This change enhances maintainability and simplifies the build process by relying solely on CMake for project configuration and management.
2025-09-28 19:34:55 -04:00
scawful
a1baa747e1 Enhance CMake and vcpkg integration for Windows ARM64 builds
- Updated `CMakeLists.txt` to improve vcpkg integration by adding checks for the existence of the toolchain file and providing warnings if it is not found.
- Introduced new CMake presets for Windows ARM64 configurations (debug, release, and development) in `CMakePresets.json`, ensuring proper setup for ARM64 architecture.
- Modified `setup-vcpkg-windows.ps1` to auto-detect ARM64 architecture, enhancing the setup script's usability for different environments.
2025-09-28 19:32:37 -04:00
scawful
cbe6c92da7 Enhance CMake configuration for yaze_config.h integration
- Updated `CMakeLists.txt` to improve the generation and inclusion of `yaze_config.h` by specifying source and binary directories.
- Added include directories in various CMake files to ensure proper access to generated headers, enhancing build reliability and maintainability.
- Set properties for the generated header to improve IDE integration and organization within the project structure.
2025-09-28 19:18:36 -04:00
scawful
64f3589563 Add additional library dependencies and directories in YAZE project configuration
- Updated `YAZE.vcxproj` to include multiple additional library directories and dependencies for various build configurations (Debug and Release) across multiple platforms (Win32, x64, ARM64).
- This enhancement improves the project's build configuration by ensuring all necessary libraries are linked, facilitating better integration of external components and improving overall build reliability.
2025-09-28 18:50:34 -04:00
scawful
dc9cd97994 Add pre-build event for yaze_config.h generation in YAZE project
- Introduced a pre-build event in `YAZE.vcxproj` to automatically create the `yaze_config.h` file, defining versioning macros for the project.
- This change enhances the build process by ensuring the configuration header is generated in the appropriate build directory, improving maintainability and version tracking.
2025-09-28 18:40:15 -04:00
scawful
99eee4f6c8 Add custom build step for yaze_config.h generation in YAZE project
- Introduced a custom build step in `YAZE.vcxproj` to generate the `yaze_config.h` file, defining versioning macros for different build configurations (Debug and Release) across multiple platforms (Win32, x64, ARM64).
- This enhancement streamlines the build process by automating the creation of configuration headers, improving maintainability and version tracking.
2025-09-28 18:36:11 -04:00
scawful
7a887d96fd Add additional include directories in YAZE project configuration
- Updated `YAZE.vcxproj` to include multiple source and library directories in the `AdditionalIncludeDirectories` section, enhancing the project's build configuration and improving code accessibility for IntelliSense.
- This change supports better organization of project files and facilitates easier integration of external libraries and modules.
2025-09-28 18:34:45 -04:00
scawful
5a3f8057dd Update YAZE project configuration for improved CMake integration
- Modified build and configure targets in `YAZE.vcxproj` to use platform-specific build directories, enhancing compatibility with multiple architectures.
- Added comprehensive source and header file inclusions for Visual Studio IntelliSense, improving development experience and code navigation.
- Included resource, image, and content files in the project structure, ensuring all necessary assets are accounted for in the build process.
2025-09-28 18:32:16 -04:00
scawful
3fffdb81db omg 2025-09-28 18:26:46 -04:00
scawful
4d9f3091dc Refactor project structure and enhance CMake integration
- Renamed the main project from "YAZE" to "YAZE_CMake" in the solution file for clarity.
- Updated project configurations to ensure proper handling of Debug and Release builds for x86 and x64 platforms.
- Introduced a new CMake-based build target in `YAZE.vcxproj`, streamlining the build process and improving compatibility with CMake.
- Cleaned up unnecessary import groups and added comments for better maintainability.
2025-09-28 18:25:56 -04:00
scawful
a54fff4639 Update vcpkg configuration and GitHub Actions workflow with new commit ID
- Updated the `builtin-baseline` in `vcpkg.json` to `4bee3f5aae7aefbc129ca81c33d6a062b02fcf3b`, ensuring accurate dependency management.
- Modified the GitHub Actions workflow to reflect the new `vcpkgGitCommitId`, enhancing the reliability of the build process.
2025-09-28 18:25:14 -04:00
scawful
d50dc25677 Enhance CMake configuration for Windows x64 builds
- Added a custom command to generate the Windows resource file `yaze.res` from `yaze.rc` and `yaze.ico`, ensuring proper resource management for x64 builds.
- Introduced a custom target to ensure the resource file is built before linking, improving the build process for Windows targets.
2025-09-28 18:18:02 -04:00
scawful
8ea0daa9c8 Update vcpkg configuration and GitHub Actions workflow with new commit ID
- Changed the `builtin-baseline` in `vcpkg.json` to a specific commit ID `d18b2e4129c1ff667b1e660528d6d2678f38c6fc`, ensuring precise dependency management.
- Updated the GitHub Actions workflow to reflect the new `vcpkgGitCommitId`, enhancing the reliability of the build process.
2025-09-28 18:14:16 -04:00
scawful
baedab91c8 Add include for stdlib in YAZE test file
- Added `<cstdlib>` header to `yaze_test.cc`, enabling the use of standard library functions.
- This change enhances the functionality of the test suite by allowing for additional features from the C++ standard library.
2025-09-28 18:12:04 -04:00
scawful
831a8dcb82 Enhance CMake configuration for Windows builds
- Added conditional linking of the Windows resource file for x64 architecture in `CMakeLists.txt`, improving build specificity for Windows targets.
- This change ensures that the resource file is only linked when building for 64-bit Windows, enhancing the project's compatibility and build process.
2025-09-28 18:10:36 -04:00
scawful
72dbfc537f Update vcpkg configuration and GitHub Actions workflow with new baseline
- Set the `builtin-baseline` in `vcpkg.json` to `2024.12.18`, ensuring compatibility with the latest dependencies.
- Updated the GitHub Actions workflow to include the new `vcpkgGitCommitId`, improving the build process reliability.
2025-09-28 18:00:29 -04:00
scawful
fa6f2a231a Update vcpkg configuration and GitHub Actions workflow
- Removed the `builtin-baseline` entry from `vcpkg.json`, streamlining the configuration.
- Updated the GitHub Actions workflow to remove the hardcoded `vcpkgGitCommitId`, enhancing flexibility.
- Added `VCPKG_DEFAULT_HOST_TRIPLET` and `VCPKG_FEATURE_FLAGS` to improve build configuration options.
2025-09-28 17:55:12 -04:00
scawful
694a246103 Update vcpkg configuration to use new baseline and improve GitHub Actions workflow
- Changed the `builtin-baseline` in `vcpkg.json` to the latest version `2024.09.12`, ensuring compatibility with updated dependencies.
- Updated the GitHub Actions workflow to reflect the new baseline, enhancing the reliability of the build process.
- Added a timeout for the vcpkg job and enabled the use of system binaries, improving the efficiency of the workflow.
2025-09-28 17:49:07 -04:00
scawful
43f4e97c7d Update CMake configuration in YAZE project to include additional build options
- Modified the `ConfigureCMake` target in `YAZE.vcxproj` to add options for generating libraries and executables, enhancing the build flexibility.
- This change improves the project's configuration by allowing for more granular control over the build outputs.
2025-09-28 17:41:26 -04:00
scawful
1ac48139c7 Update CMake configuration to enhance test suite management
- Modified `CMakeLists.txt` to cache the `YAZE_BUILD_TESTS` option, improving clarity in test suite configuration.
- Updated the GitHub Actions workflow to include verification steps for the CMake configuration, ensuring that test targets are correctly identified.
- Adjusted test discovery logic in `test/CMakeLists.txt` to double-check that tests are enabled, enhancing the robustness of the build process.
2025-09-28 17:36:19 -04:00
scawful
e77b38ee20 Update YAZE project configuration to include additional Abseil library directories
- Expanded the `AdditionalLibraryDirectories` in `YAZE.vcxproj` to include multiple directories for Abseil libraries, enhancing the project's dependency management.
- This change improves the build process by ensuring that all necessary Abseil components are correctly referenced, supporting better functionality and performance.
2025-09-28 17:32:17 -04:00
scawful
f257425782 Update YAZE project configuration to include additional Abseil library dependencies
- Expanded the `AdditionalDependencies` in `YAZE.vcxproj` to include multiple Abseil libraries, enhancing the project's functionality and dependency management.
- Added custom build steps for the new Abseil targets, ensuring they are built as part of the overall project workflow.
- This change improves the build process by integrating necessary libraries for better performance and feature support.
2025-09-28 17:27:36 -04:00
scawful
ea6659763b Remove custom build steps for asar, ImGui, and Abseil libraries from YAZE project configuration
- Eliminated custom build commands in `YAZE.vcxproj` related to asar, ImGui, and Abseil libraries, streamlining the project configuration.
- Updated `YAZE.vcxproj.filters` to remove associated filters, enhancing clarity in project dependencies.
- This change simplifies the build process and focuses on essential components.
2025-09-28 17:20:15 -04:00
scawful
ad7673f31d Add custom build step for Abseil library in YAZE project configuration
- Introduced a new custom build command in `YAZE.vcxproj` to configure and build the Abseil library, enhancing the project's dependency management.
- Updated the `ConfigureCMake` target to include the build step for Abseil, ensuring a more comprehensive build process.
- This change improves the overall organization and efficiency of the build workflow.
2025-09-28 17:15:36 -04:00
scawful
cf0e51b96b Update CMake configuration in YAZE project to enforce policy version
- Modified custom build commands in `YAZE.vcxproj` for asar and ImGui libraries to include `-DCMAKE_POLICY_VERSION_MINIMUM=3.5`, ensuring compatibility with newer CMake policies.
- Updated the `ConfigureCMake` target to reflect the policy version requirement, enhancing the build process's reliability and clarity.
2025-09-28 17:10:58 -04:00
scawful
25d361eedb Enhance YAZE project build process by configuring CMake targets
- Updated custom build steps in `YAZE.vcxproj` to include CMake configuration commands for asar and ImGui libraries, improving the build workflow.
- Introduced new targets for configuring CMake and building dependencies, ensuring a more organized and efficient build process.
- This change streamlines the build setup and enhances clarity in project configuration.
2025-09-28 17:08:45 -04:00
scawful
b7b8962e13 Enhance release workflow by adding build directory cleanup steps
- Introduced steps to clean the build directory for both Linux/macOS and Windows environments before configuring CMake, ensuring a fresh build configuration and avoiding potential cache issues.
- This change improves the reliability of the build process across different operating systems.
2025-09-28 17:05:38 -04:00
scawful
0d24738c78 Refactor YAZE project configuration to remove asar and ImGui libraries
- Removed references to the asar and ImGui projects from the YAZE solution, streamlining the project structure.
- Updated custom build steps in the `YAZE.vcxproj` file to reflect changes, ensuring that the build process remains organized.
- Adjusted the `YAZE.vcxproj.filters` file to remove filters related to the removed libraries, enhancing clarity in project dependencies.
2025-09-28 17:04:03 -04:00
scawful
df11786348 Add asar and ImGui libraries to YAZE project configuration
- Introduced new projects for the asar and ImGui libraries in the YAZE solution, enhancing the project's capabilities.
- Configured custom build steps for both libraries in the YAZE.vcxproj file, ensuring they are built as part of the overall project.
- Updated the YAZE.vcxproj.filters file to organize the new dependencies under appropriate filters, improving project structure and clarity.
2025-09-28 17:00:49 -04:00
scawful
13d1f97c0c Update YAZE project configuration to remove SDL2 dependencies and add SDL2 package reference
- Modified the `AdditionalDependencies` in the `YAZE.vcxproj` file to remove references to SDL2 and SDL2main libraries across all configurations, streamlining the dependency management.
- Added a new `PackageReference` for SDL2 version 2.28.5, ensuring that the project can utilize the SDL2 library through package management.
- These changes enhance the project's build organization and align with the current strategy for managing dependencies.
2025-09-28 16:52:28 -04:00
scawful
8229980488 Update YAZE project configuration to correct library directory paths for vcpkg integration
- Modified `AdditionalLibraryDirectories` in the `YAZE.vcxproj` file to replace the Vcpkg root path with a more appropriate reference to the local vcpkg installation directory.
- This change ensures that the project correctly locates libraries installed via vcpkg, improving build reliability and organization across different configurations.
2025-09-28 16:38:49 -04:00
scawful
79e381b1c7 Update YAZE project configuration to integrate vcpkg for library management
- Added import statements for vcpkg props and targets in the `YAZE.vcxproj` file to enable vcpkg integration.
- Updated `AdditionalLibraryDirectories` to include paths for libraries installed via vcpkg, enhancing dependency management and build organization across configurations.
- These changes streamline the build process and align with the project's strategy for using vcpkg for library dependencies.
2025-09-28 16:34:08 -04:00
scawful
40127b702e Refactor message tests to improve ROM loading checks and class naming
- Renamed `MessageTest` to `MessageRomTest` for clarity in context.
- Added checks to skip tests if the ROM file is not available or if tests are disabled via environment variable, enhancing test robustness.
- Updated all test cases to use the new class name, ensuring consistency across the test suite.
2025-09-28 16:32:02 -04:00
scawful
9066c8a3c0 Refactor test configuration in CMake to enable conditional test builds
- Updated `CMakeLists.txt` to conditionally build the test executable based on the `YAZE_BUILD_TESTS` flag, enhancing flexibility in test management.
- Removed hardcoded test executable configurations and replaced them with conditional logic for minimal and development builds.
- Improved organization of test files and dependencies, ensuring that tests are only built and discovered when enabled, streamlining the build process.
2025-09-28 16:25:40 -04:00