backend-infra-engineer: Release v0.3.8 snapshot

This commit is contained in:
scawful
2025-11-22 02:10:38 -05:00
parent 476dd1cd1c
commit c8289bffda
10 changed files with 148 additions and 48 deletions

View File

@@ -18,8 +18,17 @@ endif()
# 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)
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")
target_sources(yaze PRIVATE ${ICON_FILE})
@@ -34,7 +43,7 @@ if (APPLE)
MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION}"
)
else()
add_executable(yaze app/main.cc)
add_executable(yaze ${YAZE_APP_EXECUTABLE_SRC})
if(WIN32 OR UNIX)
target_sources(yaze PRIVATE ${YAZE_RESOURCE_FILES})
endif()

View File

@@ -13,7 +13,9 @@
set(
YAZE_APP_CORE_SRC
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
)
@@ -86,10 +88,11 @@ target_link_libraries(yaze_app_core_lib PUBLIC
yaze_core_lib # Foundational core library with project management
yaze_util
yaze_gfx
yaze_gui # Safe to include - yaze_gui doesn't link to yaze_agent
yaze_zelda3
yaze_common
# Note: yaze_editor and yaze_gui are linked at executable level to avoid
# dependency cycle: yaze_agent -> yaze_app_core_lib -> yaze_editor -> yaze_agent
# Note: yaze_editor is linked at executable level to avoid dependency cycle:
# yaze_agent -> yaze_app_core_lib -> yaze_editor -> yaze_agent
ImGui
${ABSL_TARGETS}
${YAZE_SDL2_TARGETS}

View File

@@ -5,7 +5,14 @@
if(YAZE_BUILD_EMU AND NOT YAZE_MINIMAL_BUILD)
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")
else()
add_executable(yaze_emu app/emu/emu.cc)

View File

@@ -254,6 +254,17 @@ absl::StatusOr<std::filesystem::path> PlatformPaths::FindAsset(
// Also check parent (for build/bin/yaze case)
search_paths.push_back(cached_exe_dir.parent_path() / "assets" /
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 (...) {
// Skip if path construction fails
}

View File

@@ -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_MINOR @yaze_VERSION_MINOR@
#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
#ifndef IMGUI_DEFINE_MATH_OPERATORS
#define IMGUI_DEFINE_MATH_OPERATORS