123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- @ECHO OFF
- REM First argument is the target architecture
- REM Second argument is "Debug" or "Release" mode
- REM Third argument is the V8 root directory path
- REM Fourth argument is the version of Visual Studio (optional)
- IF "%1" == "" GOTO Fail
- IF "%2" == "" GOTO Fail
- IF "%3" == "" GOTO Fail
- REM Go into the V8 lib directory
- cd "%3"
- REM Check the last build info, so we know if we're supposed to build again or not
- SET /P LAST_BUILD_INFO=<last_build
- IF "%1-%2" == "%LAST_BUILD_INFO%" (
- IF EXIST ".\build\%2\v8.dll" (
- ECHO V8 is already built!
- SET COPY_FILES_ONLY=1
- )
- )
- SET LIB_DEST_DIR=
- IF "%VisualStudioVersion%" == "11.0" (
- SET VS_VERSION=-Gmsvs_version=2012
- ECHO Forcing build to use Visual Studio 2012
- ) ELSE IF "%VisualStudioVersion%" == "12.0" (
- SET VS_VERSION=-Gmsvs_version=2013
- ECHO Forcing build to use Visual Studio 2013
- ) ELSE IF "%VisualStudioVersion%" == "14.0" (
- SET VS_VERSION=-Gmsvs_version=2015
- ECHO Forcing build to use Visual Studio 2015
- ) ELSE IF NOT "%4" == "" (
- SET VS_VERSION=-Gmsvs_version=%4
- ECHO Forcing build to use Visual Studio %4
- )
- IF "%1" == "x64" (
- REM If this is a 32-bit system (but we target x64), we must disable the snapshot feature to get it to build.
- IF NOT EXIST "%PROGRAMFILES(X86)%" (
- SET SKIP_V8_SNAPSHOT=-Dv8_use_snapshot=false
- )
- )
- IF "%1" == "x64" (
- IF NOT "%SKIP_V8_SNAPSHOT%" == "" ECHO Targeting x64 platform on a x86 system, disabling V8 snapshout feature to make this work [%SKIP_V8_SNAPSHOT%]
- IF NOT "%COPY_FILES_ONLY%" == "1" .\third_party\python_26\python.exe build\gyp_v8 -Dtarget_arch=x64 -Dcomponent=shared_library %SKIP_V8_SNAPSHOT% %VS_VERSION%
- IF ERRORLEVEL 1 GOTO Fail
- SET LIB_DEST_DIR=..\..\x64\%2\
- )
- IF "%1" == "x86" (
- IF NOT "%COPY_FILES_ONLY%" == "1" .\third_party\python_26\python.exe build\gyp_v8 -Dcomponent=shared_library %VS_VERSION%
- IF ERRORLEVEL 1 GOTO Fail
- SET LIB_DEST_DIR=..\..\Win32\%2\
- )
- IF "%LIB_DEST_DIR%" == "" GOTO Fail
- IF "%COPY_FILES_ONLY%" == "1" GOTO CopyFiles
- REM Clean build before we continue
- REM First try to clean using the solution path (works for most VS versions)
- msbuild "tools\gyp\v8.sln" /t:"_tools_\_gyp_\v8:Clean" /p:Configuration=%2 /clp:WarningsOnly
- IF NOT ERRORLEVEL 1 GOTO CleanDone
- REM If clean using solution path didn't work, try to build without the path (works for some VS versions...)
- msbuild "tools\gyp\v8.sln" /t:v8:Clean /p:Configuration=%2
- IF ERRORLEVEL 1 GOTO Fail
- :CleanDone
- REM Just to make sure that everything is cleaned up
- rmdir /S /Q .\build\%2
- REM Build the V8 library
- REM First try to build using the solution path (works for most VS versions)
- msbuild "tools\gyp\v8.sln" /t:"_tools_\_gyp_\v8:Rebuild" /p:Configuration=%2 /clp:WarningsOnly
- IF NOT ERRORLEVEL 1 GOTO CopyFiles
- REM If build using solution path didn't work, try to build without the path (works for some VS versions...)
- msbuild "tools\gyp\v8.sln" /t:v8:Rebuild /p:Configuration=%2
- IF ERRORLEVEL 1 GOTO Fail
- :CopyFiles
- xcopy /C /F /R /Y .\build\%2\icui18n.dll %LIB_DEST_DIR%
- IF ERRORLEVEL 1 GOTO Fail
- xcopy /C /F /R /Y .\build\%2\icuuc.dll %LIB_DEST_DIR%
- IF ERRORLEVEL 1 GOTO Fail
- xcopy /C /F /R /Y .\build\%2\v8.dll %LIB_DEST_DIR%
- IF ERRORLEVEL 1 GOTO Fail
- ECHO %1-%2> last_build
- exit /b 0
- :Fail
- REM Delete the last_build info if this build failed!
- @del /Q last_build
- exit /b 1
|