-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathinstall.bat
105 lines (74 loc) · 3.66 KB
/
install.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
@echo off
if not exist %WORKING_DIR% mkdir %WORKING_DIR%
::..............................................................................
if /i "%BUILD_PROJECT%" == "llvm" goto :llvm
if /i "%BUILD_PROJECT%" == "clang" goto :clang
echo Invalid argument: '%1'
exit -1
::..............................................................................
:llvm
:: download LLVM sources
if /i "%BUILD_MASTER%" == "true" (
git clone --depth=1 %LLVM_MASTER_URL% %WORKING_DIR%\llvm-git
move %WORKING_DIR%\llvm-git\llvm %WORKING_DIR%
if exist %WORKING_DIR%\llvm-git\cmake move %WORKING_DIR%\llvm-git\cmake %WORKING_DIR%
) else (
powershell "Invoke-WebRequest -Uri %LLVM_DOWNLOAD_URL% -OutFile %WORKING_DIR%\%LLVM_DOWNLOAD_FILE%"
7z x -y %WORKING_DIR%\%LLVM_DOWNLOAD_FILE% -o%WORKING_DIR%
7z x -y %WORKING_DIR%\llvm-%LLVM_VERSION%.src.tar -o%WORKING_DIR%
ren %WORKING_DIR%\llvm-%LLVM_VERSION%.src llvm
if not "%LLVM_CMAKE_DOWNLOAD_URL%" == "" (
powershell "Invoke-WebRequest -Uri %LLVM_CMAKE_DOWNLOAD_URL% -OutFile %WORKING_DIR%\%LLVM_CMAKE_DOWNLOAD_FILE%"
7z x -y %WORKING_DIR%\%LLVM_CMAKE_DOWNLOAD_FILE% -o%WORKING_DIR%
7z x -y %WORKING_DIR%\cmake-%LLVM_VERSION%.src.tar -o%WORKING_DIR%
ren %WORKING_DIR%\cmake-%LLVM_VERSION%.src cmake
)
)
if "%CONFIGURATION%" == "Debug" goto dbg
goto :eof
:: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
:: on Debug builds:
:: - patch llvm-config/CMakeLists.txt to always build and install llvm-config
:: - patch AddLLVM.cmake to also install PDBs on Debug builds
:dbg
echo set_target_properties(llvm-config PROPERTIES EXCLUDE_FROM_ALL FALSE) >> %WORKING_DIR%\llvm\tools\llvm-config\CMakeLists.txt
echo install(TARGETS llvm-config RUNTIME DESTINATION bin) >> %WORKING_DIR%\llvm\tools\llvm-config\CMakeLists.txt
perl pdb-patch.pl %WORKING_DIR%\llvm\cmake\modules\AddLLVM.cmake
goto :eof
::..............................................................................
:clang
:: download Clang sources
if /i "%BUILD_MASTER%" == "true" (
git clone --depth=1 %LLVM_MASTER_URL% %WORKING_DIR%\llvm-git
move %WORKING_DIR%\llvm-git\clang %WORKING_DIR%
if exist %WORKING_DIR%\llvm-git\cmake move %WORKING_DIR%\llvm-git\cmake %WORKING_DIR%
) else (
powershell "Invoke-WebRequest -Uri %CLANG_DOWNLOAD_URL% -OutFile %WORKING_DIR%\%CLANG_DOWNLOAD_FILE%"
7z x -y %WORKING_DIR%\%CLANG_DOWNLOAD_FILE% -o%WORKING_DIR%
7z x -y %WORKING_DIR%\%CLANG_DOWNLOAD_FILE_PREFIX%%LLVM_VERSION%.src.tar -o%WORKING_DIR%
ren %WORKING_DIR%\%CLANG_DOWNLOAD_FILE_PREFIX%%LLVM_VERSION%.src clang
if not "%LLVM_CMAKE_DOWNLOAD_URL%" == "" (
powershell "Invoke-WebRequest -Uri %LLVM_CMAKE_DOWNLOAD_URL% -OutFile %WORKING_DIR%\%LLVM_CMAKE_DOWNLOAD_FILE%"
7z x -y %WORKING_DIR%\%LLVM_CMAKE_DOWNLOAD_FILE% -o%WORKING_DIR%
7z x -y %WORKING_DIR%\cmake-%LLVM_VERSION%.src.tar -o%WORKING_DIR%
ren %WORKING_DIR%\cmake-%LLVM_VERSION%.src cmake
)
)
perl compare-versions.pl %LLVM_VERSION% 11
if %errorlevel% == -1 goto nobigobj
perl compare-versions.pl %LLVM_VERSION% 12
if not %errorlevel% == -1 goto nobigobj
:: clang-11 requires /bigobj (fixed in clang-12)
set PATCH_TARGET=%WORKING_DIR%\clang\lib\ARCMigrate\CMakeLists.txt
echo Patching %PATCH_TARGET%...
echo. >> %PATCH_TARGET%
echo if (MSVC) >> %PATCH_TARGET%
echo set_source_files_properties(Transforms.cpp PROPERTIES COMPILE_FLAGS /bigobj) >> %PATCH_TARGET%
echo endif() >> %PATCH_TARGET%
:nobigobj
:: download and unpack LLVM release package from llvm-package-windows
powershell "Invoke-WebRequest -Uri %LLVM_RELEASE_URL% -OutFile %WORKING_DIR%\%LLVM_RELEASE_FILE%"
7z x -y %WORKING_DIR%\%LLVM_RELEASE_FILE% -o%WORKING_DIR%
;;
goto :eof
::..............................................................................