2016-06-02 04:09:36 +00:00
|
|
|
@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
|
|
|
|
)
|
2017-01-18 10:57:11 +00:00
|
|
|
if "%1" == "--commit-hash" (
|
|
|
|
set GYP_ARGS=%GYP_ARGS% -D WINPTY_COMMIT_HASH=%2
|
|
|
|
shift && shift
|
|
|
|
goto :ParamLoop
|
|
|
|
)
|
2016-06-02 04:09:36 +00:00
|
|
|
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
|
|
|
|
)
|