diff --git a/docs/windows-development-guide.md b/docs/windows-development-guide.md
index 5abca77a..ffdc6c6a 100644
--- a/docs/windows-development-guide.md
+++ b/docs/windows-development-guide.md
@@ -37,11 +37,10 @@ The easiest way to get started is to use our automated setup script:
```
This script will:
-- Check for required software
-- Set up vcpkg
-- Install dependencies
-- Generate Visual Studio project files
-- Perform a test build
+- Check for required software (Visual Studio 2022, Git, Python)
+- Set up vcpkg and install dependencies (zlib, libpng, SDL2)
+- Generate Visual Studio project files with proper vcpkg integration
+- Perform a test build to verify everything works
### Manual Setup
@@ -71,10 +70,17 @@ cd ..
#### 3. Generate Visual Studio Project Files
+The generation script creates project files with proper vcpkg integration:
+
```bash
python scripts/generate-vs-projects.py
```
+This creates:
+- `YAZE.sln` - Visual Studio solution file
+- `YAZE.vcxproj` - Visual Studio project file with vcpkg integration
+- Proper vcpkg triplet settings for all platforms (x86, x64, ARM64)
+
#### 4. Build the Project
```bash
@@ -152,20 +158,22 @@ msbuild YAZE.sln /p:Configuration=Debug /p:Platform=x64 /p:VcpkgEnabled=true /p:
```
yaze/
-├── YAZE.sln # Visual Studio solution file
-├── YAZE.vcxproj # Visual Studio project file
+├── YAZE.sln # Visual Studio solution file (generated)
+├── YAZE.vcxproj # Visual Studio project file (generated)
├── vcpkg.json # vcpkg dependencies
├── scripts/ # Build and setup scripts
│ ├── build-windows.ps1 # PowerShell build script
│ ├── build-windows.bat # Batch build script
-│ ├── setup-windows-dev.ps1 # Setup script
-│ └── generate-vs-projects.py # Project generator
+│ ├── setup-windows-dev.ps1 # Automated setup script
+│ └── generate-vs-projects.py # Project file generator
├── src/ # Source code
├── incl/ # Public headers
├── assets/ # Game assets
└── docs/ # Documentation
```
+**Note**: The Visual Studio project files (`YAZE.sln`, `YAZE.vcxproj`) are generated automatically and should not be edited manually. If you need to modify project settings, update the generation script instead.
+
## Troubleshooting
### Common Issues
@@ -193,7 +201,22 @@ yaze/
```
- Or manually set up vcpkg as described in the manual setup section
-#### 3. Python Script Execution Policy
+#### 3. ZLIB or Other Dependencies Not Found
+
+**Error**: `Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)`
+
+**Solution**:
+- This usually means vcpkg integration isn't working properly
+- Regenerate project files with proper vcpkg integration:
+ ```bash
+ python scripts/generate-vs-projects.py
+ ```
+- Ensure vcpkg is installed and dependencies are available:
+ ```bash
+ .\vcpkg\vcpkg.exe install --triplet x64-windows
+ ```
+
+#### 4. Python Script Execution Policy
**Error**: `execution of scripts is disabled on this system`
@@ -203,7 +226,7 @@ yaze/
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```
-#### 4. Missing Dependencies
+#### 5. Missing Dependencies
**Error**: Linker errors about missing libraries
@@ -217,7 +240,7 @@ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
python scripts/generate-vs-projects.py
```
-#### 5. Build Failures
+#### 6. Build Failures
**Error**: Compilation or linking errors
@@ -247,15 +270,15 @@ If you encounter issues not covered here:
### Making Changes
1. Make your changes to the source code
-2. Build the project:
- ```powershell
- .\scripts\build-windows.ps1 -Configuration Debug -Platform x64
- ```
-3. Test your changes
-4. If adding new source files, regenerate project files:
+2. If you added new source files, regenerate project files:
```bash
python scripts/generate-vs-projects.py
```
+3. Build the project:
+ ```powershell
+ .\scripts\build-windows.ps1 -Configuration Debug -Platform x64
+ ```
+4. Test your changes
### Debugging
diff --git a/scripts/generate-vs-projects.py b/scripts/generate-vs-projects.py
index 0bc3e597..65539729 100644
--- a/scripts/generate-vs-projects.py
+++ b/scripts/generate-vs-projects.py
@@ -199,6 +199,9 @@ def generate_vcxproj():
YAZE
true
true
+ x86-windows
+ x64-windows
+ arm64-windows
diff --git a/scripts/setup-windows-dev.ps1 b/scripts/setup-windows-dev.ps1
index daa311dd..1b97c2e5 100644
--- a/scripts/setup-windows-dev.ps1
+++ b/scripts/setup-windows-dev.ps1
@@ -15,11 +15,11 @@ Write-Host "========================================" -ForegroundColor Cyan
# Step 1: Check project directory
Write-Host "Step 1: Checking project directory..." -ForegroundColor Yellow
-$projectValid = Test-Path "YAZE.sln"
+$projectValid = Test-Path "CMakeLists.txt"
switch ($projectValid) {
- $true { Write-Host "✓ YAZE.sln found" -ForegroundColor Green }
+ $true { Write-Host "✓ CMakeLists.txt found" -ForegroundColor Green }
$false {
- Write-Host "✗ YAZE.sln not found" -ForegroundColor Red
+ Write-Host "✗ CMakeLists.txt not found" -ForegroundColor Red
Write-Host "Please run this script from the YAZE project root directory" -ForegroundColor Yellow
exit 1
}
@@ -208,9 +208,10 @@ Write-Host "✓ YAZE Windows development setup complete!" -ForegroundColor Green
Write-Host "========================================" -ForegroundColor Cyan
Write-Host ""
Write-Host "Next steps:" -ForegroundColor Yellow
-Write-Host "1. Open YAZE.sln in Visual Studio 2022" -ForegroundColor White
-Write-Host "2. Select configuration (Debug/Release) and platform (x64/x86/ARM64)" -ForegroundColor White
-Write-Host "3. Build the solution (Ctrl+Shift+B)" -ForegroundColor White
+Write-Host "1. Visual Studio project files have been generated" -ForegroundColor White
+Write-Host "2. Open YAZE.sln in Visual Studio 2022" -ForegroundColor White
+Write-Host "3. Select configuration (Debug/Release) and platform (x64/x86/ARM64)" -ForegroundColor White
+Write-Host "4. Build the solution (Ctrl+Shift+B)" -ForegroundColor White
Write-Host ""
Write-Host "Or use command line:" -ForegroundColor Yellow
Write-Host " .\scripts\build-windows.ps1 -Configuration Release -Platform x64" -ForegroundColor White
diff --git a/yaze.sln b/yaze.sln
deleted file mode 100644
index 8f6352bd..00000000
--- a/yaze.sln
+++ /dev/null
@@ -1,54 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.0.31903.59
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "YAZE", "YAZE.vcxproj", "{B2C3D4E5-F6G7-8901-BCDE-F23456789012}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- 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
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.Debug|x64.ActiveCfg = Debug|x64
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.Debug|x64.Build.0 = Debug|x64
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.Debug|x86.ActiveCfg = Debug|x86
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.Debug|x86.Build.0 = Debug|x86
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.Debug|ARM64.Build.0 = Debug|ARM64
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.Release|x64.ActiveCfg = Release|x64
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.Release|x64.Build.0 = Release|x64
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.Release|x86.ActiveCfg = Release|x86
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.Release|x86.Build.0 = Release|x86
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.Release|ARM64.ActiveCfg = Release|ARM64
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.Release|ARM64.Build.0 = Release|ARM64
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.RelWithDebInfo|ARM64.ActiveCfg = RelWithDebInfo|ARM64
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.RelWithDebInfo|ARM64.Build.0 = RelWithDebInfo|ARM64
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.MinSizeRel|x86.ActiveCfg = MinSizeRel|x86
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.MinSizeRel|x86.Build.0 = MinSizeRel|x86
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.MinSizeRel|ARM64.ActiveCfg = MinSizeRel|ARM64
- {B2C3D4E5-F6G7-8901-BCDE-F23456789012}.MinSizeRel|ARM64.Build.0 = MinSizeRel|ARM64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}
- EndGlobalSection
-EndGlobal
\ No newline at end of file
diff --git a/yaze.vcxproj b/yaze.vcxproj
deleted file mode 100644
index d7bd55bb..00000000
--- a/yaze.vcxproj
+++ /dev/null
@@ -1,585 +0,0 @@
-
-
-
-
- Debug
- x64
-
-
- Debug
- 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
- YAZE
- 10.0
- YAZE
- true
- true
-
-
-
- Application
- true
- v143
- Unicode
-
-
- Application
- true
- v143
- Unicode
-
-
- Application
- true
- v143
- 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
-
-
- 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\$(Configuration)\
-
-
- true
- $(SolutionDir)build\bin\$(Configuration)\
- $(SolutionDir)build\obj\$(Configuration)\
-
-
- true
- $(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)\
-
-
- 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)\
-
-
-
- Level3
- true
- _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;$(ProjectDir)src\lib\asar\src;$(ProjectDir)src\lib\asar\src\asar;$(ProjectDir)src\lib\asar\src\asar-dll-bindings\c;$(ProjectDir)src\lib\imgui;$(ProjectDir)src\lib\imgui_test_engine;%(AdditionalIncludeDirectories)
- stdcpp23
- true
- true
- MultiThreadedDebugDLL
-
-
- Console
- true
- false
- false
-
-
-
-
- Level3
- true
- _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;$(ProjectDir)src\lib\asar\src;$(ProjectDir)src\lib\asar\src\asar;$(ProjectDir)src\lib\asar\src\asar-dll-bindings\c;$(ProjectDir)src\lib\imgui;$(ProjectDir)src\lib\imgui_test_engine;%(AdditionalIncludeDirectories)
- stdcpp23
- true
- true
- MultiThreadedDebugDLL
-
-
- Console
- true
- false
- false
-
-
-
-
- Level3
- true
- _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;$(ProjectDir)src\lib\asar\src;$(ProjectDir)src\lib\asar\src\asar;$(ProjectDir)src\lib\asar\src\asar-dll-bindings\c;$(ProjectDir)src\lib\imgui;$(ProjectDir)src\lib\imgui_test_engine;%(AdditionalIncludeDirectories)
- stdcpp23
- true
- true
- MultiThreadedDebugDLL
-
-
- Console
- true
- false
- false
-
-
-
-
- Level3
- true
- NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;$(ProjectDir)src\lib\asar\src;$(ProjectDir)src\lib\asar\src\asar;$(ProjectDir)src\lib\asar\src\asar-dll-bindings\c;$(ProjectDir)src\lib\imgui;$(ProjectDir)src\lib\imgui_test_engine;%(AdditionalIncludeDirectories)
- stdcpp23
- true
- true
- MultiThreadedDLL
-
-
- Console
- true
- true
- true
-
-
-
-
- Level3
- true
- NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;$(ProjectDir)src\lib\asar\src;$(ProjectDir)src\lib\asar\src\asar;$(ProjectDir)src\lib\asar\src\asar-dll-bindings\c;$(ProjectDir)src\lib\imgui;$(ProjectDir)src\lib\imgui_test_engine;%(AdditionalIncludeDirectories)
- stdcpp23
- true
- true
- MultiThreadedDLL
-
-
- Console
- true
- true
- true
-
-
-
-
- Level3
- true
- NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;$(ProjectDir)src\lib\asar\src;$(ProjectDir)src\lib\asar\src\asar;$(ProjectDir)src\lib\asar\src\asar-dll-bindings\c;$(ProjectDir)src\lib\imgui;$(ProjectDir)src\lib\imgui_test_engine;%(AdditionalIncludeDirectories)
- stdcpp23
- true
- true
- MultiThreadedDLL
-
-
- Console
- true
- true
- true
-
-
-
-
- Level3
- true
- NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;$(ProjectDir)src\lib\asar\src;$(ProjectDir)src\lib\asar\src\asar;$(ProjectDir)src\lib\asar\src\asar-dll-bindings\c;$(ProjectDir)src\lib\imgui;$(ProjectDir)src\lib\imgui_test_engine;%(AdditionalIncludeDirectories)
- stdcpp23
- true
- true
- MultiThreadedDLL
-
-
- Console
- true
- true
- true
-
-
-
-
- Level3
- true
- NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;$(ProjectDir)src\lib\asar\src;$(ProjectDir)src\lib\asar\src\asar;$(ProjectDir)src\lib\asar\src\asar-dll-bindings\c;$(ProjectDir)src\lib\imgui;$(ProjectDir)src\lib\imgui_test_engine;%(AdditionalIncludeDirectories)
- stdcpp23
- true
- true
- MultiThreadedDLL
-
-
- Console
- true
- true
- true
-
-
-
-
- Level3
- true
- NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;$(ProjectDir)src\lib\asar\src;$(ProjectDir)src\lib\asar\src\asar;$(ProjectDir)src\lib\asar\src\asar-dll-bindings\c;$(ProjectDir)src\lib\imgui;$(ProjectDir)src\lib\imgui_test_engine;%(AdditionalIncludeDirectories)
- stdcpp23
- true
- true
- MultiThreadedDLL
-
-
- Console
- true
- true
- true
-
-
-
-
- Level3
- true
- NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;$(ProjectDir)src\lib\asar\src;$(ProjectDir)src\lib\asar\src\asar;$(ProjectDir)src\lib\asar\src\asar-dll-bindings\c;$(ProjectDir)src\lib\imgui;$(ProjectDir)src\lib\imgui_test_engine;%(AdditionalIncludeDirectories)
- stdcpp23
- true
- true
- MultiThreadedDLL
-
-
- Console
- false
- true
- true
-
-
-
-
- Level3
- true
- NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;$(ProjectDir)src\lib\asar\src;$(ProjectDir)src\lib\asar\src\asar;$(ProjectDir)src\lib\asar\src\asar-dll-bindings\c;$(ProjectDir)src\lib\imgui;$(ProjectDir)src\lib\imgui_test_engine;%(AdditionalIncludeDirectories)
- stdcpp23
- true
- true
- MultiThreadedDLL
-
-
- Console
- false
- true
- true
-
-
-
-
- Level3
- true
- NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- $(ProjectDir)src;$(ProjectDir)incl;$(ProjectDir)src\lib;$(ProjectDir)src\lib\asar\src;$(ProjectDir)src\lib\asar\src\asar;$(ProjectDir)src\lib\asar\src\asar-dll-bindings\c;$(ProjectDir)src\lib\imgui;$(ProjectDir)src\lib\imgui_test_engine;%(AdditionalIncludeDirectories)
- stdcpp23
- true
- true
- MultiThreadedDLL
-
-
- Console
- false
- true
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file