From 1f90ed4f37367e95c4e6a17f6a745a699d715095 Mon Sep 17 00:00:00 2001 From: jazir5 <31750063+jazir555@users.noreply.github.com> Date: Thu, 3 Apr 2025 20:44:22 -0700 Subject: [PATCH] Create installexebuilddepdencies.bat --- exe/installexebuilddepdencies.bat | 121 ++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 exe/installexebuilddepdencies.bat diff --git a/exe/installexebuilddepdencies.bat b/exe/installexebuilddepdencies.bat new file mode 100644 index 0000000..35fe836 --- /dev/null +++ b/exe/installexebuilddepdencies.bat @@ -0,0 +1,121 @@ +@echo off +SETLOCAL EnableDelayedExpansion + +:: ========================================================================== +:: Script to Install C++ Build Dependencies (MinGW-w64 via Chocolatey) +:: Requires Administrator privileges and Internet connection. +:: Handles potential non-fatal warnings from choco install for mingw. +:: ========================================================================== + +:: Check for Admin privileges +echo Checking for administrative privileges... +>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" +if '%errorlevel%' NEQ '0' ( + echo ERROR: This script requires administrative privileges. + echo Please right-click and select "Run as administrator". + pause + goto :EOF +) else ( + echo Running with administrative privileges. +) +echo. + +:: Define Variables +SET "CHOCO_INSTALL_CMD=Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))" +SET "MINGW_PACKAGE=mingw" +SET "INSTALL_ATTEMPTED=0" + +:: --- Step 1: Check/Install Chocolatey --- +echo Checking for Chocolatey installation... +choco -? >nul 2>&1 +IF %ERRORLEVEL% NEQ 0 ( + echo Chocolatey not found. Attempting to install... + echo This requires PowerShell and an internet connection. + powershell -NoProfile -ExecutionPolicy Bypass -Command "%CHOCO_INSTALL_CMD%" + IF %ERRORLEVEL% NEQ 0 ( + echo ERROR: Chocolatey installation failed. Please check your internet connection + echo and PowerShell execution policy settings. Manual installation may be required. + echo Visit https://chocolatey.org/install for instructions. + pause + goto :EOF + ) ELSE ( + echo Chocolatey installation appears successful. + echo NOTE: You might need to open a NEW command prompt for choco to be fully available in PATH. + echo Running 'refreshenv' command now to attempt immediate PATH refresh... + refreshenv + REM Small delay to allow environment refresh + timeout /t 3 /nobreak >nul + ) +) ELSE ( + echo Chocolatey is already installed. +) +echo. + +:: Verify Choco again after potential install/refresh +choco -? >nul 2>&1 +IF %ERRORLEVEL% NEQ 0 ( + echo ERROR: Chocolatey command is still not available after installation attempt. + echo Please open a new Administrator command prompt and try running this script again, + echo or install MinGW manually. + pause + goto :EOF +) + +:: --- Step 2: Check/Install MinGW-w64 --- +echo Checking if '%MINGW_PACKAGE%' package is installed via Chocolatey... +choco list --local-only --exact "%MINGW_PACKAGE%" | findstr /B /C:"%MINGW_PACKAGE%" >nul 2>&1 +IF %ERRORLEVEL% NEQ 0 ( + echo '%MINGW_PACKAGE%' package not found or check failed. Attempting to install/ensure... + SET "INSTALL_ATTEMPTED=1" + choco install %MINGW_PACKAGE% --yes --force --no-progress + IF %ERRORLEVEL% NEQ 0 ( + echo WARNING: 'choco install %MINGW_PACKAGE%' finished with a non-zero exit code. + echo This might be due to non-fatal warnings (like missing old paths). + echo Continuing to verification step, but check output above carefully. + REM Do not exit here, let the g++ check be the final arbiter + ) ELSE ( + echo 'choco install %MINGW_PACKAGE%' command completed successfully (Exit Code 0). + ) + echo Running 'refreshenv' command to attempt PATH update... + refreshenv + REM Small delay to allow environment refresh + timeout /t 3 /nobreak >nul +) ELSE ( + echo '%MINGW_PACKAGE%' package appears to be already installed. +) +echo. + +:: --- Step 3: Verify g++ availability --- +echo Verifying g++ command availability... +where g++ >nul 2>&1 +IF %ERRORLEVEL% NEQ 0 ( + echo ERROR: 'g++' command was not found in the current PATH even after installation attempt/check. + IF "!INSTALL_ATTEMPTED!"=="1" ( + echo Possible causes: + echo - The 'mingw' package installation truly failed despite reporting success internally. Check logs. + echo - The PATH environment variable hasn't updated in this session yet. + ) ELSE ( + echo Possible cause: The PATH environment variable hasn't updated in this session yet. + ) + echo. + echo IMPORTANT: Please CLOSE this window and open a NEW Administrator + echo command prompt. Then try running the build script. + pause + goto :EOF +) ELSE ( + echo Verification successful: 'g++' command found in PATH: + where g++ + echo. + echo ========================================================================== + echo Build Dependency Installation/Verification Complete! + echo ========================================================================== + echo MinGW-w64 (containing g++) should be ready. + IF "!INSTALL_ATTEMPTED!"=="1" ( + echo NOTE: If the build script still fails, ensure you run it from a NEW command prompt. + ) + echo. +) + +pause +ENDLOCAL +goto :EOF