4 REM Script for building the LLVM installer on Windows,
\r
5 REM used for the the weekly snapshots at http://www.llvm.org/builds.
\r
7 REM Usage: build_llvm_package.bat <revision>
\r
11 REM Visual Studio 2013, CMake, Ninja, SVN, GNUWin32,
\r
12 REM NSIS with the strlen_8192 patch,
\r
13 REM Visual Studio 2013 SDK (for the clang-format plugin).
\r
16 REM You may need to modify the paths below:
\r
17 set vcdir=c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC
\r
18 set PATH=%PATH%;c:\gnuwin32\bin
\r
22 set package_version=3.8.0-r%revision%
\r
23 set clang_format_vs_version=3.8.0.%revision%
\r
24 set build_dir=llvm_package_%revision%
\r
26 echo Branch: %branch%
\r
27 echo Revision: %revision%
\r
28 echo Package version: %package_version%
\r
29 echo Clang format plugin version: %clang_format_vs_version%
\r
30 echo Build dir: %build_dir%
\r
37 echo Checking out %branch% at r%revision%...
\r
38 svn.exe export -r %revision% http://llvm.org/svn/llvm-project/llvm/%branch% llvm || exit /b
\r
39 svn.exe export -r %revision% http://llvm.org/svn/llvm-project/cfe/%branch% llvm/tools/clang || exit /b
\r
40 svn.exe export -r %revision% http://llvm.org/svn/llvm-project/clang-tools-extra/%branch% llvm/tools/clang/tools/extra || exit /b
\r
41 svn.exe export -r %revision% http://llvm.org/svn/llvm-project/lld/%branch% llvm/tools/lld || exit /b
\r
42 svn.exe export -r %revision% http://llvm.org/svn/llvm-project/compiler-rt/%branch% llvm/projects/compiler-rt || exit /b
\r
45 set 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%
\r
47 REM TODO: Run all tests, including lld and compiler-rt.
\r
49 call "%vcdir%/vcvarsall.bat" x86
\r
52 mkdir build32_stage0
\r
54 cmake -GNinja %cmake_flags% ..\llvm || exit /b
\r
55 ninja all || exit /b
\r
56 ninja check || exit /b
\r
57 ninja check-clang || exit /b
\r
62 set CC=..\build32_stage0\bin\clang-cl
\r
63 set CXX=..\build32_stage0\bin\clang-cl
\r
64 cmake -GNinja %cmake_flags% -DBUILD_CLANG_FORMAT_VS_PLUGIN=ON ..\llvm || exit /b
\r
65 ninja all || exit /b
\r
66 ninja check || exit /b
\r
67 ninja check-clang || exit /b
\r
68 copy ..\llvm\tools\clang\tools\clang-format-vs\ClangFormat\bin\Release\ClangFormat.vsix ClangFormat-r%revision%.vsix
\r
69 ninja package || exit /b
\r
73 call "%vcdir%/vcvarsall.bat" amd64
\r
76 mkdir build64_stage0
\r
78 cmake -GNinja %cmake_flags% ..\llvm || exit /b
\r
79 ninja all || exit /b
\r
80 ninja check || exit /b
\r
81 ninja check-clang || exit /b
\r
86 set CC=..\build64_stage0\bin\clang-cl
\r
87 set CXX=..\build64_stage0\bin\clang-cl
\r
88 cmake -GNinja %cmake_flags% ..\llvm || exit /b
\r
89 ninja all || exit /b
\r
90 ninja check || exit /b
\r
91 ninja check-clang || exit /b
\r
92 ninja package || exit /b
\r