Files
open-wc/gdextension/build.bat
T
2026-04-20 20:26:14 +04:00

79 lines
2.1 KiB
Batchfile

@echo off
setlocal
rem Build script for mpq_extractor GDExtension on Windows.
rem Requires Visual Studio 2022 with the C++ workload installed.
set BUILD_TYPE=%1
if "%BUILD_TYPE%"=="" set BUILD_TYPE=Release
set SCRIPT_DIR=%~dp0
if "%SCRIPT_DIR:~-1%"=="\" set SCRIPT_DIR=%SCRIPT_DIR:~0,-1%
set BUILD_DIR=%SCRIPT_DIR%\build
echo [mpq_extractor] BUILD_TYPE=%BUILD_TYPE%
rem Locate cmake.exe, first from PATH and then from common VS2022 installs.
set VS_CMAKE=
for /f "delims=" %%i in ('where cmake 2^>nul') do (
set VS_CMAKE=%%i
goto :cmake_found
)
set VSCMAKE_GUESS=C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe
if exist "%VSCMAKE_GUESS%" (
set VS_CMAKE=%VSCMAKE_GUESS%
goto :cmake_found
)
set VSCMAKE_GUESS=C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe
if exist "%VSCMAKE_GUESS%" (
set VS_CMAKE=%VSCMAKE_GUESS%
goto :cmake_found
)
set VSCMAKE_GUESS=C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe
if exist "%VSCMAKE_GUESS%" (
set VS_CMAKE=%VSCMAKE_GUESS%
goto :cmake_found
)
echo ERROR: cmake.exe not found.
echo Install CMake or add it to PATH.
exit /b 1
:cmake_found
echo [mpq_extractor] cmake: %VS_CMAKE%
rem Initialize submodules when needed.
if not exist "%SCRIPT_DIR%\..\thirdparty\godot-cpp\CMakeLists.txt" (
echo [mpq_extractor] Initializing submodules...
cd /d "%SCRIPT_DIR%\.."
git submodule update --init --recursive
if errorlevel 1 (
echo ERROR: git submodule update failed.
exit /b 1
)
cd /d "%SCRIPT_DIR%"
)
rem Configure.
"%VS_CMAKE%" -S "%SCRIPT_DIR%" -B "%BUILD_DIR%" -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=%BUILD_TYPE%
if errorlevel 1 (
echo ERROR: cmake configure failed.
exit /b 1
)
rem Build.
"%VS_CMAKE%" --build "%BUILD_DIR%" --config %BUILD_TYPE% --parallel
if errorlevel 1 (
echo ERROR: cmake build failed.
exit /b 1
)
echo.
echo [mpq_extractor] Done. DLL is in:
echo %SCRIPT_DIR%\..\addons\mpq_extractor\bin\
endlocal