1*9880d681SAndroid Build Coastguard Worker@echo off 2*9880d681SAndroid Build Coastguard Workersetlocal 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard WorkerREM Script for building the LLVM installer on Windows, 5*9880d681SAndroid Build Coastguard WorkerREM used for the the weekly snapshots at http://www.llvm.org/builds. 6*9880d681SAndroid Build Coastguard WorkerREM 7*9880d681SAndroid Build Coastguard WorkerREM Usage: build_llvm_package.bat <revision> 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard WorkerREM Prerequisites: 10*9880d681SAndroid Build Coastguard WorkerREM 11*9880d681SAndroid Build Coastguard WorkerREM Visual Studio 2013, CMake, Ninja, SVN, GNUWin32, 12*9880d681SAndroid Build Coastguard WorkerREM NSIS with the strlen_8192 patch, 13*9880d681SAndroid Build Coastguard WorkerREM Visual Studio 2013 SDK (for the clang-format plugin). 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard WorkerREM You may need to modify the paths below: 17*9880d681SAndroid Build Coastguard Workerset vcdir=c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC 18*9880d681SAndroid Build Coastguard Workerset PATH=%PATH%;c:\gnuwin32\bin 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerset revision=%1 21*9880d681SAndroid Build Coastguard Workerset branch=trunk 22*9880d681SAndroid Build Coastguard Workerset package_version=3.9.0-r%revision% 23*9880d681SAndroid Build Coastguard Workerset clang_format_vs_version=3.9.0.%revision% 24*9880d681SAndroid Build Coastguard Workerset build_dir=llvm_package_%revision% 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Workerecho Branch: %branch% 27*9880d681SAndroid Build Coastguard Workerecho Revision: %revision% 28*9880d681SAndroid Build Coastguard Workerecho Package version: %package_version% 29*9880d681SAndroid Build Coastguard Workerecho Clang format plugin version: %clang_format_vs_version% 30*9880d681SAndroid Build Coastguard Workerecho Build dir: %build_dir% 31*9880d681SAndroid Build Coastguard Workerecho. 32*9880d681SAndroid Build Coastguard Workerpause 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Workermkdir %build_dir% 35*9880d681SAndroid Build Coastguard Workercd %build_dir% 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Workerecho Checking out %branch% at r%revision%... 38*9880d681SAndroid Build Coastguard Workersvn.exe export -r %revision% http://llvm.org/svn/llvm-project/llvm/%branch% llvm || exit /b 39*9880d681SAndroid Build Coastguard Workersvn.exe export -r %revision% http://llvm.org/svn/llvm-project/cfe/%branch% llvm/tools/clang || exit /b 40*9880d681SAndroid Build Coastguard Workersvn.exe export -r %revision% http://llvm.org/svn/llvm-project/clang-tools-extra/%branch% llvm/tools/clang/tools/extra || exit /b 41*9880d681SAndroid Build Coastguard Workersvn.exe export -r %revision% http://llvm.org/svn/llvm-project/lld/%branch% llvm/tools/lld || exit /b 42*9880d681SAndroid Build Coastguard Workersvn.exe export -r %revision% http://llvm.org/svn/llvm-project/compiler-rt/%branch% llvm/projects/compiler-rt || exit /b 43*9880d681SAndroid Build Coastguard Workersvn.exe export -r %revision% http://llvm.org/svn/llvm-project/openmp/%branch% llvm/projects/openmp || exit /b 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Worker 46*9880d681SAndroid Build Coastguard WorkerREM Setting CMAKE_CL_SHOWINCLUDES_PREFIX to work around PR27226. 47*9880d681SAndroid Build Coastguard Workerset cmake_flags=-DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON -DLLVM_USE_CRT_RELEASE=MT -DCLANG_FORMAT_VS_VERSION=%clang_format_vs_version% -DPACKAGE_VERSION=%package_version% -DCMAKE_CL_SHOWINCLUDES_PREFIX="Note: including file: " 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard WorkerREM TODO: Run all tests, including lld and compiler-rt. 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Workercall "%vcdir%/vcvarsall.bat" x86 52*9880d681SAndroid Build Coastguard Workerset CC= 53*9880d681SAndroid Build Coastguard Workerset CXX= 54*9880d681SAndroid Build Coastguard Workermkdir build32_stage0 55*9880d681SAndroid Build Coastguard Workercd build32_stage0 56*9880d681SAndroid Build Coastguard Workercmake -GNinja %cmake_flags% ..\llvm || exit /b 57*9880d681SAndroid Build Coastguard Workerninja all || exit /b 58*9880d681SAndroid Build Coastguard Workerninja check || exit /b 59*9880d681SAndroid Build Coastguard Workerninja check-clang || exit /b 60*9880d681SAndroid Build Coastguard Workercd.. 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Workermkdir build32 63*9880d681SAndroid Build Coastguard Workercd build32 64*9880d681SAndroid Build Coastguard Workerset CC=..\build32_stage0\bin\clang-cl 65*9880d681SAndroid Build Coastguard Workerset CXX=..\build32_stage0\bin\clang-cl 66*9880d681SAndroid Build Coastguard Workercmake -GNinja %cmake_flags% -DBUILD_CLANG_FORMAT_VS_PLUGIN=ON ..\llvm || exit /b 67*9880d681SAndroid Build Coastguard Workerninja all || exit /b 68*9880d681SAndroid Build Coastguard Workerninja check || exit /b 69*9880d681SAndroid Build Coastguard Workerninja check-clang || exit /b 70*9880d681SAndroid Build Coastguard Workercopy ..\llvm\tools\clang\tools\clang-format-vs\ClangFormat\bin\Release\ClangFormat.vsix ClangFormat-r%revision%.vsix 71*9880d681SAndroid Build Coastguard Workerninja package || exit /b 72*9880d681SAndroid Build Coastguard Workercd .. 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard Workercall "%vcdir%/vcvarsall.bat" amd64 76*9880d681SAndroid Build Coastguard Workerset CC= 77*9880d681SAndroid Build Coastguard Workerset CXX= 78*9880d681SAndroid Build Coastguard Workermkdir build64_stage0 79*9880d681SAndroid Build Coastguard Workercd build64_stage0 80*9880d681SAndroid Build Coastguard Workercmake -GNinja %cmake_flags% ..\llvm || exit /b 81*9880d681SAndroid Build Coastguard Workerninja all || exit /b 82*9880d681SAndroid Build Coastguard Workerninja check || exit /b 83*9880d681SAndroid Build Coastguard Workerninja check-clang || exit /b 84*9880d681SAndroid Build Coastguard Workercd.. 85*9880d681SAndroid Build Coastguard Worker 86*9880d681SAndroid Build Coastguard Workermkdir build64 87*9880d681SAndroid Build Coastguard Workercd build64 88*9880d681SAndroid Build Coastguard Workerset CC=..\build64_stage0\bin\clang-cl 89*9880d681SAndroid Build Coastguard Workerset CXX=..\build64_stage0\bin\clang-cl 90*9880d681SAndroid Build Coastguard Workercmake -GNinja %cmake_flags% ..\llvm || exit /b 91*9880d681SAndroid Build Coastguard Workerninja all || exit /b 92*9880d681SAndroid Build Coastguard Workerninja check || exit /b 93*9880d681SAndroid Build Coastguard Workerninja check-clang || exit /b 94*9880d681SAndroid Build Coastguard Workerninja package || exit /b 95*9880d681SAndroid Build Coastguard Workercd .. 96