X Tutup
@echo off :: The branch name set branch=%1 :: 0 = use interactive method, 1 = use msbuild set use_msbuild=0 :: Set the start directory for later reference set STARTDIR="%CD%" :: Allow the use of delayed expansion setlocal EnableDelayedExpansion :: If branch wasn't set, use the interactive method if [%branch%] == [] goto :ChooseBranch set use_msbuild=1 goto CloneRepo :: A function to choose the branch to build against :ChooseBranch :: Clear the console cls echo Choose the branch you wish to build against: echo. :: Store a base counting variable set /a num=0 :: Loop through all branches supported by the plugin for %%f in (%STARTDIR%\makefiles\branch\*.*) do ( :: Increment the counter set /a num+=1 :: Set the current option to the current branch set option_!num!=%%~nf ) :: Loop through the options for /l %%a in (1, 1, %num%) do ( :: Print the option to the console echo (%%a^^^) !option_%%a! ) echo. :: Request a choice of branch set /p choice= :: Was the choice invalid? if %choice% leq 0 goto :ChooseBranch if %choice% gtr %num% goto :ChooseBranch :: Set the branch value to the choice set branch=!option_%choice%! :: If the choice is valid, create the clone, if it doesn't exist goto :CloneRepo :: A place to create the clone :CloneRepo :: Set the branch's repository directory set BRANCHDIR=%STARTDIR%\hl2sdk\%branch% :: If the branch's repo doesn't exist, create the clone if not exist %BRANCHDIR% ( mkdir %BRANCHDIR% cd %BRANCHDIR% git clone https://github.com/alliedmodders/hl2sdk.git . ) else ( cd %BRANCHDIR% ) :: Checkout the selected branch and revert all changes git checkout -f %branch% :: Was an error encountered? if %ERRORLEVEL% gtr 0 goto :FailDueToError :: Was no error encountered? if %ERRORLEVEL% == 0 goto :PullChanges :: A place to pull repo changes :PullChanges :: Pull the newest changeset from github/alliedmods/hl2sdk git pull :: Was an error encountered? if %ERRORLEVEL% gtr 0 goto :FailDueToError :: Was no error encountered? if %ERRORLEVEL% == 0 goto :MovePatches :: A place to move patched files :MovePatches :: Set the branch's patch directory set PATCHDIR=%STARTDIR%\patches\%branch% :: Copy any patched files over if any exist for the specific branch if exist %PATCHDIR% xcopy %PATCHDIR% %BRANCHDIR% /y/s :: Create the build files for the branch :CreateBuild :: A place to create build files :CreateBuild :: Navigate back to the starting directory cd %STARTDIR% :: Set the branch's build directory set BUILDDIR=%STARTDIR%\Builds\Windows\%branch% :: Does the build directory exist (make it if not)? if not exist %BUILDDIR% mkdir %BUILDDIR% :: Create the build files cmake . -B%BUILDDIR% -G"Visual Studio 17" -A Win32 -DBRANCH=%branch% if %use_msbuild% == 1 ( cd %BUILDDIR% :: devenv is located in your Visual Studio installaton directory. :: If it's missing, add it to your PATH environment variable. devenv source-python.sln /build "Release" ) else ( :: Pause to show the process is completed pause ) :: Exit the program exit :: A place to print error messages :FailDueToError :: Send an error message echo Encountered Error # %ERRORLEVEL% if %use_msbuild% == 0 ( :: Pause to show the error pause )
X Tutup