123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- @echo off
- cd %~dp0
- if /i "%1"=="help" goto help
- if /i "%1"=="--help" goto help
- if /i "%1"=="-help" goto help
- if /i "%1"=="/help" goto help
- if /i "%1"=="?" goto help
- if /i "%1"=="-?" goto help
- if /i "%1"=="--?" goto help
- if /i "%1"=="/?" goto help
- @rem Process arguments.
- set config=
- set target=Build
- set noprojgen=
- set nobuild=
- set run=
- set target_arch=ia32
- set vs_toolset=x86
- set platform=WIN32
- set library=static_library
- :next-arg
- if "%1"=="" goto args-done
- if /i "%1"=="debug" set config=Debug&goto arg-ok
- if /i "%1"=="release" set config=Release&goto arg-ok
- if /i "%1"=="test" set run=run-tests.exe&goto arg-ok
- if /i "%1"=="bench" set run=run-benchmarks.exe&goto arg-ok
- if /i "%1"=="clean" set target=Clean&goto arg-ok
- if /i "%1"=="noprojgen" set noprojgen=1&goto arg-ok
- if /i "%1"=="nobuild" set nobuild=1&goto arg-ok
- if /i "%1"=="x86" set target_arch=ia32&set platform=WIN32&set vs_toolset=x86&goto arg-ok
- if /i "%1"=="ia32" set target_arch=ia32&set platform=WIN32&set vs_toolset=x86&goto arg-ok
- if /i "%1"=="x64" set target_arch=x64&set platform=amd64&set vs_toolset=x64&goto arg-ok
- if /i "%1"=="shared" set library=shared_library&goto arg-ok
- if /i "%1"=="static" set library=static_library&goto arg-ok
- :arg-ok
- shift
- goto next-arg
- :args-done
- @rem Look for Visual Studio 2013
- if not defined VS120COMNTOOLS goto vc-set-2012
- if not exist "%VS120COMNTOOLS%\..\..\vc\vcvarsall.bat" goto vc-set-2012
- call "%VS120COMNTOOLS%\..\..\vc\vcvarsall.bat" %vs_toolset%
- set GYP_MSVS_VERSION=2013
- goto select-target
- @rem Look for Visual Studio 2012
- :vc-set-2012
- if not defined VS110COMNTOOLS goto vc-set-2010
- if not exist "%VS110COMNTOOLS%\..\..\vc\vcvarsall.bat" goto vc-set-2010
- call "%VS110COMNTOOLS%\..\..\vc\vcvarsall.bat" %vs_toolset%
- set GYP_MSVS_VERSION=2012
- goto select-target
- :vc-set-2010
- @rem Look for Visual Studio 2010
- if not defined VS100COMNTOOLS goto vc-set-2008
- if not exist "%VS100COMNTOOLS%\..\..\vc\vcvarsall.bat" goto vc-set-2008
- call "%VS100COMNTOOLS%\..\..\vc\vcvarsall.bat" %vs_toolset%
- set GYP_MSVS_VERSION=2010
- goto select-target
- :vc-set-2008
- @rem Look for Visual Studio 2008
- if not defined VS90COMNTOOLS goto vc-set-notfound
- if not exist "%VS90COMNTOOLS%\..\..\vc\vcvarsall.bat" goto vc-set-notfound
- call "%VS90COMNTOOLS%\..\..\vc\vcvarsall.bat" %vs_toolset%
- set GYP_MSVS_VERSION=2008
- goto select-target
- :vc-set-notfound
- echo Warning: Visual Studio not found
- :select-target
- if not "%config%"=="" goto project-gen
- if "%run%"=="run-tests.exe" set config=Debug& goto project-gen
- if "%run%"=="run-benchmarks.exe" set config=Release& goto project-gen
- set config=Debug
- :project-gen
- @rem Skip project generation if requested.
- if defined noprojgen goto msbuild
- @rem Generate the VS project.
- if exist build\gyp goto have_gyp
- echo git clone https://git.chromium.org/external/gyp.git build/gyp
- git clone https://git.chromium.org/external/gyp.git build/gyp
- if errorlevel 1 goto gyp_install_failed
- goto have_gyp
- :gyp_install_failed
- echo Failed to download gyp. Make sure you have git installed, or
- echo manually install gyp into %~dp0build\gyp.
- exit /b 1
- :have_gyp
- if not defined PYTHON set PYTHON="python"
- %PYTHON% gyp_uv.py -Dtarget_arch=%target_arch% -Dlibrary=%library%
- if errorlevel 1 goto create-msvs-files-failed
- if not exist uv.sln goto create-msvs-files-failed
- echo Project files generated.
- :msbuild
- @rem Skip project generation if requested.
- if defined nobuild goto run
- @rem Check if VS build env is available
- if not defined VCINSTALLDIR goto msbuild-not-found
- goto msbuild-found
- :msbuild-not-found
- echo Build skipped. To build, this file needs to run from VS cmd prompt.
- goto run
- @rem Build the sln with msbuild.
- :msbuild-found
- msbuild uv.sln /t:%target% /p:Configuration=%config% /p:Platform="%platform%" /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo
- if errorlevel 1 exit /b 1
- :run
- @rem Run tests if requested.
- if "%run%"=="" goto exit
- if not exist %config%\%run% goto exit
- echo running '%config%\%run%'
- %config%\%run%
- goto exit
- :create-msvs-files-failed
- echo Failed to create vc project files.
- exit /b 1
- :help
- echo vcbuild.bat [debug/release] [test/bench] [clean] [noprojgen] [nobuild] [x86/x64] [static/shared]
- echo Examples:
- echo vcbuild.bat : builds debug build
- echo vcbuild.bat test : builds debug build and runs tests
- echo vcbuild.bat release bench: builds release build and runs benchmarks
- goto exit
- :exit
|