aluf/windows/build_x64.bat

65 lines
2.2 KiB
Batchfile

@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