freeswitch/libs/win32/v8/build-v8.bat

103 lines
3.3 KiB
Batchfile

@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