mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-12 11:11:16 +00:00
164 lines
4.1 KiB
Batchfile
164 lines
4.1 KiB
Batchfile
:: SETUP FOR LAZY PEOPLE
|
|
|
|
@echo off
|
|
color a
|
|
cls
|
|
|
|
REM UAC stuff
|
|
:init
|
|
setlocal DisableDelayedExpansion
|
|
set cmdInvoke=1
|
|
set winSysFolder=System32
|
|
set "batchPath=%~dpnx0"
|
|
rem this works also from cmd shell, other than %~0
|
|
for %%k in (%0) do set batchName=%%~nk
|
|
set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
|
|
setlocal EnableDelayedExpansion
|
|
|
|
:checkPrivileges
|
|
whoami /groups /nh | find "S-1-16-12288" > nul
|
|
if '%errorlevel%' == '0' ( goto checkPrivileges2 ) else ( goto getPrivileges )
|
|
|
|
:checkPrivileges2
|
|
net session 1>nul 2>NUL
|
|
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
|
|
|
|
:getPrivileges
|
|
if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
|
|
ECHO.
|
|
|
|
REM Very cool echo!!! Yay
|
|
ECHO ===========================================
|
|
ECHO - -
|
|
ECHO = Invoking UAC for privilege escalation =
|
|
ECHO - -
|
|
ECHO ===========================================
|
|
|
|
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
|
|
ECHO args = "ELEV " >> "%vbsGetPrivileges%"
|
|
ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
|
|
ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
|
|
ECHO Next >> "%vbsGetPrivileges%"
|
|
|
|
if '%cmdInvoke%'=='1' goto InvokeCmd
|
|
|
|
ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
|
|
goto ExecElevation
|
|
|
|
:InvokeCmd
|
|
ECHO args = "/c """ + "!batchPath!" + """ " + args >> "%vbsGetPrivileges%"
|
|
ECHO UAC.ShellExecute "%SystemRoot%\%winSysFolder%\cmd.exe", args, "", "runas", 1 >> "%vbsGetPrivileges%"
|
|
|
|
:ExecElevation
|
|
"%SystemRoot%\%winSysFolder%\WScript.exe" "%vbsGetPrivileges%" %*
|
|
exit /B
|
|
|
|
:gotPrivileges
|
|
setlocal & cd /d %~dp0
|
|
if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)
|
|
|
|
REM Sets
|
|
set PATH=%cd%
|
|
REM for /F %%A in ('echo prompt $E^| cmd') do set "ESC=%%A"
|
|
set accuracyOfLego=99%
|
|
set funnyCoolThingBuildTypeIDunno=Release
|
|
set sdkName=sdk
|
|
setx CMakeDir /k "HKEY_LOCAL_MACHINE\SOFTWARE\Kitware\CMake\InstallDir" :: Makes a variable that returns the cmake install directory
|
|
cls
|
|
goto FirstStep
|
|
|
|
REM Steps
|
|
:FirstStep
|
|
echo Welcome to the setup for compiling LEGO Island!
|
|
echo ========== Details ===========
|
|
echo -
|
|
echo = Accuracy: %accuracyOfLego%
|
|
echo = Implementation: 100%
|
|
echo -
|
|
echo ==============================
|
|
pause
|
|
cls
|
|
goto BuildTypeShi
|
|
|
|
:BuildTypeShi
|
|
REM Build Type Configuration
|
|
echo Select your build type:
|
|
echo ======================
|
|
echo -
|
|
ECHO 1: Debug
|
|
ECHO 2: Release
|
|
ECHO 3: MinSizeRel
|
|
ECHO 4: RelWithDebInfo
|
|
echo -
|
|
echo ======================
|
|
|
|
set /p dumbAss=
|
|
if "%dumbAss%"=="1" goto SetDebug
|
|
if "%dumbAss%"=="2" goto SetRelease
|
|
if "%dumbAss%"=="3" goto SetMinSizeRel
|
|
if "%dumbAss%"=="4" goto SetRelWithDebInfo
|
|
REM if "%dumbAss%"=="5" goto CMakeDirTest
|
|
|
|
:SetDebug
|
|
set funnyCoolThingBuildTypeIDunno=Debug
|
|
goto doneSettingShit
|
|
|
|
:CMakeDirTest
|
|
reg query "HKCU\Environment" /v "CMakeDir" :: (works)
|
|
echo on
|
|
echo FOR TESTING PURPOSES!
|
|
echo "%CMakeDir%"
|
|
pause
|
|
goto BuildTypeShi
|
|
|
|
:SetRelease
|
|
set funnyCoolThingBuildTypeIDunno=Release
|
|
goto doneSettingShit
|
|
|
|
:SetMinSizeRel
|
|
set funnyCoolThingBuildTypeIDunno=MinSizeRel
|
|
goto doneSettingShit
|
|
|
|
:SetRelWithDebInfo
|
|
set funnyCoolThingBuildTypeIDunno=RelWithDebInfo
|
|
goto doneSettingShit
|
|
|
|
:doneSettingShit
|
|
echo Done!
|
|
pause
|
|
goto dumb
|
|
|
|
REM Compiler choice
|
|
:dumb
|
|
cls
|
|
echo Enter your compiler:
|
|
echo ====================
|
|
echo -
|
|
ECHO 1: NMake Makefiles
|
|
ECHO 2: Ninja (does not support making debug symbols)
|
|
echo -
|
|
echo ====================
|
|
set /p bullShit=
|
|
IF "%bullShit%"=="1" GOTO NMake
|
|
IF "%bullShit%"=="2" GOTO Ninja
|
|
|
|
:NMake
|
|
cls
|
|
ECHO -- NMake Makefiles --
|
|
REM reg query "HKCU\Environment" /v "CMakeDir" :: (works)
|
|
cmake %cd% -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=%funnyCoolThingBuildTypeIDunno%
|
|
goto End
|
|
|
|
:Ninja
|
|
echo [WARNING] Only release binaries are supported!
|
|
ECHO -- Ninja --
|
|
REM reg query "HKCU\Environment" /v "CMakeDir" :: (works)
|
|
cmake %cd% -G "Ninja" -DCMAKE_BUILD_TYPE=Release
|
|
goto End
|
|
|
|
:End
|
|
echo Done!
|
|
echo To compile, change directory to build in THIS (%cd%) folder!
|
|
echo And run either "nmake" or "ninja" (If you desire to compile in Ninja, make sure you installed it!)
|
|
pause
|