Update YAZE project configuration and build instructions
- Increased warning level to Level4 in YAZE.vcxproj for better code quality checks. - Enhanced preprocessor definitions to address C++23 deprecation warnings and improve compatibility with Clang. - Added additional compiler options for better build performance and compatibility. - Updated build instructions to recommend Clang for Windows, highlighting its advantages over MSVC. - Included detailed setup options for both Clang and MSVC, along with troubleshooting tips for common issues.
This commit is contained in:
30
YAZE.vcxproj
30
YAZE.vcxproj
@@ -129,11 +129,12 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;SILENCE_CXX23_DEPRECATIONS;_SILENCE_CXX23_DEPRECATION_WARNING;_SILENCE_ALL_CXX23_DEPRECATION_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;strncasecmp=_strnicmp;strcasecmp=_stricmp;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<LanguageStandard>stdcpp23</LanguageStandard>
|
<LanguageStandard>stdcpp23</LanguageStandard>
|
||||||
|
<AdditionalOptions>/permissive- /bigobj /utf-8 %(AdditionalOptions)</AdditionalOptions>
|
||||||
<AdditionalIncludeDirectories>src;src\app;src\lib;src\util;incl;src\lib\asar\src;src\lib\asar\src\asar;src\lib\asar\src\asar-dll-bindings\c;src\lib\imgui;src\lib\imgui_test_engine;src\lib\abseil-cpp;src\lib\SDL\include;$(ProjectDir)build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>src;src\app;src\lib;src\util;incl;src\lib\asar\src;src\lib\asar\src\asar;src\lib\asar\src\asar-dll-bindings\c;src\lib\imgui;src\lib\imgui_test_engine;src\lib\abseil-cpp;src\lib\SDL\include;$(ProjectDir)build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@@ -144,13 +145,14 @@
|
|||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;SILENCE_CXX23_DEPRECATIONS;_SILENCE_CXX23_DEPRECATION_WARNING;_SILENCE_ALL_CXX23_DEPRECATION_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;strncasecmp=_strnicmp;strcasecmp=_stricmp;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<LanguageStandard>stdcpp23</LanguageStandard>
|
<LanguageStandard>stdcpp23</LanguageStandard>
|
||||||
|
<AdditionalOptions>/permissive- /bigobj /utf-8 %(AdditionalOptions)</AdditionalOptions>
|
||||||
<AdditionalIncludeDirectories>src;src\app;src\lib;src\util;incl;src\lib\asar\src;src\lib\asar\src\asar;src\lib\asar\src\asar-dll-bindings\c;src\lib\imgui;src\lib\imgui_test_engine;src\lib\abseil-cpp;src\lib\SDL\include;$(ProjectDir)build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>src;src\app;src\lib;src\util;incl;src\lib\asar\src;src\lib\asar\src\asar;src\lib\asar\src\asar-dll-bindings\c;src\lib\imgui;src\lib\imgui_test_engine;src\lib\abseil-cpp;src\lib\SDL\include;$(ProjectDir)build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@@ -163,11 +165,12 @@
|
|||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;SILENCE_CXX23_DEPRECATIONS;_SILENCE_CXX23_DEPRECATION_WARNING;_SILENCE_ALL_CXX23_DEPRECATION_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;strncasecmp=_strnicmp;strcasecmp=_stricmp;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<LanguageStandard>stdcpp23</LanguageStandard>
|
<LanguageStandard>stdcpp23</LanguageStandard>
|
||||||
|
<AdditionalOptions>/permissive- /bigobj /utf-8 %(AdditionalOptions)</AdditionalOptions>
|
||||||
<AdditionalIncludeDirectories>src;src\app;src\lib;src\util;incl;src\lib\asar\src;src\lib\asar\src\asar;src\lib\asar\src\asar-dll-bindings\c;src\lib\imgui;src\lib\imgui_test_engine;src\lib\abseil-cpp;src\lib\SDL\include;$(ProjectDir)build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>src;src\app;src\lib;src\util;incl;src\lib\asar\src;src\lib\asar\src\asar;src\lib\asar\src\asar-dll-bindings\c;src\lib\imgui;src\lib\imgui_test_engine;src\lib\abseil-cpp;src\lib\SDL\include;$(ProjectDir)build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@@ -178,13 +181,14 @@
|
|||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;SILENCE_CXX23_DEPRECATIONS;_SILENCE_CXX23_DEPRECATION_WARNING;_SILENCE_ALL_CXX23_DEPRECATION_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;strncasecmp=_strnicmp;strcasecmp=_stricmp;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<LanguageStandard>stdcpp23</LanguageStandard>
|
<LanguageStandard>stdcpp23</LanguageStandard>
|
||||||
|
<AdditionalOptions>/permissive- /bigobj /utf-8 %(AdditionalOptions)</AdditionalOptions>
|
||||||
<AdditionalIncludeDirectories>src;src\app;src\lib;src\util;incl;src\lib\asar\src;src\lib\asar\src\asar;src\lib\asar\src\asar-dll-bindings\c;src\lib\imgui;src\lib\imgui_test_engine;src\lib\abseil-cpp;src\lib\SDL\include;$(ProjectDir)build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>src;src\app;src\lib;src\util;incl;src\lib\asar\src;src\lib\asar\src\asar;src\lib\asar\src\asar-dll-bindings\c;src\lib\imgui;src\lib\imgui_test_engine;src\lib\abseil-cpp;src\lib\SDL\include;$(ProjectDir)build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@@ -197,11 +201,12 @@
|
|||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;SILENCE_CXX23_DEPRECATIONS;_SILENCE_CXX23_DEPRECATION_WARNING;_SILENCE_ALL_CXX23_DEPRECATION_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;strncasecmp=_strnicmp;strcasecmp=_stricmp;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<LanguageStandard>stdcpp23</LanguageStandard>
|
<LanguageStandard>stdcpp23</LanguageStandard>
|
||||||
|
<AdditionalOptions>/permissive- /bigobj /utf-8 %(AdditionalOptions)</AdditionalOptions>
|
||||||
<AdditionalIncludeDirectories>src;src\app;src\lib;src\util;incl;src\lib\asar\src;src\lib\asar\src\asar;src\lib\asar\src\asar-dll-bindings\c;src\lib\imgui;src\lib\imgui_test_engine;src\lib\abseil-cpp;src\lib\SDL\include;$(ProjectDir)build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>src;src\app;src\lib;src\util;incl;src\lib\asar\src;src\lib\asar\src\asar;src\lib\asar\src\asar-dll-bindings\c;src\lib\imgui;src\lib\imgui_test_engine;src\lib\abseil-cpp;src\lib\SDL\include;$(ProjectDir)build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@@ -212,13 +217,14 @@
|
|||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;SILENCE_CXX23_DEPRECATIONS;_SILENCE_CXX23_DEPRECATION_WARNING;_SILENCE_ALL_CXX23_DEPRECATION_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;strncasecmp=_strnicmp;strcasecmp=_stricmp;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<LanguageStandard>stdcpp23</LanguageStandard>
|
<LanguageStandard>stdcpp23</LanguageStandard>
|
||||||
|
<AdditionalOptions>/permissive- /bigobj /utf-8 %(AdditionalOptions)</AdditionalOptions>
|
||||||
<AdditionalIncludeDirectories>src;src\app;src\lib;src\util;incl;src\lib\asar\src;src\lib\asar\src\asar;src\lib\asar\src\asar-dll-bindings\c;src\lib\imgui;src\lib\imgui_test_engine;src\lib\abseil-cpp;src\lib\SDL\include;$(ProjectDir)build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>src;src\app;src\lib;src\util;incl;src\lib\asar\src;src\lib\asar\src\asar;src\lib\asar\src\asar-dll-bindings\c;src\lib\imgui;src\lib\imgui_test_engine;src\lib\abseil-cpp;src\lib\SDL\include;$(ProjectDir)build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
|
|||||||
@@ -24,9 +24,12 @@ cmake --build build
|
|||||||
# Generate Visual Studio projects (with proper vcpkg integration)
|
# Generate Visual Studio projects (with proper vcpkg integration)
|
||||||
python scripts/generate-vs-projects.py
|
python scripts/generate-vs-projects.py
|
||||||
|
|
||||||
# Or use CMake directly
|
# Build with Clang (recommended for better Abseil compatibility)
|
||||||
cmake --preset windows-debug
|
.\scripts\build-windows.ps1 -Compiler clang
|
||||||
cmake --build build --preset windows-debug
|
|
||||||
|
# Or use CMake directly with Clang
|
||||||
|
cmake -B build -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
|
||||||
|
cmake --build build
|
||||||
```
|
```
|
||||||
|
|
||||||
### Minimal Build (CI/Fast)
|
### Minimal Build (CI/Fast)
|
||||||
|
|||||||
@@ -21,6 +21,47 @@ This directory contains build and setup scripts for YAZE development on differen
|
|||||||
- **`generate-vs-projects.ps1`** - Generate Visual Studio project files (PowerShell)
|
- **`generate-vs-projects.ps1`** - Generate Visual Studio project files (PowerShell)
|
||||||
- **`generate-vs-projects.bat`** - Generate Visual Studio project files (Batch)
|
- **`generate-vs-projects.bat`** - Generate Visual Studio project files (Batch)
|
||||||
|
|
||||||
|
## Windows Compiler Recommendations
|
||||||
|
|
||||||
|
### ⚠️ Important: MSVC vs Clang on Windows
|
||||||
|
|
||||||
|
**We strongly recommend using Clang on Windows** due to compatibility issues with MSVC and Abseil's int128 and type_traits features:
|
||||||
|
|
||||||
|
#### Why Clang is Recommended:
|
||||||
|
- ✅ **Better C++23 Support**: Full support for modern C++23 features
|
||||||
|
- ✅ **Abseil Compatibility**: No issues with `absl::int128` and type traits
|
||||||
|
- ✅ **Cross-Platform Consistency**: Same compiler across all platforms
|
||||||
|
- ✅ **Better Error Messages**: More helpful diagnostic messages
|
||||||
|
- ✅ **Faster Compilation**: Generally faster than MSVC
|
||||||
|
|
||||||
|
#### MSVC Issues:
|
||||||
|
- ❌ **C++23 Deprecation Warnings**: Abseil int128 triggers numerous deprecation warnings
|
||||||
|
- ❌ **Type Traits Problems**: Some Abseil type traits don't work correctly with MSVC
|
||||||
|
- ❌ **Int128 Limitations**: MSVC's int128 support is incomplete
|
||||||
|
- ❌ **Build Complexity**: Requires additional workarounds and flags
|
||||||
|
|
||||||
|
### Compiler Setup Options
|
||||||
|
|
||||||
|
#### Option 1: Clang (Recommended)
|
||||||
|
```powershell
|
||||||
|
# Install LLVM/Clang via winget
|
||||||
|
winget install LLVM.LLVM
|
||||||
|
|
||||||
|
# Or download from: https://releases.llvm.org/
|
||||||
|
# Make sure to add Clang to PATH during installation
|
||||||
|
|
||||||
|
# Verify installation
|
||||||
|
clang --version
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Option 2: MSVC with Workarounds
|
||||||
|
If you must use MSVC, the build system includes workarounds:
|
||||||
|
- Abseil int128 is automatically disabled on Windows
|
||||||
|
- C++23 deprecation warnings are silenced
|
||||||
|
- Additional compatibility flags are applied
|
||||||
|
|
||||||
|
However, you may still encounter issues with some Abseil features.
|
||||||
|
|
||||||
## Quick Start (Windows)
|
## Quick Start (Windows)
|
||||||
|
|
||||||
### Option 1: Automated Setup (Recommended)
|
### Option 1: Automated Setup (Recommended)
|
||||||
@@ -62,49 +103,54 @@ REM Build
|
|||||||
### build-windows.ps1
|
### build-windows.ps1
|
||||||
- `-Configuration` - Build configuration (Debug, Release, RelWithDebInfo, MinSizeRel)
|
- `-Configuration` - Build configuration (Debug, Release, RelWithDebInfo, MinSizeRel)
|
||||||
- `-Platform` - Target platform (x64, x86, ARM64)
|
- `-Platform` - Target platform (x64, x86, ARM64)
|
||||||
|
- `-Compiler` - Compiler to use (clang, msvc, auto)
|
||||||
- `-Clean` - Clean build directories before building
|
- `-Clean` - Clean build directories before building
|
||||||
- `-Verbose` - Verbose build output
|
- `-Verbose` - Verbose build output
|
||||||
|
|
||||||
### build-windows.bat
|
### build-windows.bat
|
||||||
- First argument: Configuration (Debug, Release, RelWithDebInfo, MinSizeRel)
|
- First argument: Configuration (Debug, Release, RelWithDebInfo, MinSizeRel)
|
||||||
- Second argument: Platform (x64, x86, ARM64)
|
- Second argument: Platform (x64, x86, ARM64)
|
||||||
|
- Third argument: Compiler (clang, msvc, auto)
|
||||||
- `clean` - Clean build directories
|
- `clean` - Clean build directories
|
||||||
- `verbose` - Verbose build output
|
- `verbose` - Verbose build output
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
# Build Release x64 (default)
|
# Build Release x64 with Clang (recommended)
|
||||||
.\scripts\build-windows.ps1
|
.\scripts\build-windows.ps1 -Compiler clang
|
||||||
|
|
||||||
# Build Debug x64
|
# Build Release x64 with MSVC (with workarounds)
|
||||||
.\scripts\build-windows.ps1 -Configuration Debug -Platform x64
|
.\scripts\build-windows.ps1 -Compiler msvc
|
||||||
|
|
||||||
# Build Release x86
|
# Build Debug x64 with Clang
|
||||||
.\scripts\build-windows.ps1 -Configuration Release -Platform x86
|
.\scripts\build-windows.ps1 -Configuration Debug -Platform x64 -Compiler clang
|
||||||
|
|
||||||
# Clean build
|
# Build Release x86 with auto-detection
|
||||||
.\scripts\build-windows.ps1 -Clean
|
.\scripts\build-windows.ps1 -Configuration Release -Platform x86 -Compiler auto
|
||||||
|
|
||||||
# Verbose build
|
# Clean build with Clang
|
||||||
.\scripts\build-windows.ps1 -Verbose
|
.\scripts\build-windows.ps1 -Clean -Compiler clang
|
||||||
|
|
||||||
|
# Verbose build with MSVC
|
||||||
|
.\scripts\build-windows.ps1 -Verbose -Compiler msvc
|
||||||
|
|
||||||
# Validate environment
|
# Validate environment
|
||||||
.\scripts\validate-windows-build.ps1
|
.\scripts\validate-windows-build.ps1
|
||||||
```
|
```
|
||||||
|
|
||||||
```batch
|
```batch
|
||||||
REM Build Release x64 (default)
|
REM Build Release x64 with Clang (recommended)
|
||||||
.\scripts\build-windows.bat
|
.\scripts\build-windows.bat Release x64 clang
|
||||||
|
|
||||||
REM Build Debug x64
|
REM Build Debug x64 with MSVC
|
||||||
.\scripts\build-windows.bat Debug x64
|
.\scripts\build-windows.bat Debug x64 msvc
|
||||||
|
|
||||||
REM Build Release x86
|
REM Build Release x86 with auto-detection
|
||||||
.\scripts\build-windows.bat Release x86
|
.\scripts\build-windows.bat Release x86 auto
|
||||||
|
|
||||||
REM Clean build
|
REM Clean build with Clang
|
||||||
.\scripts\build-windows.bat clean
|
.\scripts\build-windows.bat clean clang
|
||||||
```
|
```
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
@@ -128,6 +174,21 @@ REM Clean build
|
|||||||
- Install Python 3.8+ from python.org
|
- Install Python 3.8+ from python.org
|
||||||
- Make sure Python is in PATH
|
- Make sure Python is in PATH
|
||||||
|
|
||||||
|
5. **MSVC Compilation Errors**
|
||||||
|
- **Abseil int128 errors**: Use Clang instead (`-Compiler clang`)
|
||||||
|
- **C++23 deprecation warnings**: These are silenced automatically, but Clang is cleaner
|
||||||
|
- **Type traits issues**: Switch to Clang for better compatibility
|
||||||
|
- **Solution**: Install Clang and use `.\scripts\build-windows.ps1 -Compiler clang`
|
||||||
|
|
||||||
|
6. **Clang Not Found**
|
||||||
|
- Install LLVM/Clang: `winget install LLVM.LLVM`
|
||||||
|
- Or download from: https://releases.llvm.org/
|
||||||
|
- Make sure Clang is in PATH: `clang --version`
|
||||||
|
|
||||||
|
7. **Compiler Detection Issues**
|
||||||
|
- Use explicit compiler selection: `-Compiler clang` or `-Compiler msvc`
|
||||||
|
- Check available compilers: `where clang` and `where cl`
|
||||||
|
|
||||||
### Getting Help
|
### Getting Help
|
||||||
|
|
||||||
1. Run validation script: `.\scripts\validate-windows-build.ps1`
|
1. Run validation script: `.\scripts\validate-windows-build.ps1`
|
||||||
|
|||||||
Reference in New Issue
Block a user