@echo off setlocal enabledelayedexpansion :: ============================================================================== :: CONFIGURATION :: ============================================================================== set "BUILD_DIR=..\build_windows\x64" set "QT_PATH=C:\Qt\6.8.3\msvc2022_64" :: ============================================================================== :: AUTO-DETECT VISUAL STUDIO :: ============================================================================== set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" if not exist "!VSWHERE!" set "VSWHERE=%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" if exist "!VSWHERE!" ( for /f "usebackq tokens=*" %%i in (`"!VSWHERE!" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do ( set "VS_INSTALL_DIR=%%i" ) ) if not defined VS_INSTALL_DIR ( echo [ERROR] Could not find Visual Studio. pause exit /b 1 ) set "VCVARSALL=!VS_INSTALL_DIR!\VC\Auxiliary\Build\vcvarsall.bat" set "VCPKG_CMAKE=!VS_INSTALL_DIR!\VC\vcpkg\scripts\buildsystems\vcpkg.cmake" echo [INFO] Found Visual Studio at: !VS_INSTALL_DIR! :: ============================================================================== :: COMPILER SETUP (Cross-Compile) :: ============================================================================== if /i "%PROCESSOR_ARCHITECTURE%"=="ARM64" ( echo [INFO] Host is ARM64. Using ARM64_x64 cross-compiler. set "VCVARS_ARCH=arm64_x64" ) else ( echo [INFO] Host is x64. Using Native x64 compiler. set "VCVARS_ARCH=x64" ) call "!VCVARSALL!" !VCVARS_ARCH! :: ============================================================================== :: BUILD :: ============================================================================== if not exist "%BUILD_DIR%" mkdir "%BUILD_DIR%" cd "%BUILD_DIR%" echo [INFO] Configuring for x64... cmake -G "Ninja" ^ -DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_PREFIX_PATH="%QT_PATH%" ^ -DCMAKE_TOOLCHAIN_FILE="!VCPKG_CMAKE!" ^ ..\.. if %errorlevel% neq 0 pause && exit /b %errorlevel% echo [INFO] Building... cmake --build . echo. echo [SUCCESS] x64 Build located in build_windows\x64 pause