tools/build_vcpkg.bat
author unC0Rr
Wed, 28 Aug 2024 13:41:51 +0200
changeset 16049 9be943326d9c
parent 15978 4ec24af5909a
permissions -rw-r--r--
Store all snowflakes in a separate array, achieving performance increase of about 10% for the whole engine on winter maps

@echo off
setlocal
::CONFIG START
::edit these variables if necessary

::change between Debug and Release
set BUILD_TYPE=Release
::path where Hedgewars will be installed to
::default is %ProgramFiles%\hedgewars and requires running this script as administrator  
set INSTALL_LOCATION=
::set if vcpkg is not on path
set VCPKG_PATH=%VCPKG_ROOT%
::set if CMake is not on path
set CMAKE_PATH=
::set if FPC is not on path
set PASCAL_PATH=
::set to 1 if x86 to x64 cross-compiler is not enabled automatically
set FORCE_X64_CROSS_COMPILE=
::set to 1 to build the game server
set BUILD_SERVER=

::CONFIG END
            
:setup
set CURRDIR="%CD%"
cd %CURRDIR%\..\

set PATH=%PASCAL_PATH%;%VCPKG_PATH%;%CMAKE_PATH%;%PATH%

if "%VSCMD_ARG_TGT_ARCH%" == "x64" (
    set FORCE_X64_CROSS_COMPILE=1
)

if "%FORCE_X64_CROSS_COMPILE%" NEQ "" (
    set CROSS_COMPILE_FLAG=-DWIN32_WIN64_CROSS_COMPILE=1
    if "%INSTALL_LOCATION%" == "" (
        set INSTALL_LOCATION=%ProgramFiles%/hedgewars
    )
) else (
    set CROSS_COMPILE_FLAG=
)

if "%INSTALL_LOCATION%" NEQ "" (
    set PREFIX_FLAG=-DCMAKE_INSTALL_PREFIX=%INSTALL_LOCATION%
) else (
    set PREFIX_FLAG=
)

if "%BUILD_SERVER%" == "" (
    set BUILD_SERVER_FLAG=-DNOSERVER=1
) else (
    set BUILD_SERVER_FLAG=
)             

echo Running cmake...
set ERRORLEVEL=

cmake . -DCMAKE_TOOLCHAIN_FILE="%VCPKG_PATH%\scripts\buildsystems\vcpkg.cmake" -G"NMake Makefiles" %CROSS_COMPILE_FLAG% %BUILD_SERVER_FLAG% "%PREFIX_FLAG%" -DCMAKE_BUILD_TYPE="%BUILD_TYPE%" -DSDL2_BUILDING_LIBRARY=1 -DNOVIDEOREC=1

if %ERRORLEVEL% NEQ 0 goto exitpoint

echo Configuration completed successfully

echo Building...
set ERRORLEVEL=

nmake

if %ERRORLEVEL% NEQ 0 goto exitpoint

echo Build completed successfully

nmake install

:exitpoint
cd %CURRDIR%

endlocal
pause