| @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 %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 |
| |