ClearScript/V8Update.cmd

288 строки
6.6 KiB
Batchfile
Исходник Обычный вид История

2013-01-07 20:34:03 +04:00
@echo off
2013-01-16 01:14:46 +04:00
setlocal
2013-01-07 20:34:03 +04:00
::-----------------------------------------------------------------------------
:: process arguments
::-----------------------------------------------------------------------------
set testedRevision=17179
set testedVersion=3.22.11
:ProcessArgs
set download=true
set mode=Release
:ProcessArg
if "%1"=="" goto ProcessArgsDone
if "%1"=="/?" goto EchoUsage
if /i "%1"=="/n" goto SetDownloadFalse
if /i "%1"=="\n" goto SetDownloadFalse
if /i "%1"=="-n" goto SetDownloadFalse
if /i "%1"=="debug" goto SetDebugMode
if /i "%1"=="release" goto SetReleaseMode
goto SetV8Rev
:EchoUsage
echo Downloads, builds, and imports V8 for use with ClearScript.
echo.
echo V8UPDATE [/N] [mode] [revision]
echo.
echo /N Do not download; use previously downloaded files if possible.
echo mode Build mode: "Debug" or "Release".
echo revision V8 revision: "Latest", "Tested", or revision number.
goto Exit
:SetDownloadFalse
set download=false
goto NextArg
2013-01-16 01:14:46 +04:00
:SetDebugMode
2013-01-07 20:34:03 +04:00
set mode=Debug
goto NextArg
:SetReleaseMode
2013-01-07 20:34:03 +04:00
set mode=Release
goto NextArg
:SetV8Rev
set v8rev=%1
goto NextArg
:NextArg
shift
goto ProcessArg
:ProcessArgsDone
::-----------------------------------------------------------------------------
:: main
::-----------------------------------------------------------------------------
:Main
2013-01-07 20:34:03 +04:00
echo Build mode: %mode%
cd ClearScript\v8\v8
if errorlevel 1 goto Exit
if /i "%download%"=="true" goto Download
if exist build\ goto SkipDownload
echo *** BUILD DIRECTORY NOT FOUND; DOWNLOAD REQUIRED ***
choice /m Continue
if errorlevel 2 goto Exit
goto Download
:SkipDownload
cd build
goto Build
::-----------------------------------------------------------------------------
:: download
::-----------------------------------------------------------------------------
:Download
:ResolveRev
if "%v8rev%"=="" goto UseTestedRev
if /i "%v8rev%"=="latest" goto UseLatestRev
if /i "%v8rev%"=="tested" goto UseTestedRev
if /i "%v8rev%"=="%testedRevision%" goto UseTestedRev
echo V8 revision: %v8rev%
echo *** WARNING: THIS V8 REVISION MAY NOT BE COMPATIBLE WITH CLEARSCRIPT ***
choice /m Continue
if errorlevel 2 goto Exit
goto ResolveRevDone
:UseTestedRev
set v8rev=%testedRevision%
echo V8 revision: Tested (%v8rev%, Version %testedVersion%)
goto ResolveRevDone
:UseLatestRev
set v8rev=HEAD
echo V8 revision: Latest
echo *** WARNING: THIS V8 REVISION MAY NOT BE COMPATIBLE WITH CLEARSCRIPT ***
choice /m Continue
if errorlevel 2 goto Exit
:ResolveRevDone
:EnsureBuildDir
2013-01-07 20:34:03 +04:00
if not exist build\ goto CreateBuildDir
echo Removing old build directory ...
rd /s /q build
:CreateBuildDir
2013-01-16 01:14:46 +04:00
echo Creating build directory ...
2013-01-07 20:34:03 +04:00
md build
2013-01-16 01:14:46 +04:00
if errorlevel 1 goto Error
:EnsureBuildDirDone
2013-01-07 20:34:03 +04:00
cd build
:DownloadV8
2013-01-07 20:34:03 +04:00
echo Downloading V8 ...
svn checkout http://v8.googlecode.com/svn/trunk/@%v8rev% v8 >getV8.log
2013-01-07 20:34:03 +04:00
if errorlevel 1 goto Error1
:DownloadV8Done
2013-01-07 20:34:03 +04:00
cd v8
:PatchV8
2013-01-07 20:34:03 +04:00
echo Patching V8 ...
svn patch --ignore-whitespace ..\..\V8Patch.txt >patchV8.log
2013-01-07 20:34:03 +04:00
if errorlevel 1 goto Error2
:PatchV8Done
2013-01-07 20:34:03 +04:00
:DownloadGYP
2013-01-07 20:34:03 +04:00
echo Downloading GYP ...
svn checkout http://gyp.googlecode.com/svn/trunk build/gyp >getGYP.log
2013-01-07 20:34:03 +04:00
if errorlevel 1 goto Error2
:DownloadGYPDone
2013-01-07 20:34:03 +04:00
:DownloadPython
2013-01-07 20:34:03 +04:00
echo Downloading Python ...
svn checkout http://src.chromium.org/svn/trunk/tools/third_party/python_26 third_party/python_26 >getPython.log
2013-01-07 20:34:03 +04:00
if errorlevel 1 goto Error2
:DownloadPythonDone
2013-01-07 20:34:03 +04:00
:DownloadCygwin
2013-01-07 20:34:03 +04:00
echo Downloading Cygwin ...
svn checkout http://src.chromium.org/svn/trunk/deps/third_party/cygwin third_party/cygwin >getCygwin.log
2013-01-07 20:34:03 +04:00
if errorlevel 1 goto Error2
:DownloadCygwinDone
2013-01-07 20:34:03 +04:00
cd ..
:DownloadDone
::-----------------------------------------------------------------------------
:: build
::-----------------------------------------------------------------------------
:Build
set GYP_MSVS_VERSION=2012
set PYTHONHOME=
set PYTHONPATH=
:CreatePatchFile
echo Creating patch file ...
cd v8
svn diff -x --ignore-space-change -x --ignore-eol-style >V8Patch.txt
if errorlevel 1 goto Error2
cd ..
:CreatePatchFileDone
:Copy32Bit
2013-01-07 20:34:03 +04:00
echo Building 32-bit V8 ...
if exist v8-ia32\ goto Copy32BitDone
2013-01-07 20:34:03 +04:00
md v8-ia32
if errorlevel 1 goto Error1
xcopy v8\*.* v8-ia32\ /e /y >nul
if errorlevel 1 goto Error1
:Copy32BitDone
:Build32Bit
2013-01-07 20:34:03 +04:00
cd v8-ia32
third_party\python_26\python build\gyp_v8 -Dtarget_arch=ia32 -Dcomponent=shared_library -Dv8_use_snapshot=false -Dv8_enable_i18n_support=0 >gyp.log
2013-01-07 20:34:03 +04:00
if errorlevel 1 goto Error2
msbuild /p:Configuration=%mode% /p:Platform=Win32 /t:v8 tools\gyp\v8.sln >build.log
2013-01-07 20:34:03 +04:00
if errorlevel 1 goto Error2
cd ..
:Build32BitDone
2013-01-07 20:34:03 +04:00
:Copy64Bit
2013-01-07 20:34:03 +04:00
echo Building 64-bit V8 ...
if exist v8-x64\ goto Copy64BitDone
2013-01-07 20:34:03 +04:00
md v8-x64
if errorlevel 1 goto Error1
xcopy v8\*.* v8-x64\ /e /y >nul
if errorlevel 1 goto Error1
:Copy64BitDone
:Build64Bit
2013-01-07 20:34:03 +04:00
cd v8-x64
third_party\python_26\python build\gyp_v8 -Dtarget_arch=x64 -Dcomponent=shared_library -Dv8_use_snapshot=false -Dv8_enable_i18n_support=0 >gyp.log
2013-01-07 20:34:03 +04:00
if errorlevel 1 goto Error2
msbuild /p:Configuration=%mode% /p:Platform=x64 /t:v8 tools\gyp\v8.sln >build.log
2013-01-07 20:34:03 +04:00
if errorlevel 1 goto Error2
cd ..
:Build64BitDone
:BuildDone
::-----------------------------------------------------------------------------
:: import
::-----------------------------------------------------------------------------
2013-01-07 20:34:03 +04:00
:Import
cd ..
:EnsureLibDir
2013-01-07 20:34:03 +04:00
if not exist lib\ goto CreateLibDir
echo Removing old lib directory ...
rd /s /q lib
:CreateLibDir
2013-01-16 01:14:46 +04:00
echo Creating lib directory ...
2013-01-07 20:34:03 +04:00
md lib
2013-01-16 01:14:46 +04:00
if errorlevel 1 goto Error
:EnsureLibDirDone
2013-01-07 20:34:03 +04:00
:ImportLibs
echo Importing V8 libraries ...
2013-01-07 20:34:03 +04:00
copy build\v8-ia32\build\%mode%\v8-ia32.dll lib\ >nul
2013-01-16 01:14:46 +04:00
if errorlevel 1 goto Error
2013-01-07 20:34:03 +04:00
copy build\v8-ia32\build\%mode%\v8-ia32.pdb lib\ >nul
2013-01-16 01:14:46 +04:00
if errorlevel 1 goto Error
2013-01-07 20:34:03 +04:00
copy build\v8-ia32\build\%mode%\lib\v8-ia32.lib lib\ >nul
2013-01-16 01:14:46 +04:00
if errorlevel 1 goto Error
2013-01-07 20:34:03 +04:00
copy build\v8-x64\build\%mode%\v8-x64.dll lib\ >nul
2013-01-16 01:14:46 +04:00
if errorlevel 1 goto Error
2013-01-07 20:34:03 +04:00
copy build\v8-x64\build\%mode%\v8-x64.pdb lib\ >nul
2013-01-16 01:14:46 +04:00
if errorlevel 1 goto Error
2013-01-07 20:34:03 +04:00
copy build\v8-x64\build\%mode%\lib\v8-x64.lib lib\ >nul
2013-01-16 01:14:46 +04:00
if errorlevel 1 goto Error
:ImportLibsDone
:EnsureIncludeDir
if not exist include\ goto CreateIncludeDir
echo Removing old include directory ...
rd /s /q include
:CreateIncludeDir
echo Creating include directory ...
md include
if errorlevel 1 goto Error
:EnsureIncludeDirDone
:ImportHeaders
echo Importing V8 header files ...
2013-01-07 20:34:03 +04:00
copy build\v8\include\*.* include\ >nul
2013-01-16 01:14:46 +04:00
if errorlevel 1 goto Error
:ImportHeadersDone
:ImportPatchFile
echo Importing patch file ...
2013-01-07 20:34:03 +04:00
copy build\v8\V8Patch.txt .\ >nul
if errorlevel 1 goto Error
:ImportPatchFileDone
:ImportDone
::-----------------------------------------------------------------------------
:: exit
::-----------------------------------------------------------------------------
echo Succeeded!
2013-01-07 20:34:03 +04:00
goto End
:Error2
cd ..
:Error1
cd ..
2013-01-16 01:14:46 +04:00
:Error
echo *** THE PREVIOUS STEP FAILED ***
2013-01-07 20:34:03 +04:00
:End
cd ..\..\..
:Exit
2013-01-16 01:14:46 +04:00
endlocal