backend-infra-engineer: Release v0.3.8 snapshot
This commit is contained in:
37
.github/workflows/release.yml
vendored
37
.github/workflows/release.yml
vendored
@@ -87,25 +87,31 @@ jobs:
|
|||||||
print("Patched cmake_install.cmake to handle missing dependency install scripts")
|
print("Patched cmake_install.cmake to handle missing dependency install scripts")
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
- name: Clean old packages before CPack
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "Cleaning old package files to ensure fresh generation"
|
||||||
|
rm -f build/*.deb build/*.tar.gz build/*.dmg build/*.zip build/*.exe build/packages/*
|
||||||
|
|
||||||
- name: Package artifacts (Linux)
|
- name: Package artifacts (Linux)
|
||||||
if: matrix.platform == 'linux'
|
if: matrix.platform == 'linux'
|
||||||
run: |
|
run: |
|
||||||
cd build
|
cd build
|
||||||
cpack -G DEB -G TGZ
|
cpack -G DEB -G TGZ
|
||||||
echo "=== Contents of build directory ==="
|
echo "=== Contents of packages directory ==="
|
||||||
ls -la
|
ls -la packages/ 2>/dev/null || echo "No packages directory"
|
||||||
echo "=== Package files created ==="
|
echo "=== Package files created ==="
|
||||||
ls -la *.deb *.tar.gz 2>/dev/null || echo "No packages found in build/"
|
ls -la packages/*.deb packages/*.tar.gz 2>/dev/null || echo "No packages found"
|
||||||
|
|
||||||
- name: Package artifacts (macOS)
|
- name: Package artifacts (macOS)
|
||||||
if: matrix.platform == 'macos'
|
if: matrix.platform == 'macos'
|
||||||
run: |
|
run: |
|
||||||
cd build
|
cd build
|
||||||
cpack -G DragNDrop
|
cpack -G DragNDrop
|
||||||
echo "=== Contents of build directory ==="
|
echo "=== Contents of packages directory ==="
|
||||||
ls -la
|
ls -la packages/ 2>/dev/null || echo "No packages directory"
|
||||||
echo "=== Package files created ==="
|
echo "=== Package files created ==="
|
||||||
ls -la *.dmg 2>/dev/null || echo "No packages found in build/"
|
ls -la packages/*.dmg 2>/dev/null || echo "No packages found"
|
||||||
|
|
||||||
- name: Create notarized bundle (macOS)
|
- name: Create notarized bundle (macOS)
|
||||||
if: matrix.platform == 'macos'
|
if: matrix.platform == 'macos'
|
||||||
@@ -114,7 +120,8 @@ jobs:
|
|||||||
chmod +x ./scripts/create-macos-bundle.sh
|
chmod +x ./scripts/create-macos-bundle.sh
|
||||||
./scripts/create-macos-bundle.sh ${{ env.VERSION }} yaze-${{ env.VERSION }}-bundle || true
|
./scripts/create-macos-bundle.sh ${{ env.VERSION }} yaze-${{ env.VERSION }}-bundle || true
|
||||||
if [ -f "yaze-${{ env.VERSION }}-bundle.dmg" ]; then
|
if [ -f "yaze-${{ env.VERSION }}-bundle.dmg" ]; then
|
||||||
mv yaze-${{ env.VERSION }}-bundle.dmg build/
|
mkdir -p build/packages
|
||||||
|
mv yaze-${{ env.VERSION }}-bundle.dmg build/packages/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Patch cmake_install.cmake (Windows)
|
- name: Patch cmake_install.cmake (Windows)
|
||||||
@@ -135,21 +142,21 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
cd build
|
cd build
|
||||||
cpack -G NSIS -G ZIP
|
cpack -G NSIS -G ZIP
|
||||||
Write-Host "=== Contents of build directory ==="
|
Write-Host "=== Contents of packages directory ==="
|
||||||
Get-ChildItem
|
Get-ChildItem packages -ErrorAction SilentlyContinue
|
||||||
Write-Host "=== Package files created ==="
|
Write-Host "=== Package files created ==="
|
||||||
Get-ChildItem *.exe, *.zip -ErrorAction SilentlyContinue
|
Get-ChildItem packages/*.exe, packages/*.zip -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
- name: Upload build artifacts
|
- name: Upload build artifacts
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: yaze-${{ matrix.platform }}-${{ env.VERSION }}
|
name: yaze-${{ matrix.platform }}-${{ env.VERSION }}
|
||||||
path: |
|
path: |
|
||||||
build/*.deb
|
build/packages/*.deb
|
||||||
build/*.tar.gz
|
build/packages/*.tar.gz
|
||||||
build/*.dmg
|
build/packages/*.dmg
|
||||||
build/*.exe
|
build/packages/*.exe
|
||||||
build/*.zip
|
build/packages/*.zip
|
||||||
if-no-files-found: warn
|
if-no-files-found: warn
|
||||||
retention-days: 30
|
retention-days: 30
|
||||||
|
|
||||||
|
|||||||
@@ -15,11 +15,11 @@ cmake_policy(SET CMP0077 NEW)
|
|||||||
|
|
||||||
# Enable Objective-C only on macOS where it's actually used
|
# Enable Objective-C only on macOS where it's actually used
|
||||||
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||||
project(yaze VERSION 0.3.3
|
project(yaze VERSION 0.3.8
|
||||||
DESCRIPTION "Yet Another Zelda3 Editor"
|
DESCRIPTION "Yet Another Zelda3 Editor"
|
||||||
LANGUAGES CXX C OBJC OBJCXX)
|
LANGUAGES CXX C OBJC OBJCXX)
|
||||||
else()
|
else()
|
||||||
project(yaze VERSION 0.3.3
|
project(yaze VERSION 0.3.8
|
||||||
DESCRIPTION "Yet Another Zelda3 Editor"
|
DESCRIPTION "Yet Another Zelda3 Editor"
|
||||||
LANGUAGES CXX C)
|
LANGUAGES CXX C)
|
||||||
endif()
|
endif()
|
||||||
@@ -35,10 +35,12 @@ if(CCACHE_FOUND)
|
|||||||
set(CMAKE_C_COMPILER_LAUNCHER ccache)
|
set(CMAKE_C_COMPILER_LAUNCHER ccache)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Set project metadata
|
# Version is defined in project() above - use those variables
|
||||||
set(YAZE_VERSION_MAJOR 0)
|
# CMake automatically sets: yaze_VERSION, yaze_VERSION_MAJOR, yaze_VERSION_MINOR, yaze_VERSION_PATCH
|
||||||
set(YAZE_VERSION_MINOR 3)
|
# These YAZE_VERSION_* aliases are for compatibility with existing code
|
||||||
set(YAZE_VERSION_PATCH 3)
|
set(YAZE_VERSION_MAJOR ${yaze_VERSION_MAJOR})
|
||||||
|
set(YAZE_VERSION_MINOR ${yaze_VERSION_MINOR})
|
||||||
|
set(YAZE_VERSION_PATCH ${yaze_VERSION_PATCH})
|
||||||
|
|
||||||
# Suppress deprecation warnings from submodules
|
# Suppress deprecation warnings from submodules
|
||||||
set(CMAKE_WARN_DEPRECATED OFF CACHE BOOL "Suppress deprecation warnings")
|
set(CMAKE_WARN_DEPRECATED OFF CACHE BOOL "Suppress deprecation warnings")
|
||||||
|
|||||||
@@ -141,23 +141,42 @@ set(CPACK_COMPONENT_DOCUMENTATION_DISPLAY_NAME "Documentation")
|
|||||||
set(CPACK_COMPONENT_DOCUMENTATION_DESCRIPTION "User and developer documentation")
|
set(CPACK_COMPONENT_DOCUMENTATION_DESCRIPTION "User and developer documentation")
|
||||||
set(CPACK_COMPONENT_DOCUMENTATION_REQUIRED FALSE)
|
set(CPACK_COMPONENT_DOCUMENTATION_REQUIRED FALSE)
|
||||||
|
|
||||||
|
# Platform-specific install paths
|
||||||
|
# The asset paths must match what platform_paths.cc FindAsset() searches for
|
||||||
|
if(WIN32)
|
||||||
|
# Windows: flat structure (exe and assets/ at same level)
|
||||||
|
set(YAZE_INSTALL_BINDIR ".")
|
||||||
|
set(YAZE_INSTALL_DATADIR ".")
|
||||||
|
set(YAZE_INSTALL_DOCDIR ".")
|
||||||
|
elseif(APPLE)
|
||||||
|
# macOS: flat structure for DMG (app bundle handles its own resources)
|
||||||
|
set(YAZE_INSTALL_BINDIR ".")
|
||||||
|
set(YAZE_INSTALL_DATADIR ".")
|
||||||
|
set(YAZE_INSTALL_DOCDIR ".")
|
||||||
|
else()
|
||||||
|
# Linux: FHS structure - assets at share/yaze/assets (matches FindAsset search)
|
||||||
|
set(YAZE_INSTALL_BINDIR ${CMAKE_INSTALL_BINDIR})
|
||||||
|
set(YAZE_INSTALL_DATADIR "${CMAKE_INSTALL_DATADIR}/yaze")
|
||||||
|
set(YAZE_INSTALL_DOCDIR "${CMAKE_INSTALL_DOCDIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
# Installation components
|
# Installation components
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
install(TARGETS yaze
|
install(TARGETS yaze
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
RUNTIME DESTINATION ${YAZE_INSTALL_BINDIR}
|
||||||
BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR}
|
BUNDLE DESTINATION ${YAZE_INSTALL_BINDIR}
|
||||||
COMPONENT applications
|
COMPONENT applications
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
install(TARGETS yaze
|
install(TARGETS yaze
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
RUNTIME DESTINATION ${YAZE_INSTALL_BINDIR}
|
||||||
COMPONENT applications
|
COMPONENT applications
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Install assets
|
# Install assets
|
||||||
install(DIRECTORY ${CMAKE_SOURCE_DIR}/assets/
|
install(DIRECTORY ${CMAKE_SOURCE_DIR}/assets/
|
||||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/yaze/assets
|
DESTINATION ${YAZE_INSTALL_DATADIR}/assets
|
||||||
COMPONENT applications
|
COMPONENT applications
|
||||||
PATTERN "*.png"
|
PATTERN "*.png"
|
||||||
PATTERN "*.ttf"
|
PATTERN "*.ttf"
|
||||||
@@ -165,15 +184,15 @@ install(DIRECTORY ${CMAKE_SOURCE_DIR}/assets/
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Install documentation
|
# Install documentation
|
||||||
install(FILES
|
install(FILES
|
||||||
${CMAKE_SOURCE_DIR}/README.md
|
${CMAKE_SOURCE_DIR}/README.md
|
||||||
${CMAKE_SOURCE_DIR}/LICENSE
|
${CMAKE_SOURCE_DIR}/LICENSE
|
||||||
DESTINATION ${CMAKE_INSTALL_DOCDIR}
|
DESTINATION ${YAZE_INSTALL_DOCDIR}
|
||||||
COMPONENT documentation
|
COMPONENT documentation
|
||||||
)
|
)
|
||||||
|
|
||||||
install(DIRECTORY ${CMAKE_SOURCE_DIR}/docs/
|
install(DIRECTORY ${CMAKE_SOURCE_DIR}/docs/
|
||||||
DESTINATION ${CMAKE_INSTALL_DOCDIR}
|
DESTINATION ${YAZE_INSTALL_DOCDIR}
|
||||||
COMPONENT documentation
|
COMPONENT documentation
|
||||||
PATTERN "*.md"
|
PATTERN "*.md"
|
||||||
PATTERN "*.html"
|
PATTERN "*.html"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# CPack Configuration
|
# CPack Configuration
|
||||||
# Cross-platform packaging using CPack
|
# Cross-platform packaging using CPack
|
||||||
|
# NOTE: include(CPack) MUST be called at the END of this file,
|
||||||
include(CPack)
|
# after all CPACK_ variables and install() rules are defined.
|
||||||
|
|
||||||
# Set package information
|
# Set package information
|
||||||
set(CPACK_PACKAGE_NAME "yaze")
|
set(CPACK_PACKAGE_NAME "yaze")
|
||||||
@@ -36,23 +36,42 @@ set(CPACK_COMPONENT_YAZE_DESCRIPTION "Main YAZE application and libraries")
|
|||||||
# Install rules - these define what CPack packages
|
# Install rules - these define what CPack packages
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
|
# Platform-specific install paths
|
||||||
|
# The asset paths must match what platform_paths.cc FindAsset() searches for
|
||||||
|
if(WIN32)
|
||||||
|
# Windows: flat structure (exe and assets/ at same level)
|
||||||
|
set(YAZE_INSTALL_BINDIR ".")
|
||||||
|
set(YAZE_INSTALL_DATADIR ".")
|
||||||
|
set(YAZE_INSTALL_DOCDIR ".")
|
||||||
|
elseif(APPLE)
|
||||||
|
# macOS: flat structure for DMG (app bundle handles its own resources)
|
||||||
|
set(YAZE_INSTALL_BINDIR ".")
|
||||||
|
set(YAZE_INSTALL_DATADIR ".")
|
||||||
|
set(YAZE_INSTALL_DOCDIR ".")
|
||||||
|
else()
|
||||||
|
# Linux: FHS structure - assets at share/yaze/assets (matches FindAsset search)
|
||||||
|
set(YAZE_INSTALL_BINDIR ${CMAKE_INSTALL_BINDIR})
|
||||||
|
set(YAZE_INSTALL_DATADIR "${CMAKE_INSTALL_DATADIR}/yaze")
|
||||||
|
set(YAZE_INSTALL_DOCDIR "${CMAKE_INSTALL_DOCDIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
# Install main executable
|
# Install main executable
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
install(TARGETS yaze
|
install(TARGETS yaze
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
RUNTIME DESTINATION ${YAZE_INSTALL_BINDIR}
|
||||||
BUNDLE DESTINATION .
|
BUNDLE DESTINATION .
|
||||||
COMPONENT yaze
|
COMPONENT yaze
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
install(TARGETS yaze
|
install(TARGETS yaze
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
RUNTIME DESTINATION ${YAZE_INSTALL_BINDIR}
|
||||||
COMPONENT yaze
|
COMPONENT yaze
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Install assets
|
# Install assets
|
||||||
install(DIRECTORY ${CMAKE_SOURCE_DIR}/assets/
|
install(DIRECTORY ${CMAKE_SOURCE_DIR}/assets/
|
||||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/yaze/assets
|
DESTINATION ${YAZE_INSTALL_DATADIR}/assets
|
||||||
COMPONENT yaze
|
COMPONENT yaze
|
||||||
PATTERN "*.png"
|
PATTERN "*.png"
|
||||||
PATTERN "*.ttf"
|
PATTERN "*.ttf"
|
||||||
@@ -63,7 +82,11 @@ install(DIRECTORY ${CMAKE_SOURCE_DIR}/assets/
|
|||||||
install(FILES
|
install(FILES
|
||||||
${CMAKE_SOURCE_DIR}/README.md
|
${CMAKE_SOURCE_DIR}/README.md
|
||||||
${CMAKE_SOURCE_DIR}/LICENSE
|
${CMAKE_SOURCE_DIR}/LICENSE
|
||||||
DESTINATION ${CMAKE_INSTALL_DOCDIR}
|
DESTINATION ${YAZE_INSTALL_DOCDIR}
|
||||||
COMPONENT yaze
|
COMPONENT yaze
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# IMPORTANT: include(CPack) must be called LAST, after all CPACK_ variables
|
||||||
|
# and install() rules are defined. This is a CPack requirement.
|
||||||
|
include(CPack)
|
||||||
|
|
||||||
|
|||||||
24
incl/yaze.h
24
incl/yaze.h
@@ -9,7 +9,7 @@
|
|||||||
* The Legend of Zelda: A Link to the Past. This API allows external
|
* The Legend of Zelda: A Link to the Past. This API allows external
|
||||||
* applications to interact with YAZE's functionality.
|
* applications to interact with YAZE's functionality.
|
||||||
*
|
*
|
||||||
* @version 0.3.3
|
* @version 0.3.8
|
||||||
* @author YAZE Team
|
* @author YAZE Team
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -23,16 +23,26 @@ extern "C" {
|
|||||||
|
|
||||||
#include "zelda.h"
|
#include "zelda.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup version Version Information
|
* @defgroup version Version Information
|
||||||
* @{
|
* @{
|
||||||
|
*
|
||||||
|
* Version information is generated from CMakeLists.txt project() version.
|
||||||
|
* When building with CMake, include yaze_config.h (from build directory) for:
|
||||||
|
* - YAZE_VERSION_MAJOR
|
||||||
|
* - YAZE_VERSION_MINOR
|
||||||
|
* - YAZE_VERSION_PATCH
|
||||||
|
* - YAZE_VERSION_STRING (e.g., "0.3.8")
|
||||||
|
* - YAZE_VERSION_NUMBER (e.g., 308)
|
||||||
|
*
|
||||||
|
* Single source of truth: project(yaze VERSION X.Y.Z) in CMakeLists.txt
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** Combined version as a string */
|
#ifndef YAZE_VERSION_STRING
|
||||||
#define YAZE_VERSION_STRING "0.3.3"
|
/* Fallback if yaze_config.h not included - will be overridden by build */
|
||||||
|
#define YAZE_VERSION_STRING "0.3.8"
|
||||||
/** Combined version as a number (major * 10000 + minor * 100 + patch) */
|
#define YAZE_VERSION_NUMBER 308
|
||||||
#define YAZE_VERSION_NUMBER 303
|
#endif
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
|||||||
@@ -18,8 +18,17 @@ endif()
|
|||||||
# Yaze Application Executable
|
# Yaze Application Executable
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|
||||||
|
# controller.cc is built here (not in yaze_app_core_lib) because it uses
|
||||||
|
# EditorManager, DockSpaceRenderer, and WidgetIdRegistry from yaze_editor/yaze_gui.
|
||||||
|
# Including it in yaze_app_core_lib would create a dependency cycle:
|
||||||
|
# yaze_agent -> yaze_app_core_lib -> yaze_editor -> yaze_agent
|
||||||
|
set(YAZE_APP_EXECUTABLE_SRC
|
||||||
|
app/main.cc
|
||||||
|
app/controller.cc
|
||||||
|
)
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
add_executable(yaze MACOSX_BUNDLE app/main.cc ${YAZE_RESOURCE_FILES})
|
add_executable(yaze MACOSX_BUNDLE ${YAZE_APP_EXECUTABLE_SRC} ${YAZE_RESOURCE_FILES})
|
||||||
|
|
||||||
set(ICON_FILE "${CMAKE_SOURCE_DIR}/assets/yaze.icns")
|
set(ICON_FILE "${CMAKE_SOURCE_DIR}/assets/yaze.icns")
|
||||||
target_sources(yaze PRIVATE ${ICON_FILE})
|
target_sources(yaze PRIVATE ${ICON_FILE})
|
||||||
@@ -34,7 +43,7 @@ if (APPLE)
|
|||||||
MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION}"
|
MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION}"
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
add_executable(yaze app/main.cc)
|
add_executable(yaze ${YAZE_APP_EXECUTABLE_SRC})
|
||||||
if(WIN32 OR UNIX)
|
if(WIN32 OR UNIX)
|
||||||
target_sources(yaze PRIVATE ${YAZE_RESOURCE_FILES})
|
target_sources(yaze PRIVATE ${YAZE_RESOURCE_FILES})
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -13,7 +13,9 @@
|
|||||||
set(
|
set(
|
||||||
YAZE_APP_CORE_SRC
|
YAZE_APP_CORE_SRC
|
||||||
app/rom.cc
|
app/rom.cc
|
||||||
app/controller.cc
|
# Note: controller.cc is built directly into the yaze executable (not this library)
|
||||||
|
# because it depends on yaze_editor and yaze_gui, which would create a cycle:
|
||||||
|
# yaze_agent -> yaze_app_core_lib -> yaze_editor -> yaze_agent
|
||||||
app/platform/window.cc
|
app/platform/window.cc
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -86,10 +88,11 @@ target_link_libraries(yaze_app_core_lib PUBLIC
|
|||||||
yaze_core_lib # Foundational core library with project management
|
yaze_core_lib # Foundational core library with project management
|
||||||
yaze_util
|
yaze_util
|
||||||
yaze_gfx
|
yaze_gfx
|
||||||
|
yaze_gui # Safe to include - yaze_gui doesn't link to yaze_agent
|
||||||
yaze_zelda3
|
yaze_zelda3
|
||||||
yaze_common
|
yaze_common
|
||||||
# Note: yaze_editor and yaze_gui are linked at executable level to avoid
|
# Note: yaze_editor is linked at executable level to avoid dependency cycle:
|
||||||
# dependency cycle: yaze_agent -> yaze_app_core_lib -> yaze_editor -> yaze_agent
|
# yaze_agent -> yaze_app_core_lib -> yaze_editor -> yaze_agent
|
||||||
ImGui
|
ImGui
|
||||||
${ABSL_TARGETS}
|
${ABSL_TARGETS}
|
||||||
${YAZE_SDL2_TARGETS}
|
${YAZE_SDL2_TARGETS}
|
||||||
|
|||||||
@@ -5,7 +5,14 @@
|
|||||||
|
|
||||||
if(YAZE_BUILD_EMU AND NOT YAZE_MINIMAL_BUILD)
|
if(YAZE_BUILD_EMU AND NOT YAZE_MINIMAL_BUILD)
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
add_executable(yaze_emu MACOSX_BUNDLE app/emu/emu.cc app/platform/app_delegate.mm)
|
# Note: controller.cc is included here (not via library) because it depends on
|
||||||
|
# yaze_editor and yaze_gui. Including it in yaze_app_core_lib would create a cycle:
|
||||||
|
# yaze_agent -> yaze_app_core_lib -> yaze_editor -> yaze_agent
|
||||||
|
add_executable(yaze_emu MACOSX_BUNDLE
|
||||||
|
app/emu/emu.cc
|
||||||
|
app/platform/app_delegate.mm
|
||||||
|
app/controller.cc
|
||||||
|
)
|
||||||
target_link_libraries(yaze_emu PUBLIC "-framework Cocoa")
|
target_link_libraries(yaze_emu PUBLIC "-framework Cocoa")
|
||||||
else()
|
else()
|
||||||
add_executable(yaze_emu app/emu/emu.cc)
|
add_executable(yaze_emu app/emu/emu.cc)
|
||||||
|
|||||||
@@ -254,6 +254,17 @@ absl::StatusOr<std::filesystem::path> PlatformPaths::FindAsset(
|
|||||||
// Also check parent (for build/bin/yaze case)
|
// Also check parent (for build/bin/yaze case)
|
||||||
search_paths.push_back(cached_exe_dir.parent_path() / "assets" /
|
search_paths.push_back(cached_exe_dir.parent_path() / "assets" /
|
||||||
relative_path);
|
relative_path);
|
||||||
|
#ifdef __APPLE__
|
||||||
|
// macOS app bundle: exe is at yaze.app/Contents/MacOS/yaze
|
||||||
|
// Assets may be at yaze.app/Contents/Resources/assets/ (inside bundle)
|
||||||
|
// or at ../../../assets/ (same level as .app bundle in DMG)
|
||||||
|
auto contents_dir = cached_exe_dir.parent_path(); // Contents/
|
||||||
|
auto bundle_dir = contents_dir.parent_path(); // yaze.app/
|
||||||
|
auto bundle_parent = bundle_dir.parent_path(); // DMG root
|
||||||
|
search_paths.push_back(contents_dir / "Resources" / "assets" /
|
||||||
|
relative_path);
|
||||||
|
search_paths.push_back(bundle_parent / "assets" / relative_path);
|
||||||
|
#endif
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
// Skip if path construction fails
|
// Skip if path construction fails
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,17 @@
|
|||||||
// yaze config file
|
// yaze config file - auto-generated from CMakeLists.txt project() version
|
||||||
|
// Single source of truth for version: project(yaze VERSION X.Y.Z) in CMakeLists.txt
|
||||||
|
|
||||||
#define YAZE_VERSION_MAJOR @yaze_VERSION_MAJOR@
|
#define YAZE_VERSION_MAJOR @yaze_VERSION_MAJOR@
|
||||||
#define YAZE_VERSION_MINOR @yaze_VERSION_MINOR@
|
#define YAZE_VERSION_MINOR @yaze_VERSION_MINOR@
|
||||||
#define YAZE_VERSION_PATCH @yaze_VERSION_PATCH@
|
#define YAZE_VERSION_PATCH @yaze_VERSION_PATCH@
|
||||||
|
|
||||||
|
// Combined version as a string (e.g., "0.3.7")
|
||||||
|
#define YAZE_VERSION_STRING "@yaze_VERSION_MAJOR@.@yaze_VERSION_MINOR@.@yaze_VERSION_PATCH@"
|
||||||
|
|
||||||
|
// Combined version as a number (major * 10000 + minor * 100 + patch)
|
||||||
|
// e.g., 0.3.7 = 307
|
||||||
|
#define YAZE_VERSION_NUMBER (@yaze_VERSION_MAJOR@ * 10000 + @yaze_VERSION_MINOR@ * 100 + @yaze_VERSION_PATCH@)
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#ifndef IMGUI_DEFINE_MATH_OPERATORS
|
#ifndef IMGUI_DEFINE_MATH_OPERATORS
|
||||||
#define IMGUI_DEFINE_MATH_OPERATORS
|
#define IMGUI_DEFINE_MATH_OPERATORS
|
||||||
|
|||||||
Reference in New Issue
Block a user