/vcbuild.bat
http://github.com/joyent/libuv · Batch · 127 lines · 107 code · 20 blank · 0 comment · 44 complexity · e429f74606caea9985c066e151021278 MD5 · raw file
- @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 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 svn co http://gyp.googlecode.com/svn/trunk@983 build/gyp
- svn co http://gyp.googlecode.com/svn/trunk@983 build/gyp
- if errorlevel 1 goto gyp_install_failed
- goto have_gyp
- :gyp_install_failed
- echo Failed to download gyp. Make sure you have subversion installed, or
- echo manually install gyp into %~dp0build\gyp.
- goto exit
- :have_gyp
- python gyp_uv -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 goto exit
- :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.
- goto exit
- :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