| @echo off | |
| REM -- Script requirements: | |
| REM -- | |
| REM -- * git This program must be in the Path to check out | |
| REM -- build-gyp. If that directory already exists, then | |
| REM -- git isn't necessary, but if it is missing, no | |
| REM -- commit hash will be embedded into binaries. | |
| REM -- | |
| REM -- * python A non-Cygwin Python 2 python.exe must be in the | |
| REM -- Path to run gyp. | |
| REM -- | |
| REM -- * msbuild msbuild must be in the Path. It is probably | |
| REM -- important to have msbuild from the correct MSVC | |
| REM -- release. | |
| REM -- | |
| REM -- The script's output binaries are in the src/Release/{Win32,x64} | |
| REM -- directory. | |
| REM ------------------------------------------------------------------------- | |
| REM -- Parse arguments | |
| setlocal | |
| cd %~dp0 | |
| set GYP_ARGS= | |
| set MSVC_PLATFORM=x64 | |
| :ParamLoop | |
| if "%1" == "" goto :ParamDone | |
| if "%1" == "--msvc-platform" ( | |
| REM -- One of Win32 or x64. | |
| set MSVC_PLATFORM=%2 | |
| shift && shift | |
| goto :ParamLoop | |
| ) | |
| if "%1" == "--gyp-msvs-version" ( | |
| set GYP_ARGS=%GYP_ARGS% -G msvs_version=%2 | |
| shift && shift | |
| goto :ParamLoop | |
| ) | |
| if "%1" == "--toolset" ( | |
| set GYP_ARGS=%GYP_ARGS% -D WINPTY_MSBUILD_TOOLSET=%2 | |
| shift && shift | |
| goto :ParamLoop | |
| ) | |
| if "%1" == "--commit-hash" ( | |
| set GYP_ARGS=%GYP_ARGS% -D WINPTY_COMMIT_HASH=%2 | |
| shift && shift | |
| goto :ParamLoop | |
| ) | |
| echo error: Unrecognized argument: %1 | |
| exit /b 1 | |
| :ParamDone | |
| REM ------------------------------------------------------------------------- | |
| REM -- Check out GYP. GYP doesn't seem to have releases, so just use the | |
| REM -- current master commit. | |
| if not exist build-gyp ( | |
| git clone https://chromium.googlesource.com/external/gyp build-gyp || ( | |
| echo error: GYP clone failed | |
| exit /b 1 | |
| ) | |
| ) | |
| REM ------------------------------------------------------------------------- | |
| REM -- Run gyp to generate MSVC project files. | |
| cd src | |
| call ..\build-gyp\gyp.bat winpty.gyp -I configurations.gypi %GYP_ARGS% | |
| if errorlevel 1 ( | |
| echo error: GYP failed | |
| exit /b 1 | |
| ) | |
| REM ------------------------------------------------------------------------- | |
| REM -- Compile the project. | |
| msbuild winpty.sln /m /p:Platform=%MSVC_PLATFORM% || ( | |
| echo error: msbuild failed | |
| exit /b 1 | |
| ) | |