- Restructured CLI service source files to improve organization, moving files into dedicated directories for better maintainability. - Introduced new AI service components, including `AIService`, `MockAIService`, and `GeminiAIService`, to facilitate natural language command generation. - Implemented `PolicyEvaluator` and `ProposalRegistry` for enhanced proposal management and policy enforcement in AI workflows. - Updated CMake configurations to reflect new file paths and ensure proper linking of the restructured components. - Enhanced test suite with new test workflow generation capabilities, improving the robustness of automated testing. This commit significantly advances the architecture of the z3ed system, laying the groundwork for more sophisticated AI-driven features and streamlined development processes.
741 lines
20 KiB
CMake
741 lines
20 KiB
CMake
set(
|
|
YAZE_APP_EMU_SRC
|
|
app/emu/audio/apu.cc
|
|
app/emu/audio/spc700.cc
|
|
app/emu/audio/dsp.cc
|
|
app/emu/audio/internal/addressing.cc
|
|
app/emu/audio/internal/instructions.cc
|
|
app/emu/cpu/internal/addressing.cc
|
|
app/emu/cpu/internal/instructions.cc
|
|
app/emu/cpu/cpu.cc
|
|
app/emu/video/ppu.cc
|
|
app/emu/memory/dma.cc
|
|
app/emu/memory/memory.cc
|
|
app/emu/snes.cc
|
|
)
|
|
|
|
set(
|
|
YAZE_UTIL_SRC
|
|
util/bps.cc
|
|
util/flag.cc
|
|
util/hex.cc
|
|
)
|
|
|
|
set(YAZE_RESOURCE_FILES
|
|
${CMAKE_SOURCE_DIR}/assets/font/Karla-Regular.ttf
|
|
${CMAKE_SOURCE_DIR}/assets/font/Roboto-Medium.ttf
|
|
${CMAKE_SOURCE_DIR}/assets/font/Cousine-Regular.ttf
|
|
${CMAKE_SOURCE_DIR}/assets/font/DroidSans.ttf
|
|
${CMAKE_SOURCE_DIR}/assets/font/NotoSansJP.ttf
|
|
${CMAKE_SOURCE_DIR}/assets/font/IBMPlexSansJP-Bold.ttf
|
|
${CMAKE_SOURCE_DIR}/assets/font/MaterialIcons-Regular.ttf
|
|
)
|
|
|
|
# Add theme files for macOS bundle (replacing the glob pattern with explicit files)
|
|
file(GLOB YAZE_THEME_FILES "${CMAKE_SOURCE_DIR}/assets/themes/*.theme")
|
|
list(APPEND YAZE_RESOURCE_FILES ${YAZE_THEME_FILES})
|
|
|
|
# Configure assets for different platforms
|
|
foreach (FILE ${YAZE_RESOURCE_FILES})
|
|
file(RELATIVE_PATH NEW_FILE "${CMAKE_SOURCE_DIR}/assets" ${FILE})
|
|
get_filename_component(NEW_FILE_PATH ${NEW_FILE} DIRECTORY)
|
|
|
|
if (APPLE)
|
|
# macOS: Set bundle location
|
|
set_source_files_properties(${FILE}
|
|
PROPERTIES
|
|
MACOSX_PACKAGE_LOCATION "Resources/${NEW_FILE_PATH}"
|
|
)
|
|
else()
|
|
# Windows/Linux: Copy to output directory
|
|
set_source_files_properties(${FILE}
|
|
PROPERTIES
|
|
VS_DEPLOYMENT_CONTENT 1
|
|
VS_DEPLOYMENT_LOCATION "assets/${NEW_FILE_PATH}"
|
|
)
|
|
endif()
|
|
endforeach()
|
|
|
|
# Conditionally add native file dialog (optional for CI builds)
|
|
if(NOT YAZE_MINIMAL_BUILD)
|
|
# Check if we can build NFD before adding it
|
|
find_package(PkgConfig QUIET)
|
|
if(PKG_CONFIG_FOUND AND UNIX AND NOT APPLE)
|
|
pkg_check_modules(GTK3 QUIET gtk+-3.0)
|
|
if(GTK3_FOUND)
|
|
add_subdirectory(lib/nativefiledialog-extended)
|
|
set(YAZE_HAS_NFD ON)
|
|
message(STATUS "NFD enabled with GTK3 support")
|
|
else()
|
|
set(YAZE_HAS_NFD OFF)
|
|
message(STATUS "NFD disabled - GTK3 not found")
|
|
endif()
|
|
elseif(WIN32 OR APPLE)
|
|
add_subdirectory(lib/nativefiledialog-extended)
|
|
set(YAZE_HAS_NFD ON)
|
|
message(STATUS "NFD enabled for Windows/macOS")
|
|
else()
|
|
set(YAZE_HAS_NFD OFF)
|
|
message(STATUS "NFD disabled - no platform support")
|
|
endif()
|
|
else()
|
|
set(YAZE_HAS_NFD OFF)
|
|
message(STATUS "NFD disabled for minimal build")
|
|
endif()
|
|
|
|
if (YAZE_BUILD_APP)
|
|
include(app/app.cmake)
|
|
endif()
|
|
# Conditionally build the emulator, but not when gRPC is enabled for app-only testing
|
|
# Conditionally build the emulator, but not when gRPC is enabled for app-only testing
|
|
if(YAZE_BUILD_EMU AND NOT YAZE_WITH_GRPC)
|
|
include(app/emu/emu.cmake)
|
|
endif()
|
|
if (YAZE_BUILD_Z3ED)
|
|
include(cli/z3ed.cmake)
|
|
endif()
|
|
|
|
if(MACOS)
|
|
set_target_properties(yaze
|
|
PROPERTIES
|
|
BUNDLE True
|
|
OUTPUT_NAME "yaze"
|
|
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
|
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/cmake/yaze.plist.in
|
|
RESOURCE ${YAZE_RESOURCE_FILES}
|
|
)
|
|
elseif(UNIX)
|
|
set_target_properties(yaze
|
|
PROPERTIES
|
|
BUNDLE True
|
|
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
|
)
|
|
target_compile_definitions(yaze PRIVATE "linux")
|
|
target_compile_definitions(yaze PRIVATE "stricmp=strcasecmp")
|
|
else()
|
|
if(YAZE_MINIMAL_BUILD)
|
|
# Skip Windows resource file in CI/minimal builds to avoid architecture conflicts
|
|
set_target_properties(yaze
|
|
PROPERTIES
|
|
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
|
)
|
|
else()
|
|
# Windows resource file - only for x64 architecture
|
|
set_target_properties(yaze
|
|
PROPERTIES
|
|
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
|
)
|
|
|
|
# Only use resource file for x64 Windows builds
|
|
if(WIN32 AND CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
# Generate yaze.res from yaze.rc and yaze.ico for Windows x64 builds
|
|
set(YAZE_RC_FILE "${CMAKE_CURRENT_SOURCE_DIR}/win32/yaze.rc")
|
|
set(YAZE_ICO_FILE "${CMAKE_CURRENT_SOURCE_DIR}/win32/yaze.ico")
|
|
set(YAZE_RES_FILE "${CMAKE_CURRENT_BINARY_DIR}/yaze.res")
|
|
|
|
# Add a custom command to generate the .res file from the .rc and .ico
|
|
add_custom_command(
|
|
OUTPUT ${YAZE_RES_FILE}
|
|
COMMAND ${CMAKE_RC_COMPILER} /fo ${YAZE_RES_FILE} ${YAZE_RC_FILE}
|
|
DEPENDS ${YAZE_RC_FILE} ${YAZE_ICO_FILE}
|
|
COMMENT "Generating yaze.res from yaze.rc and yaze.ico"
|
|
VERBATIM
|
|
)
|
|
|
|
# Make sure the resource file is built before linking
|
|
add_custom_target(yaze_res ALL DEPENDS ${YAZE_RES_FILE})
|
|
|
|
# Link the generated .res file to the yaze target
|
|
target_sources(yaze PRIVATE ${YAZE_RES_FILE})
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
# Yaze Core Library (for testing and C API)
|
|
if (YAZE_BUILD_LIB)
|
|
# Create core library for testing (includes editor and zelda3 components needed by tests)
|
|
set(YAZE_CORE_SOURCES
|
|
app/rom.cc
|
|
${YAZE_APP_CORE_SRC}
|
|
${YAZE_APP_GFX_SRC}
|
|
${YAZE_APP_EDITOR_SRC}
|
|
${YAZE_APP_ZELDA3_SRC}
|
|
${YAZE_APP_EMU_SRC}
|
|
${YAZE_GUI_SRC}
|
|
${YAZE_UTIL_SRC}
|
|
# CLI service sources (needed for ProposalDrawer)
|
|
cli/service/planning/proposal_registry.cc
|
|
cli/service/rom/rom_sandbox_manager.cc
|
|
# cli/service/gui_automation_client.cc # Moved to yaze_c
|
|
cli/service/testing/test_workflow_generator.cc
|
|
)
|
|
|
|
# Create full library for C API
|
|
set(YAZE_C_SOURCES
|
|
./yaze.cc
|
|
${YAZE_CORE_SOURCES}
|
|
${YAZE_GUI_SRC}
|
|
${IMGUI_SRC}
|
|
cli/service/gui/gui_automation_client.cc
|
|
)
|
|
|
|
# Add emulator sources (required for comprehensive testing)
|
|
list(APPEND YAZE_C_SOURCES ${YAZE_APP_EMU_SRC})
|
|
|
|
# Only add ImGui Test Engine sources if UI tests are enabled
|
|
if(YAZE_ENABLE_UI_TESTS)
|
|
list(APPEND YAZE_C_SOURCES ${IMGUI_TEST_ENGINE_SOURCES})
|
|
endif()
|
|
|
|
# Create the core library (static for testing)
|
|
add_library(yaze_core STATIC ${YAZE_CORE_SOURCES})
|
|
|
|
# Create the full C API library (static for CI, shared for release)
|
|
if(YAZE_MINIMAL_BUILD)
|
|
add_library(yaze_c STATIC ${YAZE_C_SOURCES})
|
|
else()
|
|
add_library(yaze_c SHARED ${YAZE_C_SOURCES})
|
|
endif()
|
|
|
|
# Configure core library (for testing)
|
|
target_include_directories(
|
|
yaze_core PUBLIC
|
|
${CMAKE_SOURCE_DIR}/src/lib/
|
|
${CMAKE_SOURCE_DIR}/src/app/
|
|
${CMAKE_SOURCE_DIR}/src/lib/asar/src
|
|
${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar
|
|
${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar-dll-bindings/c
|
|
${CMAKE_SOURCE_DIR}/incl/
|
|
${CMAKE_SOURCE_DIR}/src/
|
|
${CMAKE_SOURCE_DIR}/src/lib/imgui
|
|
${CMAKE_SOURCE_DIR}/src/lib/imgui_test_engine
|
|
${SDL2_INCLUDE_DIR}
|
|
${PROJECT_BINARY_DIR}
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
)
|
|
|
|
target_link_libraries(
|
|
yaze_core PUBLIC
|
|
asar-static
|
|
${ABSL_TARGETS}
|
|
${SDL_TARGETS}
|
|
${CMAKE_DL_LIBS}
|
|
ImGui
|
|
)
|
|
|
|
if(YAZE_WITH_GRPC)
|
|
target_add_protobuf(yaze_core
|
|
${CMAKE_SOURCE_DIR}/src/app/core/proto/imgui_test_harness.proto)
|
|
|
|
target_link_libraries(yaze_core PRIVATE
|
|
grpc++
|
|
grpc++_reflection
|
|
libprotobuf)
|
|
endif()
|
|
|
|
# Configure full C API library
|
|
target_include_directories(
|
|
yaze_c PUBLIC
|
|
${CMAKE_SOURCE_DIR}/src/lib/
|
|
${CMAKE_SOURCE_DIR}/src/app/
|
|
${CMAKE_SOURCE_DIR}/src/lib/asar/src
|
|
${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar
|
|
${CMAKE_SOURCE_DIR}/src/lib/asar/src/asar-dll-bindings/c
|
|
${CMAKE_SOURCE_DIR}/incl/
|
|
${CMAKE_SOURCE_DIR}/src/
|
|
${CMAKE_SOURCE_DIR}/src/lib/imgui_test_engine
|
|
${SDL2_INCLUDE_DIR}
|
|
${PROJECT_BINARY_DIR}
|
|
)
|
|
|
|
# Conditionally add PNG include dirs if available
|
|
if(PNG_FOUND)
|
|
target_include_directories(yaze_c PUBLIC ${PNG_INCLUDE_DIRS})
|
|
target_include_directories(yaze_core PUBLIC ${PNG_INCLUDE_DIRS})
|
|
endif()
|
|
|
|
target_link_libraries(
|
|
yaze_c PRIVATE
|
|
yaze_core
|
|
ImGui
|
|
)
|
|
|
|
if(YAZE_WITH_GRPC)
|
|
target_add_protobuf(yaze_c
|
|
${CMAKE_SOURCE_DIR}/src/app/core/proto/imgui_test_harness.proto)
|
|
|
|
target_link_libraries(yaze_c PRIVATE
|
|
grpc++
|
|
grpc++_reflection
|
|
libprotobuf)
|
|
endif()
|
|
|
|
# Conditionally link ImGui Test Engine and set definitions
|
|
if(YAZE_ENABLE_UI_TESTS AND TARGET ImGuiTestEngine)
|
|
target_link_libraries(yaze_c PRIVATE ImGuiTestEngine)
|
|
target_compile_definitions(yaze_c PRIVATE YAZE_ENABLE_IMGUI_TEST_ENGINE=1)
|
|
else()
|
|
target_compile_definitions(yaze_c PRIVATE YAZE_ENABLE_IMGUI_TEST_ENGINE=0)
|
|
endif()
|
|
|
|
# Conditionally link PNG if available
|
|
if(PNG_FOUND)
|
|
target_link_libraries(yaze_c PRIVATE ${PNG_LIBRARIES})
|
|
target_link_libraries(yaze_core PRIVATE ${PNG_LIBRARIES})
|
|
endif()
|
|
|
|
if (YAZE_INSTALL_LIB)
|
|
install(TARGETS yaze_c
|
|
RUNTIME DESTINATION bin
|
|
LIBRARY DESTINATION lib
|
|
ARCHIVE DESTINATION lib/static)
|
|
|
|
install(
|
|
FILES
|
|
incl/yaze.h
|
|
incl/zelda.h
|
|
DESTINATION
|
|
include
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
# =============================================================================
|
|
# Visual Studio Source Groups Organization
|
|
# =============================================================================
|
|
# These source groups will organize files in Visual Studio Solution Explorer
|
|
# into logical, hierarchical folders for better navigation and development.
|
|
|
|
# Core Application Structure
|
|
source_group("Application\\Core" FILES
|
|
app/main.cc
|
|
app/rom.cc
|
|
app/rom.h
|
|
app/snes.h
|
|
app/transaction.h
|
|
yaze.cc
|
|
)
|
|
|
|
# App Core Components
|
|
source_group("Application\\Core\\Controller" FILES
|
|
app/core/controller.cc
|
|
app/core/controller.h
|
|
app/core/window.cc
|
|
app/core/window.h
|
|
)
|
|
|
|
source_group("Application\\Core\\Project" FILES
|
|
app/core/project.cc
|
|
app/core/project.h
|
|
app/core/features.h
|
|
)
|
|
|
|
source_group("Application\\Core\\Asar" FILES
|
|
app/core/asar_wrapper.cc
|
|
app/core/asar_wrapper.h
|
|
)
|
|
|
|
# Platform-specific files
|
|
source_group("Application\\Core\\Platform" FILES
|
|
app/core/platform/app_delegate.h
|
|
app/core/platform/app_delegate.mm
|
|
app/core/platform/clipboard.cc
|
|
app/core/platform/clipboard.h
|
|
app/core/platform/clipboard.mm
|
|
app/core/platform/file_dialog.cc
|
|
app/core/platform/file_dialog.h
|
|
app/core/platform/file_dialog.mm
|
|
app/core/platform/font_loader.cc
|
|
app/core/platform/font_loader.h
|
|
app/core/platform/font_loader.mm
|
|
app/core/platform/view_controller.h
|
|
)
|
|
|
|
# Editor System
|
|
source_group("Application\\Editor" FILES
|
|
app/editor/editor_manager.cc
|
|
app/editor/editor_manager.h
|
|
app/editor/editor.h
|
|
app/editor/editor_safeguards.h
|
|
)
|
|
|
|
# Code Editor
|
|
source_group("Application\\Editor\\Code" FILES
|
|
app/editor/code/assembly_editor.cc
|
|
app/editor/code/assembly_editor.h
|
|
app/editor/code/memory_editor.h
|
|
)
|
|
|
|
# Dungeon Editor
|
|
source_group("Application\\Editor\\Dungeon" FILES
|
|
app/editor/dungeon/dungeon_editor.cc
|
|
app/editor/dungeon/dungeon_editor.h
|
|
app/editor/dungeon/dungeon_map_editor.cc
|
|
app/editor/dungeon/dungeon_map_editor.h
|
|
app/editor/dungeon/dungeon_room_editor.cc
|
|
app/editor/dungeon/dungeon_room_editor.h
|
|
app/editor/dungeon/dungeon_sprite_editor.cc
|
|
app/editor/dungeon/dungeon_sprite_editor.h
|
|
app/editor/dungeon/dungeon_tile_editor.cc
|
|
app/editor/dungeon/dungeon_tile_editor.h
|
|
app/editor/dungeon/room_data_editor.cc
|
|
app/editor/dungeon/room_data_editor.h
|
|
app/editor/dungeon/room_properties_editor.cc
|
|
app/editor/dungeon/room_properties_editor.h
|
|
app/editor/dungeon/room_sprite_editor.cc
|
|
app/editor/dungeon/room_sprite_editor.h
|
|
app/editor/dungeon/room_tile_editor.cc
|
|
app/editor/dungeon/room_tile_editor.h
|
|
)
|
|
|
|
# Graphics Editor
|
|
source_group("Application\\Editor\\Graphics" FILES
|
|
app/editor/graphics/graphics_editor.cc
|
|
app/editor/graphics/graphics_editor.h
|
|
app/editor/graphics/palette_editor.cc
|
|
app/editor/graphics/palette_editor.h
|
|
app/editor/graphics/sprite_editor.cc
|
|
app/editor/graphics/sprite_editor.h
|
|
app/editor/graphics/tile_editor.cc
|
|
app/editor/graphics/tile_editor.h
|
|
)
|
|
|
|
# Message Editor
|
|
source_group("Application\\Editor\\Message" FILES
|
|
app/editor/message/message_editor.cc
|
|
app/editor/message/message_editor.h
|
|
app/editor/message/text_editor.cc
|
|
app/editor/message/text_editor.h
|
|
app/editor/message/translation_editor.cc
|
|
app/editor/message/translation_editor.h
|
|
)
|
|
|
|
# Music Editor
|
|
source_group("Application\\Editor\\Music" FILES
|
|
app/editor/music/music_editor.cc
|
|
app/editor/music/music_editor.h
|
|
)
|
|
|
|
# Overworld Editor
|
|
source_group("Application\\Editor\\Overworld" FILES
|
|
app/editor/overworld/overworld_editor.cc
|
|
app/editor/overworld/overworld_editor.h
|
|
app/editor/overworld/overworld_map_editor.cc
|
|
app/editor/overworld/overworld_map_editor.h
|
|
app/editor/overworld/overworld_sprite_editor.cc
|
|
app/editor/overworld/overworld_sprite_editor.h
|
|
app/editor/overworld/overworld_tile_editor.cc
|
|
app/editor/overworld/overworld_tile_editor.h
|
|
app/editor/overworld/overworld_transport_editor.cc
|
|
app/editor/overworld/overworld_transport_editor.h
|
|
app/editor/overworld/overworld_entrance_editor.cc
|
|
app/editor/overworld/overworld_entrance_editor.h
|
|
)
|
|
|
|
# Sprite Editor
|
|
source_group("Application\\Editor\\Sprite" FILES
|
|
app/editor/sprite/sprite_editor.cc
|
|
app/editor/sprite/sprite_editor.h
|
|
app/editor/sprite/sprite_properties_editor.cc
|
|
app/editor/sprite/sprite_properties_editor.h
|
|
)
|
|
|
|
# System Editor
|
|
source_group("Application\\Editor\\System" FILES
|
|
app/editor/system/asm_editor.cc
|
|
app/editor/system/asm_editor.h
|
|
app/editor/system/config_editor.cc
|
|
app/editor/system/config_editor.h
|
|
app/editor/system/debug_console.cc
|
|
app/editor/system/debug_console.h
|
|
app/editor/system/hex_editor.cc
|
|
app/editor/system/hex_editor.h
|
|
app/editor/system/log_viewer.cc
|
|
app/editor/system/log_viewer.h
|
|
app/editor/system/memory_editor.cc
|
|
app/editor/system/memory_editor.h
|
|
app/editor/system/proposal_drawer.cc
|
|
app/editor/system/proposal_drawer.h
|
|
app/editor/system/rom_analyzer.cc
|
|
app/editor/system/rom_analyzer.h
|
|
)
|
|
|
|
# Emulator
|
|
source_group("Application\\Emulator" FILES
|
|
app/emu/emu.cc
|
|
app/emu/emulator.cc
|
|
app/emu/emulator.h
|
|
app/emu/snes.cc
|
|
app/emu/snes.h
|
|
)
|
|
|
|
# Audio System
|
|
source_group("Application\\Emulator\\Audio" FILES
|
|
app/emu/audio/apu.cc
|
|
app/emu/audio/apu.h
|
|
app/emu/audio/spc700.cc
|
|
app/emu/audio/spc700.h
|
|
app/emu/audio/dsp.cc
|
|
app/emu/audio/dsp.h
|
|
app/emu/audio/internal/addressing.cc
|
|
app/emu/audio/internal/addressing.h
|
|
app/emu/audio/internal/instructions.cc
|
|
app/emu/audio/internal/instructions.h
|
|
)
|
|
|
|
# CPU System
|
|
source_group("Application\\Emulator\\CPU" FILES
|
|
app/emu/cpu/cpu.cc
|
|
app/emu/cpu/cpu.h
|
|
app/emu/cpu/internal/addressing.cc
|
|
app/emu/cpu/internal/addressing.h
|
|
app/emu/cpu/internal/instructions.cc
|
|
app/emu/cpu/internal/instructions.h
|
|
)
|
|
|
|
# Memory System
|
|
source_group("Application\\Emulator\\Memory" FILES
|
|
app/emu/memory/dma.cc
|
|
app/emu/memory/dma.h
|
|
app/emu/memory/memory.cc
|
|
app/emu/memory/memory.h
|
|
app/emu/memory/mock_memory.h
|
|
)
|
|
|
|
# Video System
|
|
source_group("Application\\Emulator\\Video" FILES
|
|
app/emu/video/ppu.cc
|
|
app/emu/video/ppu.h
|
|
app/emu/video/ppu_registers.h
|
|
)
|
|
|
|
# Graphics System
|
|
source_group("Application\\Graphics" FILES
|
|
app/gfx/arena.cc
|
|
app/gfx/arena.h
|
|
app/gfx/background_buffer.cc
|
|
app/gfx/background_buffer.h
|
|
app/gfx/bitmap.cc
|
|
app/gfx/bitmap.h
|
|
app/gfx/compression.cc
|
|
app/gfx/compression.h
|
|
app/gfx/performance_profiler.cc
|
|
app/gfx/performance_profiler.h
|
|
app/gfx/scad_format.cc
|
|
app/gfx/scad_format.h
|
|
app/gfx/snes_color.cc
|
|
app/gfx/snes_color.h
|
|
app/gfx/snes_palette.cc
|
|
app/gfx/snes_palette.h
|
|
app/gfx/snes_tile.cc
|
|
app/gfx/snes_tile.h
|
|
app/gfx/tilemap.cc
|
|
app/gfx/tilemap.h
|
|
)
|
|
|
|
# GUI System
|
|
source_group("Application\\GUI" FILES
|
|
app/gui/background_renderer.cc
|
|
app/gui/background_renderer.h
|
|
app/gui/canvas_utils.cc
|
|
app/gui/canvas_utils.h
|
|
app/gui/canvas.cc
|
|
app/gui/canvas.h
|
|
app/gui/color.cc
|
|
app/gui/color.h
|
|
app/gui/enhanced_palette_editor.cc
|
|
app/gui/enhanced_palette_editor.h
|
|
app/gui/icons.h
|
|
app/gui/input.cc
|
|
app/gui/input.h
|
|
app/gui/style.cc
|
|
app/gui/style.h
|
|
app/gui/theme_manager.cc
|
|
app/gui/theme_manager.h
|
|
app/gui/zeml.cc
|
|
app/gui/zeml.h
|
|
)
|
|
|
|
# GUI Modules
|
|
source_group("Application\\GUI\\Modules" FILES
|
|
app/gui/modules/about_dialog.cc
|
|
app/gui/modules/about_dialog.h
|
|
app/gui/modules/preferences_dialog.cc
|
|
app/gui/modules/preferences_dialog.h
|
|
app/gui/modules/project_dialog.cc
|
|
app/gui/modules/project_dialog.h
|
|
)
|
|
|
|
# Zelda3 Specific
|
|
source_group("Application\\Zelda3" FILES
|
|
app/zelda3/common.h
|
|
app/zelda3/hyrule_magic.cc
|
|
app/zelda3/hyrule_magic.h
|
|
)
|
|
|
|
# Zelda3 Dungeon
|
|
source_group("Application\\Zelda3\\Dungeon" FILES
|
|
app/zelda3/dungeon/dungeon_data.cc
|
|
app/zelda3/dungeon/dungeon_data.h
|
|
app/zelda3/dungeon/dungeon_loader.cc
|
|
app/zelda3/dungeon/dungeon_loader.h
|
|
app/zelda3/dungeon/dungeon_room.cc
|
|
app/zelda3/dungeon/dungeon_room.h
|
|
app/zelda3/dungeon/dungeon_sprite.cc
|
|
app/zelda3/dungeon/dungeon_sprite.h
|
|
app/zelda3/dungeon/dungeon_tile.cc
|
|
app/zelda3/dungeon/dungeon_tile.h
|
|
app/zelda3/dungeon/room_data.cc
|
|
app/zelda3/dungeon/room_data.h
|
|
app/zelda3/dungeon/room_properties.cc
|
|
app/zelda3/dungeon/room_properties.h
|
|
app/zelda3/dungeon/room_sprite.cc
|
|
app/zelda3/dungeon/room_sprite.h
|
|
app/zelda3/dungeon/room_tile.cc
|
|
app/zelda3/dungeon/room_tile.h
|
|
)
|
|
|
|
# Zelda3 Music
|
|
source_group("Application\\Zelda3\\Music" FILES
|
|
app/zelda3/music/music_data.cc
|
|
app/zelda3/music/music_data.h
|
|
)
|
|
|
|
# Zelda3 Overworld
|
|
source_group("Application\\Zelda3\\Overworld" FILES
|
|
app/zelda3/overworld/overworld_data.cc
|
|
app/zelda3/overworld/overworld_data.h
|
|
app/zelda3/overworld/overworld_loader.cc
|
|
app/zelda3/overworld/overworld_loader.h
|
|
app/zelda3/overworld/overworld_sprite.cc
|
|
app/zelda3/overworld/overworld_sprite.h
|
|
app/zelda3/overworld/overworld_tile.cc
|
|
app/zelda3/overworld/overworld_tile.h
|
|
app/zelda3/overworld/overworld_transport.cc
|
|
app/zelda3/overworld/overworld_transport.h
|
|
)
|
|
|
|
# Zelda3 Screen
|
|
source_group("Application\\Zelda3\\Screen" FILES
|
|
app/zelda3/screen/dungeon_map.cc
|
|
app/zelda3/screen/dungeon_map.h
|
|
app/zelda3/screen/inventory.cc
|
|
app/zelda3/screen/inventory.h
|
|
app/zelda3/screen/title_screen.cc
|
|
app/zelda3/screen/title_screen.h
|
|
)
|
|
|
|
# Zelda3 Sprite
|
|
source_group("Application\\Zelda3\\Sprite" FILES
|
|
app/zelda3/sprite/sprite_data.cc
|
|
app/zelda3/sprite/sprite_data.h
|
|
app/zelda3/sprite/sprite_loader.cc
|
|
app/zelda3/sprite/sprite_loader.h
|
|
app/zelda3/sprite/sprite.cc
|
|
app/zelda3/sprite/sprite.h
|
|
)
|
|
|
|
# Testing
|
|
source_group("Application\\Testing" FILES
|
|
app/test/test_manager.cc
|
|
app/test/test_manager.h
|
|
app/test/e2e_test_suite.h
|
|
app/test/integrated_test_suite.h
|
|
app/test/rom_dependent_test_suite.h
|
|
app/test/unit_test_suite.h
|
|
app/test/zscustomoverworld_test_suite.h
|
|
)
|
|
|
|
# CLI Tools
|
|
source_group("CLI" FILES
|
|
cli/cli_main.cc
|
|
cli/tui.cc
|
|
cli/tui.h
|
|
cli/z3ed.cc
|
|
cli/z3ed.h
|
|
)
|
|
|
|
source_group("CLI\\Handlers" FILES
|
|
cli/handlers/compress.cc
|
|
cli/handlers/patch.cc
|
|
cli/handlers/tile16_transfer.cc
|
|
)
|
|
|
|
# Utilities
|
|
source_group("Utilities" FILES
|
|
util/bps.cc
|
|
util/bps.h
|
|
util/flag.cc
|
|
util/flag.h
|
|
util/hex.cc
|
|
util/hex.h
|
|
util/log.h
|
|
util/macro.h
|
|
util/notify.h
|
|
)
|
|
|
|
# API
|
|
source_group("API" FILES
|
|
api/service_handler.cc
|
|
api/yaze.proto
|
|
)
|
|
|
|
source_group("API\\Python" FILES
|
|
api/python/yaze_py.cc
|
|
)
|
|
|
|
# Platform-specific Resources
|
|
source_group("Platform\\Windows" FILES
|
|
win32/yaze.ico
|
|
win32/yaze.rc
|
|
win32/yaze.res
|
|
)
|
|
|
|
source_group("Platform\\iOS" FILES
|
|
ios/main.mm
|
|
ios/iOS/Info-iOS.plist
|
|
ios/iOS/LaunchScreen.storyboard
|
|
ios/macOS/Info-macOS.plist
|
|
ios/macOS/MainMenu.storyboard
|
|
)
|
|
|
|
source_group("Platform\\iOS\\Assets" FILES
|
|
ios/Media.xcassets/Contents.json
|
|
)
|
|
|
|
# Configuration
|
|
source_group("Configuration" FILES
|
|
yaze_config.h.in
|
|
)
|
|
|
|
# Assets
|
|
source_group("Assets\\Fonts" FILES
|
|
${CMAKE_SOURCE_DIR}/assets/font/Karla-Regular.ttf
|
|
${CMAKE_SOURCE_DIR}/assets/font/Roboto-Medium.ttf
|
|
${CMAKE_SOURCE_DIR}/assets/font/Cousine-Regular.ttf
|
|
${CMAKE_SOURCE_DIR}/assets/font/DroidSans.ttf
|
|
${CMAKE_SOURCE_DIR}/assets/font/NotoSansJP.ttf
|
|
${CMAKE_SOURCE_DIR}/assets/font/IBMPlexSansJP-Bold.ttf
|
|
${CMAKE_SOURCE_DIR}/assets/font/MaterialIcons-Regular.ttf
|
|
)
|
|
|
|
source_group("Assets\\Themes" FILES
|
|
${YAZE_THEME_FILES}
|
|
)
|
|
|
|
source_group("Assets\\Layouts" FILES
|
|
${CMAKE_SOURCE_DIR}/assets/layouts/ow_toolset.zeml
|
|
)
|
|
|
|
source_group("Assets\\Library" FILES
|
|
${CMAKE_SOURCE_DIR}/assets/lib/libasar.dll
|
|
)
|