backend-infra-engineer: Release v0.3.8 snapshot
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user