From 385500120a3e2180db7da0d04f39f064a72032ad Mon Sep 17 00:00:00 2001 From: scawful Date: Sat, 27 Sep 2025 23:29:16 -0400 Subject: [PATCH] Refactor Visual Studio solution and project files for improved organization and support - Restructured the solution file to better categorize projects, including new entries for Documentation, Scripts, and CMake. - Updated project configurations to support multiple architectures (x86, x64, ARM64) and added new build types (RelWithDebInfo, MinSizeRel). - Introduced new scripts for generating Visual Studio project files, enhancing the build process for Windows users. - Removed obsolete project entries and streamlined the solution structure for clarity and maintainability. --- scripts/generate-vs-projects.bat | 133 ++++ scripts/generate-vs-projects.ps1 | 141 ++++ yaze.sln | 154 ++-- yaze.vcxproj | 1213 ++++++++++-------------------- 4 files changed, 716 insertions(+), 925 deletions(-) create mode 100644 scripts/generate-vs-projects.bat create mode 100644 scripts/generate-vs-projects.ps1 diff --git a/scripts/generate-vs-projects.bat b/scripts/generate-vs-projects.bat new file mode 100644 index 00000000..a810f2fe --- /dev/null +++ b/scripts/generate-vs-projects.bat @@ -0,0 +1,133 @@ +@echo off +REM Generate Visual Studio project files for YAZE +REM This script creates proper Visual Studio solution and project files + +setlocal enabledelayedexpansion + +REM Default values +set CONFIGURATION=Debug +set ARCHITECTURE=x64 +set CLEAN=false + +REM Parse command line arguments +:parse_args +if "%~1"=="" goto :args_done +if "%~1"=="--clean" set CLEAN=true +if "%~1"=="--release" set CONFIGURATION=Release +if "%~1"=="--x86" set ARCHITECTURE=Win32 +if "%~1"=="--x64" set ARCHITECTURE=x64 +if "%~1"=="--arm64" set ARCHITECTURE=ARM64 +shift +goto :parse_args + +:args_done + +REM Validate architecture +if not "%ARCHITECTURE%"=="x64" if not "%ARCHITECTURE%"=="Win32" if not "%ARCHITECTURE%"=="ARM64" ( + echo Invalid architecture: %ARCHITECTURE% + echo Valid architectures: x64, Win32, ARM64 + exit /b 1 +) + +echo Generating Visual Studio project files for YAZE... + +REM Check if we're on Windows +if not "%OS%"=="Windows_NT" ( + echo This script is designed for Windows. Use CMake presets on other platforms. + echo Available presets: + echo - windows-debug + echo - windows-release + echo - windows-dev + exit /b 1 +) + +REM Set up paths +set SOURCE_DIR=%~dp0.. +set BUILD_DIR=%SOURCE_DIR%\build-vs + +echo Source directory: %SOURCE_DIR% +echo Build directory: %BUILD_DIR% + +REM Clean build directory if requested +if "%CLEAN%"=="true" ( + if exist "%BUILD_DIR%" ( + echo Cleaning build directory... + rmdir /s /q "%BUILD_DIR%" + ) +) + +REM Create build directory +if not exist "%BUILD_DIR%" mkdir "%BUILD_DIR%" + +REM Check if vcpkg is available +set VCPKG_PATH=%SOURCE_DIR%\vcpkg\scripts\buildsystems\vcpkg.cmake +if exist "%VCPKG_PATH%" ( + echo Using vcpkg toolchain: %VCPKG_PATH% + set USE_VCPKG=true +) else ( + echo vcpkg not found, using system libraries + set USE_VCPKG=false +) + +REM Build CMake command +set CMAKE_ARGS=-B "%BUILD_DIR%" -G "Visual Studio 17 2022" -A %ARCHITECTURE% -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DYAZE_BUILD_TESTS=ON -DYAZE_BUILD_APP=ON -DYAZE_BUILD_LIB=ON -DYAZE_BUILD_EMU=ON -DYAZE_BUILD_Z3ED=ON -DYAZE_ENABLE_ROM_TESTS=OFF -DYAZE_ENABLE_EXPERIMENTAL_TESTS=ON -DYAZE_ENABLE_UI_TESTS=ON -DYAZE_INSTALL_LIB=OFF + +if "%USE_VCPKG%"=="true" ( + set CMAKE_ARGS=%CMAKE_ARGS% -DCMAKE_TOOLCHAIN_FILE="%VCPKG_PATH%" -DVCPKG_TARGET_TRIPLET=%ARCHITECTURE%-windows -DVCPKG_MANIFEST_MODE=ON +) + +REM Run CMake configuration +echo Configuring CMake... +echo Command: cmake %CMAKE_ARGS% "%SOURCE_DIR%" + +cmake %CMAKE_ARGS% "%SOURCE_DIR%" + +if errorlevel 1 ( + echo CMake configuration failed! + exit /b 1 +) + +REM Check if solution file was created +set SOLUTION_FILE=%BUILD_DIR%\YAZE.sln +if exist "%SOLUTION_FILE%" ( + echo ✅ Visual Studio solution created: %SOLUTION_FILE% + + REM Copy solution file to root directory for convenience + set ROOT_SOLUTION_FILE=%SOURCE_DIR%\YAZE.sln + copy "%SOLUTION_FILE%" "%ROOT_SOLUTION_FILE%" >nul + echo ✅ Solution file copied to root directory + + REM Try to open solution in Visual Studio + where devenv >nul 2>&1 + if not errorlevel 1 ( + echo Opening solution in Visual Studio... + start "" devenv "%ROOT_SOLUTION_FILE%" + ) else ( + echo Visual Studio solution ready: %ROOT_SOLUTION_FILE% + ) +) else ( + echo ❌ Solution file not created. Check CMake output for errors. + exit /b 1 +) + +echo. +echo 🎉 Visual Studio project generation complete! +echo. +echo Next steps: +echo 1. Open YAZE.sln in Visual Studio +echo 2. Select configuration: %CONFIGURATION% +echo 3. Select platform: %ARCHITECTURE% +echo 4. Build the solution (Ctrl+Shift+B) +echo. +echo Available configurations: +echo - Debug (with debugging symbols) +echo - Release (optimized) +echo - RelWithDebInfo (optimized with debug info) +echo - MinSizeRel (minimum size) +echo. +echo Available architectures: +echo - x64 (64-bit Intel/AMD) +echo - x86 (32-bit Intel/AMD) +echo - ARM64 (64-bit ARM) + +pause diff --git a/scripts/generate-vs-projects.ps1 b/scripts/generate-vs-projects.ps1 new file mode 100644 index 00000000..c4231aed --- /dev/null +++ b/scripts/generate-vs-projects.ps1 @@ -0,0 +1,141 @@ +# Generate Visual Studio project files for YAZE +# This script creates proper Visual Studio solution and project files + +param( + [string]$Configuration = "Debug", + [string]$Architecture = "x64", + [switch]$Clean = $false +) + +# Validate architecture parameter +$ValidArchitectures = @("x64", "x86", "ARM64") +if ($Architecture -notin $ValidArchitectures) { + Write-Host "Invalid architecture: $Architecture" -ForegroundColor Red + Write-Host "Valid architectures: $($ValidArchitectures -join ', ')" -ForegroundColor Yellow + exit 1 +} + +Write-Host "Generating Visual Studio project files for YAZE..." -ForegroundColor Green + +# Check if we're on Windows +if ($env:OS -ne "Windows_NT") { + Write-Host "This script is designed for Windows. Use CMake presets on other platforms." -ForegroundColor Yellow + Write-Host "Available presets:" -ForegroundColor Cyan + Write-Host " - windows-debug" -ForegroundColor Gray + Write-Host " - windows-release" -ForegroundColor Gray + Write-Host " - windows-dev" -ForegroundColor Gray + exit 1 +} + +# Set up paths +$SourceDir = Split-Path -Parent $PSScriptRoot +$BuildDir = Join-Path $SourceDir "build-vs" + +Write-Host "Source directory: $SourceDir" -ForegroundColor Cyan +Write-Host "Build directory: $BuildDir" -ForegroundColor Cyan + +# Clean build directory if requested +if ($Clean -and (Test-Path $BuildDir)) { + Write-Host "Cleaning build directory..." -ForegroundColor Yellow + Remove-Item -Recurse -Force $BuildDir +} + +# Create build directory +if (-not (Test-Path $BuildDir)) { + New-Item -ItemType Directory -Path $BuildDir | Out-Null +} + +# Check if vcpkg is available +$VcpkgPath = Join-Path $SourceDir "vcpkg\scripts\buildsystems\vcpkg.cmake" +$UseVcpkg = Test-Path $VcpkgPath + +if ($UseVcpkg) { + Write-Host "Using vcpkg toolchain: $VcpkgPath" -ForegroundColor Green +} else { + Write-Host "vcpkg not found, using system libraries" -ForegroundColor Yellow +} + +# Determine generator and architecture +$Generator = "Visual Studio 17 2022" +$ArchFlag = if ($Architecture -eq "x64") { "-A x64" } else { "-A Win32" } + +# Build CMake command +$CmakeArgs = @( + "-B", $BuildDir, + "-G", "`"$Generator`"", + $ArchFlag, + "-DCMAKE_BUILD_TYPE=$Configuration", + "-DYAZE_BUILD_TESTS=ON", + "-DYAZE_BUILD_APP=ON", + "-DYAZE_BUILD_LIB=ON", + "-DYAZE_BUILD_EMU=ON", + "-DYAZE_BUILD_Z3ED=ON", + "-DYAZE_ENABLE_ROM_TESTS=OFF", + "-DYAZE_ENABLE_EXPERIMENTAL_TESTS=ON", + "-DYAZE_ENABLE_UI_TESTS=ON", + "-DYAZE_INSTALL_LIB=OFF" +) + +if ($UseVcpkg) { + $CmakeArgs += @( + "-DCMAKE_TOOLCHAIN_FILE=`"$VcpkgPath`"", + "-DVCPKG_TARGET_TRIPLET=$Architecture-windows", + "-DVCPKG_MANIFEST_MODE=ON" + ) +} + +# Run CMake configuration +Write-Host "Configuring CMake..." -ForegroundColor Yellow +Write-Host "Command: cmake $($CmakeArgs -join ' ')" -ForegroundColor Gray + +& cmake @CmakeArgs $SourceDir + +if ($LASTEXITCODE -ne 0) { + Write-Host "CMake configuration failed!" -ForegroundColor Red + exit 1 +} + +# Check if solution file was created +$SolutionFile = Join-Path $BuildDir "YAZE.sln" +if (Test-Path $SolutionFile) { + Write-Host "✅ Visual Studio solution created: $SolutionFile" -ForegroundColor Green + + # Copy solution file to root directory for convenience + $RootSolutionFile = Join-Path $SourceDir "YAZE.sln" + Copy-Item $SolutionFile $RootSolutionFile -Force + Write-Host "✅ Solution file copied to root directory" -ForegroundColor Green + + # Open solution in Visual Studio if available + if (Get-Command "devenv" -ErrorAction SilentlyContinue) { + Write-Host "Opening solution in Visual Studio..." -ForegroundColor Yellow + & devenv $RootSolutionFile + } elseif (Get-Command "code" -ErrorAction SilentlyContinue) { + Write-Host "Opening solution in VS Code..." -ForegroundColor Yellow + & code $RootSolutionFile + } else { + Write-Host "Visual Studio solution ready: $RootSolutionFile" -ForegroundColor Cyan + } +} else { + Write-Host "❌ Solution file not created. Check CMake output for errors." -ForegroundColor Red + exit 1 +} + +Write-Host "" +Write-Host "🎉 Visual Studio project generation complete!" -ForegroundColor Green +Write-Host "" +Write-Host "Next steps:" -ForegroundColor Cyan +Write-Host "1. Open YAZE.sln in Visual Studio" -ForegroundColor White +Write-Host "2. Select configuration: $Configuration" -ForegroundColor White +Write-Host "3. Select platform: $Architecture" -ForegroundColor White +Write-Host "4. Build the solution (Ctrl+Shift+B)" -ForegroundColor White +Write-Host "" +Write-Host "Available configurations:" -ForegroundColor Cyan +Write-Host " - Debug (with debugging symbols)" -ForegroundColor Gray +Write-Host " - Release (optimized)" -ForegroundColor Gray +Write-Host " - RelWithDebInfo (optimized with debug info)" -ForegroundColor Gray +Write-Host " - MinSizeRel (minimum size)" -ForegroundColor Gray +Write-Host "" +Write-Host "Available architectures:" -ForegroundColor Cyan +Write-Host " - x64 (64-bit Intel/AMD)" -ForegroundColor Gray +Write-Host " - x86 (32-bit Intel/AMD)" -ForegroundColor Gray +Write-Host " - ARM64 (64-bit ARM)" -ForegroundColor Gray diff --git a/yaze.sln b/yaze.sln index bf153cb8..f41a6448 100644 --- a/yaze.sln +++ b/yaze.sln @@ -2,57 +2,18 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31903.59 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{FOLDER-GUID-SRC}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{FOLDER-GUID-ROOT}" ProjectSection(SolutionItems) = preProject - src\CMakeLists.txt = src\CMakeLists.txt - src\yaze.cc = src\yaze.cc - src\yaze_config.h.in = src\yaze_config.h.in + CMakeLists.txt = CMakeLists.txt + CMakePresets.json = CMakePresets.json + vcpkg.json = vcpkg.json + README.md = README.md + LICENSE = LICENSE EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{FOLDER-GUID-APP}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "api", "api", "{FOLDER-GUID-API}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "cli", "cli", "{FOLDER-GUID-CLI}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lib", "lib", "{FOLDER-GUID-LIB}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "util", "util", "{FOLDER-GUID-UTIL}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "win32", "win32", "{FOLDER-GUID-WIN32}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ios", "ios", "{FOLDER-GUID-IOS}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{FOLDER-GUID-TEST}" - ProjectSection(SolutionItems) = preProject - test\CMakeLists.txt = test\CMakeLists.txt - test\yaze_test.cc = test\yaze_test.cc - test\test_utils.h = test\test_utils.h - test\testing.h = test\testing.h - test\rom_test.cc = test\rom_test.cc - test\hex_test.cc = test\hex_test.cc - test\test_editor.cc = test\test_editor.cc - test\test_editor.h = test\test_editor.h - test\dungeon_component_unit_test.cc = test\dungeon_component_unit_test.cc - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "cmake", "cmake", "{FOLDER-GUID-CMAKE}" - ProjectSection(SolutionItems) = preProject - cmake\absl.cmake = cmake\absl.cmake - cmake\asar.cmake = cmake\asar.cmake - cmake\grpc.cmake = cmake\grpc.cmake - cmake\gtest.cmake = cmake\gtest.cmake - cmake\imgui.cmake = cmake\imgui.cmake - cmake\mingw64.cmake = cmake\mingw64.cmake - cmake\packaging.cmake = cmake\packaging.cmake - cmake\sdl2.cmake = cmake\sdl2.cmake - cmake\vcpkg.cmake = cmake\vcpkg.cmake - cmake\yaze.desktop.in = cmake\yaze.desktop.in - cmake\yaze.plist.in = cmake\yaze.plist.in - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{FOLDER-GUID-DOCS}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Documentation", "Documentation", "{FOLDER-GUID-DOCS}" ProjectSection(SolutionItems) = preProject + docs\index.md = docs\index.md docs\01-getting-started.md = docs\01-getting-started.md docs\02-build-instructions.md = docs\02-build-instructions.md docs\03-asar-integration.md = docs\03-asar-integration.md @@ -69,78 +30,89 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{FOLDER-GUI docs\E4-dungeon-editor-refactoring.md = docs\E4-dungeon-editor-refactoring.md docs\E5-dungeon-object-system.md = docs\E5-dungeon-object-system.md docs\F1-overworld-loading.md = docs\F1-overworld-loading.md - docs\index.md = docs\index.md - docs\README.md = docs\README.md - docs\vcpkg-integration.md = docs\vcpkg-integration.md - docs\vcpkg-triplet-setup.md = docs\vcpkg-triplet-setup.md - docs\visual-studio-setup.md = docs\visual-studio-setup.md - docs\yaze.org = docs\yaze.org EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "assets", "assets", "{FOLDER-GUID-ASSETS}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Scripts", "Scripts", "{FOLDER-GUID-SCRIPTS}" ProjectSection(SolutionItems) = preProject - assets\yaze.png = assets\yaze.png - assets\yaze.icns = assets\yaze.icns - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{FOLDER-GUID-SCRIPTS}" - ProjectSection(SolutionItems) = preProject - scripts\agent.sh = scripts\agent.sh scripts\create_release.sh = scripts\create_release.sh scripts\extract_changelog.py = scripts\extract_changelog.py - scripts\quality_check.sh = scripts\quality_check.sh - scripts\setup-vcpkg-windows.bat = scripts\setup-vcpkg-windows.bat + scripts\generate-vs-projects.ps1 = scripts\generate-vs-projects.ps1 + scripts\generate-vs-projects.bat = scripts\generate-vs-projects.bat scripts\setup-vcpkg-windows.ps1 = scripts\setup-vcpkg-windows.ps1 + scripts\setup-vcpkg-windows.bat = scripts\setup-vcpkg-windows.bat + scripts\quality_check.sh = scripts\quality_check.sh scripts\test_asar_integration.py = scripts\test_asar_integration.py - scripts\validate-vs-build.ps1 = scripts\validate-vs-build.ps1 EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "incl", "incl", "{FOLDER-GUID-INCL}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Assets", "Assets", "{FOLDER-GUID-ASSETS}" + ProjectSection(SolutionItems) = preProject + assets\themes\yaze_classic.theme = assets\themes\yaze_classic.theme + assets\themes\cyberpunk.theme = assets\themes\cyberpunk.theme + assets\themes\sunset.theme = assets\themes\sunset.theme + assets\themes\forest.theme = assets\themes\forest.theme + assets\themes\midnight.theme = assets\themes\midnight.theme + assets\layouts\ow_toolset.zeml = assets\layouts\ow_toolset.zeml + assets\yaze.icns = assets\yaze.icns + assets\yaze.png = assets\yaze.png + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Headers", "Headers", "{FOLDER-GUID-HEADERS}" ProjectSection(SolutionItems) = preProject incl\yaze.h = incl\yaze.h incl\zelda.h = incl\zelda.h EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "YAZE", "YAZE.vcxproj", "{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}" - ProjectSection(ProjectDependencies) = postProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CMake", "CMake", "{FOLDER-GUID-CMAKE}" + ProjectSection(SolutionItems) = preProject + cmake\absl.cmake = cmake\absl.cmake + cmake\asar.cmake = cmake\asar.cmake + cmake\grpc.cmake = cmake\grpc.cmake + cmake\gtest.cmake = cmake\gtest.cmake + cmake\imgui.cmake = cmake\imgui.cmake + cmake\mingw64.cmake = cmake\mingw64.cmake + cmake\packaging.cmake = cmake\packaging.cmake + cmake\sdl2.cmake = cmake\sdl2.cmake + cmake\vcpkg.cmake = cmake\vcpkg.cmake + cmake\yaze.desktop.in = cmake\yaze.desktop.in + cmake\yaze.plist.in = cmake\yaze.plist.in + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GitHub Actions", "GitHub Actions", "{FOLDER-GUID-GITHUB}" + ProjectSection(SolutionItems) = preProject + .github\workflows\ci.yml = .github\workflows\ci.yml + .github\workflows\release.yml = .github\workflows\release.yml + .github\workflows\doxy.yml = .github\workflows\doxy.yml EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|ARM64 = Debug|ARM64 Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 - Release|ARM64 = Release|ARM64 + Debug|ARM64 = Debug|ARM64 Release|x64 = Release|x64 Release|x86 = Release|x86 + Release|ARM64 = Release|ARM64 + RelWithDebInfo|x64 = RelWithDebInfo|x64 + RelWithDebInfo|x86 = RelWithDebInfo|x86 + RelWithDebInfo|ARM64 = RelWithDebInfo|ARM64 + MinSizeRel|x64 = MinSizeRel|x64 + MinSizeRel|x86 = MinSizeRel|x86 + MinSizeRel|ARM64 = MinSizeRel|ARM64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|ARM64.Build.0 = Debug|ARM64 - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x64.ActiveCfg = Debug|x64 - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x64.Build.0 = Debug|x64 - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x86.ActiveCfg = Debug|x86 - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x86.Build.0 = Debug|x86 - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|ARM64.ActiveCfg = Release|ARM64 - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|ARM64.Build.0 = Release|ARM64 - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x64.ActiveCfg = Release|x64 - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x64.Build.0 = Release|x64 - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x86.ActiveCfg = Release|x86 - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {FOLDER-GUID-APP} = {FOLDER-GUID-SRC} - {FOLDER-GUID-API} = {FOLDER-GUID-SRC} - {FOLDER-GUID-CLI} = {FOLDER-GUID-SRC} - {FOLDER-GUID-LIB} = {FOLDER-GUID-SRC} - {FOLDER-GUID-UTIL} = {FOLDER-GUID-SRC} - {FOLDER-GUID-WIN32} = {FOLDER-GUID-SRC} - {FOLDER-GUID-IOS} = {FOLDER-GUID-SRC} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {12345678-1234-5678-9ABC-DEF123456789} + SolutionGuid = {A1B2C3D4-E5F6-7890-ABCD-EF1234567890} + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {FOLDER-GUID-DOCS} = {FOLDER-GUID-ROOT} + {FOLDER-GUID-SCRIPTS} = {FOLDER-GUID-ROOT} + {FOLDER-GUID-ASSETS} = {FOLDER-GUID-ROOT} + {FOLDER-GUID-HEADERS} = {FOLDER-GUID-ROOT} + {FOLDER-GUID-CMAKE} = {FOLDER-GUID-ROOT} + {FOLDER-GUID-GITHUB} = {FOLDER-GUID-ROOT} EndGlobalSection EndGlobal \ No newline at end of file diff --git a/yaze.vcxproj b/yaze.vcxproj index 589acb14..e2ec8c62 100644 --- a/yaze.vcxproj +++ b/yaze.vcxproj @@ -1,967 +1,512 @@ - + Debug x64 - - Release - x64 - Debug x86 - - Release - x86 - Debug ARM64 + + Release + x64 + + + Release + x86 + Release ARM64 + + RelWithDebInfo + x64 + + + RelWithDebInfo + x86 + + + RelWithDebInfo + ARM64 + + + MinSizeRel + x64 + + + MinSizeRel + x86 + + + MinSizeRel + ARM64 + - 17.0 + {B2C3D4E5-F6G7-8901-BCDE-F23456789012} Win32Proj - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890} YAZE 10.0 YAZE - true - true - x86-windows - x64-windows - arm64-windows - - Application true v143 Unicode - true - true - x64-windows - + + Application + true + v143 + Unicode + + + Application + true + v143 + Unicode + Application false v143 true Unicode - true - true - x64-windows - - - Application - true - v143 - Unicode - true - true - x86-windows - - Application false v143 true Unicode - true - true - x86-windows - - - Application - true - v143 - Unicode - true - true - arm64-windows - - Application false v143 true Unicode - true - true - arm64-windows - + + Application + false + v143 + true + Unicode + + + Application + false + v143 + true + Unicode + + + Application + false + v143 + true + Unicode + + + Application + false + v143 + true + Unicode + + + Application + false + v143 + true + Unicode + + + Application + false + v143 + true + Unicode + - - - - - - - - - + + + + + + - + + + + + + + + + + + + + + + + + + + + + - true $(SolutionDir)build\bin\$(Configuration)\ - $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - yaze + $(SolutionDir)build\obj\$(Configuration)\ - - - false - $(SolutionDir)build\bin\$(Configuration)\ - $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - yaze - - true $(SolutionDir)build\bin\$(Configuration)\ - $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - yaze + $(SolutionDir)build\obj\$(Configuration)\ - - - false - $(SolutionDir)build\bin\$(Configuration)\ - $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - yaze - - true $(SolutionDir)build\bin\$(Configuration)\ - $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - yaze + $(SolutionDir)build\obj\$(Configuration)\ + + + false + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(Configuration)\ + + + false + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(Configuration)\ - false $(SolutionDir)build\bin\$(Configuration)\ - $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - yaze + $(SolutionDir)build\obj\$(Configuration)\ + + + false + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(Configuration)\ + + + false + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(Configuration)\ + + + false + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(Configuration)\ + + + false + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(Configuration)\ + + + false + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(Configuration)\ + + + false + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(Configuration)\ - - Level4 + Level3 true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions);YAZE_BUILD_APP=1;YAZE_BUILD_LIB=1;YAZE_BUILD_EMU=1;YAZE_BUILD_TESTS=0 + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) true - stdcpp23 - src\lib;src\app;src\lib\asar\src;src\lib\asar\src\asar;src\lib\asar\src\asar-dll-bindings\c;incl;src;src\lib\imgui;src\lib\SDL\include;src\lib\abseil-cpp;src\lib\imgui_test_engine;$(ProjectDir);%(AdditionalIncludeDirectories) - MultiThreadedDebugDLL + $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;%(AdditionalIncludeDirectories) Console 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) - SDL2.lib;SDL2main.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies) - $(VcpkgRoot)installed\x64-windows\debug\lib;%(AdditionalLibraryDirectories) - src\lib\SDL\VisualC\SDL\$(PlatformName)\$(Configuration);src\lib\abseil-cpp\absl\base;src\lib\abseil-cpp\absl\strings;src\lib\abseil-cpp\absl\container;%(AdditionalLibraryDirectories) - - copy "$(ProjectDir)src\yaze_config.h.in" "$(ProjectDir)yaze_config.h" -powershell -Command "(Get-Content '$(ProjectDir)yaze_config.h') -replace '@yaze_VERSION_MAJOR@', '0' -replace '@yaze_VERSION_MINOR@', '3' -replace '@yaze_VERSION_PATCH@', '1' | Set-Content '$(ProjectDir)yaze_config.h'" - Generating yaze_config.h from template... - - - if not exist "$(OutDir)assets" mkdir "$(OutDir)assets" -if not exist "$(OutDir)assets\themes" mkdir "$(OutDir)assets\themes" -xcopy /Y /I "$(ProjectDir)assets\*" "$(OutDir)assets\" -if exist "$(ProjectDir)zelda3.sfc" copy /Y "$(ProjectDir)zelda3.sfc" "$(OutDir)" - Copying assets and ROM file... - - - - - Level4 - true - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions);YAZE_BUILD_APP=1;YAZE_BUILD_LIB=1;YAZE_BUILD_EMU=1;YAZE_BUILD_TESTS=0 - true - stdcpp23 - src\lib;src\app;src\lib\asar\src;src\lib\asar\src\asar;src\lib\asar\src\asar-dll-bindings\c;incl;src;src\lib\imgui;src\lib\SDL\include;src\lib\abseil-cpp;src\lib\imgui_test_engine;$(ProjectDir);%(AdditionalIncludeDirectories) - MultiThreadedDLL - - - Console - true - true - 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) - SDL2.lib;SDL2main.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies) - $(VcpkgRoot)installed\x64-windows\lib;%(AdditionalLibraryDirectories) - src\lib\SDL\VisualC\SDL\$(PlatformName)\$(Configuration);src\lib\abseil-cpp\absl\base;src\lib\abseil-cpp\absl\strings;src\lib\abseil-cpp\absl\container;%(AdditionalLibraryDirectories) - - - copy "$(ProjectDir)src\yaze_config.h.in" "$(ProjectDir)yaze_config.h" -powershell -Command "(Get-Content '$(ProjectDir)yaze_config.h') -replace '@yaze_VERSION_MAJOR@', '0' -replace '@yaze_VERSION_MINOR@', '3' -replace '@yaze_VERSION_PATCH@', '1' | Set-Content '$(ProjectDir)yaze_config.h'" - Generating yaze_config.h from template... - - - if not exist "$(OutDir)assets" mkdir "$(OutDir)assets" -if not exist "$(OutDir)assets\themes" mkdir "$(OutDir)assets\themes" -xcopy /Y /I "$(ProjectDir)assets\*" "$(OutDir)assets\" -if exist "$(ProjectDir)zelda3.sfc" copy /Y "$(ProjectDir)zelda3.sfc" "$(OutDir)" - Copying assets and ROM file... - - - - Level4 + Level3 true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions);YAZE_BUILD_APP=1;YAZE_BUILD_LIB=1;YAZE_BUILD_EMU=1;YAZE_BUILD_TESTS=0 + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) true - stdcpp23 - src\lib;src\app;src\lib\asar\src;src\lib\asar\src\asar;src\lib\asar\src\asar-dll-bindings\c;incl;src;src\lib\imgui;src\lib\SDL\include;src\lib\abseil-cpp;src\lib\imgui_test_engine;$(ProjectDir);%(AdditionalIncludeDirectories) - MultiThreadedDebugDLL + $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;%(AdditionalIncludeDirectories) Console 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) - SDL2.lib;SDL2main.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies) - $(VcpkgRoot)installed\x86-windows\debug\lib;%(AdditionalLibraryDirectories) - - copy "$(ProjectDir)src\yaze_config.h.in" "$(ProjectDir)yaze_config.h" -powershell -Command "(Get-Content '$(ProjectDir)yaze_config.h') -replace '@yaze_VERSION_MAJOR@', '0' -replace '@yaze_VERSION_MINOR@', '3' -replace '@yaze_VERSION_PATCH@', '1' | Set-Content '$(ProjectDir)yaze_config.h'" - Generating yaze_config.h from template... - - - if not exist "$(OutDir)assets" mkdir "$(OutDir)assets" -if not exist "$(OutDir)assets\themes" mkdir "$(OutDir)assets\themes" -xcopy /Y /I "$(ProjectDir)assets\*" "$(OutDir)assets\" -if exist "$(ProjectDir)zelda3.sfc" copy /Y "$(ProjectDir)zelda3.sfc" "$(OutDir)" - Copying assets and ROM file... - - - + - Level4 + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;%(AdditionalIncludeDirectories) + + + Console + true + + + + + Level3 true true true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions);YAZE_BUILD_APP=1;YAZE_BUILD_LIB=1;YAZE_BUILD_EMU=1;YAZE_BUILD_TESTS=0 + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true - stdcpp23 - src\lib;src\app;src\lib\asar\src;src\lib\asar\src\asar;src\lib\asar\src\asar-dll-bindings\c;incl;src;src\lib\imgui;src\lib\SDL\include;src\lib\abseil-cpp;src\lib\imgui_test_engine;$(ProjectDir);%(AdditionalIncludeDirectories) - MultiThreadedDLL + $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;%(AdditionalIncludeDirectories) Console true true 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) - SDL2.lib;SDL2main.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies) - $(VcpkgRoot)installed\x86-windows\lib;%(AdditionalLibraryDirectories) - - copy "$(ProjectDir)src\yaze_config.h.in" "$(ProjectDir)yaze_config.h" -powershell -Command "(Get-Content '$(ProjectDir)yaze_config.h') -replace '@yaze_VERSION_MAJOR@', '0' -replace '@yaze_VERSION_MINOR@', '3' -replace '@yaze_VERSION_PATCH@', '1' | Set-Content '$(ProjectDir)yaze_config.h'" - Generating yaze_config.h from template... - - - if not exist "$(OutDir)assets" mkdir "$(OutDir)assets" -if not exist "$(OutDir)assets\themes" mkdir "$(OutDir)assets\themes" -xcopy /Y /I "$(ProjectDir)assets\*" "$(OutDir)assets\" -if exist "$(ProjectDir)zelda3.sfc" copy /Y "$(ProjectDir)zelda3.sfc" "$(OutDir)" - Copying assets and ROM file... - - + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;%(AdditionalIncludeDirectories) + + + Console + true + true + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;%(AdditionalIncludeDirectories) + + + Console + true + true + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;%(AdditionalIncludeDirectories) + + + Console + true + true + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;%(AdditionalIncludeDirectories) + + + Console + true + true + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;%(AdditionalIncludeDirectories) + + + Console + true + true + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;%(AdditionalIncludeDirectories) + + + Console + true + true + false + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;%(AdditionalIncludeDirectories) + + + Console + true + true + false + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;%(AdditionalIncludeDirectories) + + + Console + true + true + false + + - - Application - - - Application - - - Application - + + + - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core\Platform - - - Core\Platform - - - Core\Platform - + - - - Editor - - - Editor\Dungeon - - - Editor\Dungeon - - - Editor\Dungeon - - - Editor\Dungeon - - - Editor\Dungeon - - - Editor\Dungeon - - - Editor\Dungeon - - - Editor\Dungeon - - - Editor\Dungeon - - - Editor\Overworld - - - Editor\Overworld - - - Editor\Overworld - - - Editor\Overworld - - - Editor\Overworld - - - Editor\Graphics - - - Editor\Graphics - - - Editor\Graphics - - - Editor\Graphics - - - Editor\Sprite - - - Editor\Music - - - Editor\Message - - - Editor\Message - - - Editor\Message - - - Editor\Code - - - Editor\System - - - Editor\System - - - Editor\System - - - Editor\System - - - Editor\System - - - Editor\Testing - - - - - - Graphics - - - Graphics - - - Graphics - - - Graphics - - - Graphics - - - Graphics - - - Graphics - - - Graphics - - - Graphics - - - - - - GUI - - - GUI - - - GUI - - - GUI - - - GUI - - - GUI - - - GUI - - - GUI - - - GUI - - - GUI - - - GUI - - - - - - Zelda3 - - - Zelda3\Overworld - - - Zelda3\Overworld - - - Zelda3\Screen - - - Zelda3\Screen - - - Zelda3\Screen - - - Zelda3\Sprite - - - Zelda3\Sprite - - - Zelda3\Music - - - Zelda3\Dungeon - - - Zelda3\Dungeon - - - Zelda3\Dungeon - - - Zelda3\Dungeon - - - Zelda3\Dungeon - - - Zelda3\Dungeon - - - Zelda3\Dungeon - - - - - - Emulator\Audio - - - Emulator\Audio - - - Emulator\Audio - - - Emulator\Audio - - - Emulator\Audio - - - Emulator\CPU - - - Emulator\CPU - - - Emulator\CPU - - - Emulator\Video - - - Emulator\Memory - - - Emulator\Memory - - - Emulator - - - - - - Utilities - - - Utilities - - - Utilities - - - - - - Headers - - - Headers - - - Headers - - - Core - - - Core - - - Core - - - Core - - - Core - - - Editor - - - Graphics - - - Graphics - - - Graphics - - - Graphics - - - Graphics - - - Graphics - - - Graphics - - - Graphics - - - Graphics - - - GUI - - - GUI - - - GUI - - - GUI - - - GUI - - - GUI - - - GUI - - - GUI - - - GUI - - - GUI - - - GUI - - - Zelda3 - - - Zelda3\Overworld - - - Zelda3\Overworld - - - Zelda3\Screen - - - Zelda3\Screen - - - Zelda3\Screen - - - Zelda3\Sprite - - - Zelda3\Sprite - - - Zelda3\Music - - - Zelda3\Dungeon - - - Zelda3\Dungeon - - - Zelda3\Dungeon - - - Zelda3\Dungeon - - - Zelda3\Dungeon - - - Zelda3\Dungeon - - - Zelda3\Dungeon - - - Emulator - - - Emulator - - - Emulator\CPU - - - Emulator\Video - - - Emulator\Memory - - - Emulator\Memory - - - Emulator\Audio - - - Emulator\Audio - - - Emulator\Audio - - - Utilities - - - Utilities - - - Utilities - - - Utilities - - - - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC943} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC944} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC945} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC946} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC947} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC948} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC949} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC94A} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC94B} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC94C} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC94D} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC94E} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC94F} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC950} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC951} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC952} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC953} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC954} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC955} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC956} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC957} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC958} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC959} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC95A} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC95B} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC95C} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC95D} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC95E} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC95F} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC960} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC961} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC962} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC963} - - - {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC964} - - - - - + + + - - - Assets - - - Assets - - - Assets\Fonts - - - Assets\Fonts - - - Assets\Fonts - - - Assets\Fonts - - - Assets\Fonts - - - Assets\Fonts - - - Assets\Fonts - - - Assets\Themes - PreserveNewest - - - Assets\Assembly - PreserveNewest - - - Assets\Assembly - PreserveNewest - - - Assets\Layouts - PreserveNewest - - - Assets\Libraries - PreserveNewest - - - Assets\Misc - PreserveNewest - + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + \ No newline at end of file