Add abseil dependency and enhance vcpkg configuration

- Introduced the abseil library as a dependency in vcpkg.json, excluding UWP platform support.
- Updated the vcpkg configuration to include a new features section for pkg-config, improving dependency detection.
- Modified yaze.vcxproj to conditionally include additional dependencies and library directories based on vcpkg integration status, enhancing build flexibility.
- Organized source and header files in the project structure for better clarity and maintainability.
This commit is contained in:
scawful
2025-09-27 21:20:55 -04:00
parent 8f8d2b7768
commit b5d908d39d
2 changed files with 255 additions and 9 deletions

View File

@@ -15,6 +15,10 @@
"name": "sdl2",
"platform": "!uwp",
"features": ["vulkan"]
},
{
"name": "abseil",
"platform": "!uwp"
}
],
"builtin-baseline": "c8696863d371ab7f46e213d8f5ca923c4aef2a00",
@@ -23,5 +27,11 @@
"name": "abseil",
"version": "20240116.2"
}
]
],
"features": {
"pkg-config": {
"description": "Use pkg-config for dependency detection",
"dependencies": []
}
}
}

View File

@@ -143,8 +143,9 @@
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>SDL2.lib;SDL2main.lib;zlibd.lib;libpng16d.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(VcpkgRoot)installed\x64-windows\debug\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies Condition="'$(VcpkgEnabled)' == 'true'">SDL2.lib;SDL2main.lib;zlibd.lib;libpng16d.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies Condition="'$(VcpkgEnabled)' != 'true'">SDL2.lib;SDL2main.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories Condition="'$(VcpkgEnabled)' == 'true'">$(VcpkgRoot)installed\x64-windows\debug\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<PostBuildEvent>
<Command>if not exist "$(OutDir)assets" mkdir "$(OutDir)assets"
@@ -172,8 +173,9 @@ if exist "$(ProjectDir)zelda3.sfc" copy /Y "$(ProjectDir)zelda3.sfc" "$(OutDir)"
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>SDL2.lib;SDL2main.lib;zlib.lib;libpng16.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(VcpkgRoot)installed\x64-windows\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies Condition="'$(VcpkgEnabled)' == 'true'">SDL2.lib;SDL2main.lib;zlib.lib;libpng16.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies Condition="'$(VcpkgEnabled)' != 'true'">SDL2.lib;SDL2main.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories Condition="'$(VcpkgEnabled)' == 'true'">$(VcpkgRoot)installed\x64-windows\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<PostBuildEvent>
<Command>if not exist "$(OutDir)assets" mkdir "$(OutDir)assets"
@@ -197,8 +199,9 @@ if exist "$(ProjectDir)zelda3.sfc" copy /Y "$(ProjectDir)zelda3.sfc" "$(OutDir)"
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>SDL2.lib;SDL2main.lib;zlibd.lib;libpng16d.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(VcpkgRoot)installed\x86-windows\debug\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies Condition="'$(VcpkgEnabled)' == 'true'">SDL2.lib;SDL2main.lib;zlibd.lib;libpng16d.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies Condition="'$(VcpkgEnabled)' != 'true'">SDL2.lib;SDL2main.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories Condition="'$(VcpkgEnabled)' == 'true'">$(VcpkgRoot)installed\x86-windows\debug\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<PostBuildEvent>
<Command>if not exist "$(OutDir)assets" mkdir "$(OutDir)assets"
@@ -226,8 +229,9 @@ if exist "$(ProjectDir)zelda3.sfc" copy /Y "$(ProjectDir)zelda3.sfc" "$(OutDir)"
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>SDL2.lib;SDL2main.lib;zlib.lib;libpng16.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(VcpkgRoot)installed\x86-windows\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies Condition="'$(VcpkgEnabled)' == 'true'">SDL2.lib;SDL2main.lib;zlib.lib;libpng16.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies Condition="'$(VcpkgEnabled)' != 'true'">SDL2.lib;SDL2main.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories Condition="'$(VcpkgEnabled)' == 'true'">$(VcpkgRoot)installed\x86-windows\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<PostBuildEvent>
<Command>if not exist "$(OutDir)assets" mkdir "$(OutDir)assets"
@@ -242,12 +246,202 @@ if exist "$(ProjectDir)zelda3.sfc" copy /Y "$(ProjectDir)zelda3.sfc" "$(OutDir)"
<ClCompile Include="src\app\main.cc" />
<ClCompile Include="src\app\rom.cc" />
<ClCompile Include="src\yaze.cc" />
<!-- Core Application Sources -->
<ClCompile Include="src\app\core\controller.cc" />
<ClCompile Include="src\app\emu\emulator.cc" />
<ClCompile Include="src\app\core\project.cc" />
<ClCompile Include="src\app\core\window.cc" />
<ClCompile Include="src\app\core\asar_wrapper.cc" />
<ClCompile Include="src\app\core\platform\font_loader.cc" />
<ClCompile Include="src\app\core\platform\clipboard.cc" />
<ClCompile Include="src\app\core\platform\file_dialog.cc" />
<!-- Editor Sources -->
<ClCompile Include="src\app\editor\editor_manager.cc" />
<ClCompile Include="src\app\editor\dungeon\dungeon_editor.cc" />
<ClCompile Include="src\app\editor\dungeon\dungeon_room_selector.cc" />
<ClCompile Include="src\app\editor\dungeon\dungeon_canvas_viewer.cc" />
<ClCompile Include="src\app\editor\dungeon\dungeon_object_selector.cc" />
<ClCompile Include="src\app\editor\dungeon\dungeon_toolset.cc" />
<ClCompile Include="src\app\editor\dungeon\dungeon_object_interaction.cc" />
<ClCompile Include="src\app\editor\dungeon\dungeon_renderer.cc" />
<ClCompile Include="src\app\editor\dungeon\dungeon_room_loader.cc" />
<ClCompile Include="src\app\editor\dungeon\dungeon_usage_tracker.cc" />
<ClCompile Include="src\app\editor\overworld\overworld_editor.cc" />
<ClCompile Include="src\app\editor\overworld\overworld_editor_manager.cc" />
<ClCompile Include="src\app\editor\sprite\sprite_editor.cc" />
<ClCompile Include="src\app\editor\music\music_editor.cc" />
<ClCompile Include="src\app\editor\message\message_editor.cc" />
<ClCompile Include="src\app\editor\message\message_data.cc" />
<ClCompile Include="src\app\editor\message\message_preview.cc" />
<ClCompile Include="src\app\editor\code\assembly_editor.cc" />
<ClCompile Include="src\app\editor\graphics\screen_editor.cc" />
<ClCompile Include="src\app\editor\graphics\graphics_editor.cc" />
<ClCompile Include="src\app\editor\graphics\palette_editor.cc" />
<ClCompile Include="src\app\editor\overworld\tile16_editor.cc" />
<ClCompile Include="src\app\editor\overworld\map_properties.cc" />
<ClCompile Include="src\app\editor\graphics\gfx_group_editor.cc" />
<ClCompile Include="src\app\editor\overworld\entity.cc" />
<ClCompile Include="src\app\editor\system\settings_editor.cc" />
<ClCompile Include="src\app\editor\system\command_manager.cc" />
<ClCompile Include="src\app\editor\system\extension_manager.cc" />
<ClCompile Include="src\app\editor\system\shortcut_manager.cc" />
<ClCompile Include="src\app\editor\system\popup_manager.cc" />
<ClCompile Include="src\app\test\test_manager.cc" />
<!-- Graphics Sources -->
<ClCompile Include="src\app\gfx\arena.cc" />
<ClCompile Include="src\app\gfx\background_buffer.cc" />
<ClCompile Include="src\app\gfx\bitmap.cc" />
<ClCompile Include="src\app\gfx\compression.cc" />
<ClCompile Include="src\app\gfx\scad_format.cc" />
<ClCompile Include="src\app\gfx\snes_palette.cc" />
<ClCompile Include="src\app\gfx\snes_tile.cc" />
<ClCompile Include="src\app\gfx\snes_color.cc" />
<ClCompile Include="src\app\gfx\tilemap.cc" />
<!-- GUI Sources -->
<ClCompile Include="src\app\gui\modules\asset_browser.cc" />
<ClCompile Include="src\app\gui\modules\text_editor.cc" />
<ClCompile Include="src\app\gui\canvas.cc" />
<ClCompile Include="src\app\gui\canvas_utils.cc" />
<ClCompile Include="src\app\gui\enhanced_palette_editor.cc" />
<ClCompile Include="src\app\gui\input.cc" />
<ClCompile Include="src\app\gui\style.cc" />
<ClCompile Include="src\app\gui\color.cc" />
<ClCompile Include="src\app\gui\zeml.cc" />
<ClCompile Include="src\app\gui\theme_manager.cc" />
<ClCompile Include="src\app\gui\background_renderer.cc" />
<!-- Zelda3 Sources -->
<ClCompile Include="src\app\zelda3\hyrule_magic.cc" />
<ClCompile Include="src\app\zelda3\overworld\overworld_map.cc" />
<ClCompile Include="src\app\zelda3\overworld\overworld.cc" />
<ClCompile Include="src\app\zelda3\screen\inventory.cc" />
<ClCompile Include="src\app\zelda3\screen\title_screen.cc" />
<ClCompile Include="src\app\zelda3\screen\dungeon_map.cc" />
<ClCompile Include="src\app\zelda3\sprite\sprite.cc" />
<ClCompile Include="src\app\zelda3\sprite\sprite_builder.cc" />
<ClCompile Include="src\app\zelda3\music\tracker.cc" />
<ClCompile Include="src\app\zelda3\dungeon\room.cc" />
<ClCompile Include="src\app\zelda3\dungeon\room_object.cc" />
<ClCompile Include="src\app\zelda3\dungeon\object_parser.cc" />
<ClCompile Include="src\app\zelda3\dungeon\object_renderer.cc" />
<ClCompile Include="src\app\zelda3\dungeon\room_layout.cc" />
<ClCompile Include="src\app\zelda3\dungeon\dungeon_editor_system.cc" />
<ClCompile Include="src\app\zelda3\dungeon\dungeon_object_editor.cc" />
<!-- Emulator Sources -->
<ClCompile Include="src\app\emu\audio\apu.cc" />
<ClCompile Include="src\app\emu\audio\spc700.cc" />
<ClCompile Include="src\app\emu\audio\dsp.cc" />
<ClCompile Include="src\app\emu\audio\internal\addressing.cc" />
<ClCompile Include="src\app\emu\audio\internal\instructions.cc" />
<ClCompile Include="src\app\emu\cpu\internal\addressing.cc" />
<ClCompile Include="src\app\emu\cpu\internal\instructions.cc" />
<ClCompile Include="src\app\emu\cpu\cpu.cc" />
<ClCompile Include="src\app\emu\video\ppu.cc" />
<ClCompile Include="src\app\emu\memory\dma.cc" />
<ClCompile Include="src\app\emu\memory\memory.cc" />
<ClCompile Include="src\app\emu\snes.cc" />
<!-- Utility Sources -->
<ClCompile Include="src\util\bps.cc" />
<ClCompile Include="src\util\flag.cc" />
<ClCompile Include="src\util\hex.cc" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="incl\yaze.h" />
<ClInclude Include="incl\zelda.h" />
<ClInclude Include="src\yaze_config.h.in" />
<!-- Core Headers -->
<ClInclude Include="src\app\core\controller.h" />
<ClInclude Include="src\app\core\features.h" />
<ClInclude Include="src\app\core\project.h" />
<ClInclude Include="src\app\core\window.h" />
<ClInclude Include="src\app\core\asar_wrapper.h" />
<!-- Editor Headers -->
<ClInclude Include="src\app\editor\editor_manager.h" />
<ClInclude Include="src\app\editor\dungeon\dungeon_editor.h" />
<ClInclude Include="src\app\editor\overworld\overworld_editor.h" />
<ClInclude Include="src\app\editor\overworld\tile16_editor.h" />
<ClInclude Include="src\app\editor\overworld\map_properties.h" />
<ClInclude Include="src\app\editor\graphics\graphics_editor.h" />
<ClInclude Include="src\app\editor\graphics\palette_editor.h" />
<ClInclude Include="src\app\editor\graphics\gfx_group_editor.h" />
<ClInclude Include="src\app\editor\message\message_editor.h" />
<ClInclude Include="src\app\editor\message\message_data.h" />
<ClInclude Include="src\app\editor\sprite\sprite_editor.h" />
<ClInclude Include="src\app\editor\music\music_editor.h" />
<ClInclude Include="src\app\editor\code\assembly_editor.h" />
<ClInclude Include="src\app\editor\system\settings_editor.h" />
<ClInclude Include="src\app\editor\system\command_manager.h" />
<ClInclude Include="src\app\editor\system\extension_manager.h" />
<ClInclude Include="src\app\editor\system\shortcut_manager.h" />
<ClInclude Include="src\app\editor\system\popup_manager.h" />
<!-- Graphics Headers -->
<ClInclude Include="src\app\gfx\arena.h" />
<ClInclude Include="src\app\gfx\background_buffer.h" />
<ClInclude Include="src\app\gfx\bitmap.h" />
<ClInclude Include="src\app\gfx\compression.h" />
<ClInclude Include="src\app\gfx\scad_format.h" />
<ClInclude Include="src\app\gfx\snes_palette.h" />
<ClInclude Include="src\app\gfx\snes_tile.h" />
<ClInclude Include="src\app\gfx\snes_color.h" />
<ClInclude Include="src\app\gfx\tilemap.h" />
<!-- GUI Headers -->
<ClInclude Include="src\app\gui\canvas.h" />
<ClInclude Include="src\app\gui\canvas_utils.h" />
<ClInclude Include="src\app\gui\enhanced_palette_editor.h" />
<ClInclude Include="src\app\gui\input.h" />
<ClInclude Include="src\app\gui\style.h" />
<ClInclude Include="src\app\gui\color.h" />
<ClInclude Include="src\app\gui\zeml.h" />
<ClInclude Include="src\app\gui\theme_manager.h" />
<ClInclude Include="src\app\gui\background_renderer.h" />
<ClInclude Include="src\app\gui\modules\asset_browser.h" />
<ClInclude Include="src\app\gui\modules\text_editor.h" />
<!-- Zelda3 Headers -->
<ClInclude Include="src\app\zelda3\hyrule_magic.h" />
<ClInclude Include="src\app\zelda3\overworld\overworld_map.h" />
<ClInclude Include="src\app\zelda3\overworld\overworld.h" />
<ClInclude Include="src\app\zelda3\screen\inventory.h" />
<ClInclude Include="src\app\zelda3\screen\title_screen.h" />
<ClInclude Include="src\app\zelda3\screen\dungeon_map.h" />
<ClInclude Include="src\app\zelda3\sprite\sprite.h" />
<ClInclude Include="src\app\zelda3\sprite\sprite_builder.h" />
<ClInclude Include="src\app\zelda3\music\tracker.h" />
<ClInclude Include="src\app\zelda3\dungeon\room.h" />
<ClInclude Include="src\app\zelda3\dungeon\room_object.h" />
<ClInclude Include="src\app\zelda3\dungeon\object_parser.h" />
<ClInclude Include="src\app\zelda3\dungeon\object_renderer.h" />
<ClInclude Include="src\app\zelda3\dungeon\room_layout.h" />
<ClInclude Include="src\app\zelda3\dungeon\dungeon_editor_system.h" />
<ClInclude Include="src\app\zelda3\dungeon\dungeon_object_editor.h" />
<!-- Emulator Headers -->
<ClInclude Include="src\app\emu\emulator.h" />
<ClInclude Include="src\app\emu\snes.h" />
<ClInclude Include="src\app\emu\cpu\cpu.h" />
<ClInclude Include="src\app\emu\video\ppu.h" />
<ClInclude Include="src\app\emu\memory\memory.h" />
<ClInclude Include="src\app\emu\memory\dma.h" />
<ClInclude Include="src\app\emu\audio\apu.h" />
<ClInclude Include="src\app\emu\audio\spc700.h" />
<ClInclude Include="src\app\emu\audio\dsp.h" />
<!-- Utility Headers -->
<ClInclude Include="src\util\bps.h" />
<ClInclude Include="src\util\flag.h" />
<ClInclude Include="src\util\hex.h" />
<ClInclude Include="src\util\log.h" />
</ItemGroup>
<ItemGroup>
@@ -256,6 +450,48 @@ if exist "$(ProjectDir)zelda3.sfc" copy /Y "$(ProjectDir)zelda3.sfc" "$(OutDir)"
<None Include="README.md" />
</ItemGroup>
<ItemGroup>
<Content Include="assets\yaze.icns" />
<Content Include="assets\yaze.png" />
<!-- Font Assets -->
<Content Include="assets\font\Karla-Regular.ttf" />
<Content Include="assets\font\Roboto-Medium.ttf" />
<Content Include="assets\font\Cousine-Regular.ttf" />
<Content Include="assets\font\DroidSans.ttf" />
<Content Include="assets\font\NotoSansJP.ttf" />
<Content Include="assets\font\IBMPlexSansJP-Bold.ttf" />
<Content Include="assets\font\MaterialIcons-Regular.ttf" />
<!-- Theme Assets -->
<Content Include="assets\themes\*.theme">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<!-- Assembly Assets -->
<Content Include="assets\asm\*.asm">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="assets\asm\*.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<!-- Layout Assets -->
<Content Include="assets\layouts\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<!-- Library Assets -->
<Content Include="assets\lib\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<!-- Additional Assets -->
<Content Include="assets\etc\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="src\win32\yaze.rc" />
</ItemGroup>