| @echo off | |
| rem Downloads and build sources for libraries we depend upon | |
| goto Run | |
| :Usage | |
| echo.%~nx0 [flags and arguments] | |
| echo. | |
| echo.Download and build OpenSSL. This should only be performed in order to | |
| echo.update the binaries kept online - in most cases, the files downloaded | |
| echo.by the get_externals.bat script are sufficient for building CPython. | |
| echo. | |
| echo.Available flags: | |
| echo. -h Display this help message | |
| echo. | |
| echo.Available arguments: | |
| echo. --certificate (-c) The signing certificate to use for binaries. | |
| echo. --organization The github organization to obtain sources from. | |
| echo. | |
| exit /b 127 | |
| :Run | |
| setlocal | |
| if "%PCBUILD%"=="" (set PCBUILD=%~dp0) | |
| if "%EXTERNALS_DIR%"=="" (set EXTERNALS_DIR=%PCBUILD%\..\externals) | |
| set ORG_SETTING= | |
| :CheckOpts | |
| if "%~1"=="-h" shift & goto Usage | |
| if "%~1"=="--certificate" (set SigningCertificate=%~2) && shift && shift & goto CheckOpts | |
| if "%~1"=="-c" (set SigningCertificate=%~2) && shift && shift & goto CheckOpts | |
| if "%~1"=="--organization" (set ORG_SETTING=--organization "%~2") && shift && shift && goto CheckOpts | |
| if "%~1"=="" goto Build | |
| echo Unrecognized option: %1 | |
| goto Usage | |
| :Build | |
| call "%PCBUILD%\find_msbuild.bat" %MSBUILD% | |
| if ERRORLEVEL 1 (echo Cannot locate MSBuild.exe on PATH or as MSBUILD variable & exit /b 2) | |
| call "%PCBUILD%\find_python.bat" "%PYTHON%" | |
| if ERRORLEVEL 1 (echo Cannot locate python.exe on PATH or as PYTHON variable & exit /b 3) | |
| call "%PCBUILD%\get_externals.bat" --openssl-src --no-openssl %ORG_SETTING% | |
| if "%PERL%" == "" where perl > "%TEMP%\perl.loc" 2> nul && set /P PERL= <"%TEMP%\perl.loc" & del "%TEMP%\perl.loc" | |
| if "%PERL%" == "" (echo Cannot locate perl.exe on PATH or as PERL variable & exit /b 4) | |
| %MSBUILD% "%PCBUILD%\openssl.vcxproj" /p:Configuration=Release /p:Platform=Win32 | |
| if errorlevel 1 exit /b | |
| %MSBUILD% "%PCBUILD%\openssl.vcxproj" /p:Configuration=Release /p:Platform=x64 | |
| if errorlevel 1 exit /b | |
| %MSBUILD% "%PCBUILD%\openssl.vcxproj" /p:Configuration=Release /p:Platform=ARM | |
| if errorlevel 1 exit /b | |
| %MSBUILD% "%PCBUILD%\openssl.vcxproj" /p:Configuration=Release /p:Platform=ARM64 | |
| if errorlevel 1 exit /b | |