Skip to content

Commit a15f5fc

Browse files
committed
Prepare compiler-rt build by trying to build Clang.
1 parent 038ccdf commit a15f5fc

File tree

3 files changed

+102
-11
lines changed

3 files changed

+102
-11
lines changed

build.bat

+27
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,20 @@
33
%WORKING_DRIVE%
44
cd %WORKING_DIR%
55

6+
::..............................................................................
7+
68
set THIS_DIR=%CD%
79

10+
if /i "%BUILD_PROJECT%" == "llvm" goto :llvm
11+
if /i "%BUILD_PROJECT%" == "compiler-rt" goto :compilerrt
12+
13+
echo Invalid argument: '%1'
14+
exit -1
15+
16+
:: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17+
18+
:llvm
19+
820
cd llvm-project
921

1022
mkdir llvm\build
@@ -19,3 +31,18 @@ cd %THIS_DIR%
1931

2032
goto :eof
2133

34+
:: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35+
36+
:compilerrt
37+
38+
mkdir clang\build
39+
cd clang\build
40+
cmake .. %CLANG_CMAKE_CONFIGURE_FLAGS%
41+
cmake --build . %CMAKE_BUILD_FLAGS%
42+
cmake --build . --target install %CMAKE_BUILD_FLAGS%
43+
44+
cd %THIS_DIR%
45+
46+
7z a -t7z %GITHUB_WORKSPACE%\%CLANG_RELEASE_FILE% %CLANG_RELEASE_NAME%
47+
48+
goto :eof

install.bat

+36-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ if not exist %WORKING_DIR% mkdir %WORKING_DIR%
55
::..............................................................................
66

77
if /i "%BUILD_PROJECT%" == "llvm" goto :llvm
8-
if /i "%BUILD_PROJECT%" == "clang" goto :clang
8+
if /i "%BUILD_PROJECT%" == "compiler-rt" goto :compilerrt
99

1010
echo Invalid argument: '%1'
1111
exit -1
@@ -45,3 +45,38 @@ perl pdb-patch.pl %WORKING_DIR%\llvm-project\llvm\cmake\modules\AddLLVM.cmake
4545

4646
goto :eof
4747

48+
::..............................................................................
49+
50+
:compilerrt
51+
52+
:: download Clang sources
53+
54+
if /i "%BUILD_MASTER%" == "true" (
55+
git clone --depth=1 %LLVM_MASTER_URL% %WORKING_DIR%\llvm-git
56+
move %WORKING_DIR%\llvm-git\clang %WORKING_DIR%
57+
if exist %WORKING_DIR%\llvm-git\cmake move %WORKING_DIR%\llvm-git\cmake %WORKING_DIR%
58+
) else (
59+
powershell "Invoke-WebRequest -Uri %CLANG_DOWNLOAD_URL% -OutFile %WORKING_DIR%\%CLANG_DOWNLOAD_FILE%"
60+
7z x -y %WORKING_DIR%\%CLANG_DOWNLOAD_FILE% -o%WORKING_DIR%
61+
7z x -y %WORKING_DIR%\%CLANG_DOWNLOAD_FILE_PREFIX%%LLVM_VERSION%.src.tar -o%WORKING_DIR%
62+
ren %WORKING_DIR%\%CLANG_DOWNLOAD_FILE_PREFIX%%LLVM_VERSION%.src clang
63+
64+
if not "%LLVM_CMAKE_DOWNLOAD_URL%" == "" (
65+
powershell "Invoke-WebRequest -Uri %LLVM_CMAKE_DOWNLOAD_URL% -OutFile %WORKING_DIR%\%LLVM_CMAKE_DOWNLOAD_FILE%"
66+
7z x -y %WORKING_DIR%\%LLVM_CMAKE_DOWNLOAD_FILE% -o%WORKING_DIR%
67+
7z x -y %WORKING_DIR%\cmake-%LLVM_VERSION%.src.tar -o%WORKING_DIR%
68+
ren %WORKING_DIR%\cmake-%LLVM_VERSION%.src cmake
69+
)
70+
)
71+
72+
:nobigobj
73+
74+
:: download and unpack LLVM release package from llvm-package-windows
75+
76+
powershell "Invoke-WebRequest -Uri %LLVM_RELEASE_URL% -OutFile %WORKING_DIR%\%LLVM_RELEASE_FILE%"
77+
7z x -y %WORKING_DIR%\%LLVM_RELEASE_FILE% -o%WORKING_DIR%
78+
;;
79+
80+
goto :eof
81+
82+
::..............................................................................

set-env.bat

+39-10
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,15 @@ exit -1
3737

3838
:x86
3939
set TARGET_CPU=x86
40-
set CMAKE_GENERATOR_SUFFIX=
40+
set CMAKE_GENERATOR_SUFFIX= x86
41+
set CMAKE_ARCH_OPTIONS=-A Win32
4142
shift
4243
goto :loop
4344

4445
:amd64
4546
set TARGET_CPU=amd64
4647
set CMAKE_GENERATOR_SUFFIX=
48+
set CMAKE_ARCH_OPTIONS=-A x64
4749
shift
4850
goto :loop
4951

@@ -159,7 +161,6 @@ set BASE_DOWNLOAD_URL=https://github.com/llvm/llvm-project/releases/download/llv
159161
set LLVM_MASTER_URL=https://github.com/llvm/llvm-project
160162
set LLVM_DOWNLOAD_FILE=llvm-project-%LLVM_VERSION%.src%TAR_SUFFIX%
161163
set LLVM_DOWNLOAD_URL=%BASE_DOWNLOAD_URL%/%LLVM_DOWNLOAD_FILE%
162-
163164
set LLVM_RELEASE_NAME=llvm-%LLVM_VERSION%-windows-%TARGET_CPU%-%TOOLCHAIN%-%CRT%%DEBUG_SUFFIX%
164165
set LLVM_RELEASE_FILE=%LLVM_RELEASE_NAME%.7z
165166
set LLVM_RELEASE_DIR=%WORKING_DIR%\%LLVM_RELEASE_NAME%
@@ -188,6 +189,29 @@ set LLVM_CMAKE_CONFIGURE_FLAGS= ^
188189

189190
:: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
190191

192+
set CLANG_MASTER_URL=https://github.com/llvm-mirror/clang
193+
set CLANG_DOWNLOAD_FILE=%CLANG_DOWNLOAD_FILE_PREFIX%%LLVM_VERSION%.src%TAR_SUFFIX%
194+
set CLANG_DOWNLOAD_URL=%BASE_DOWNLOAD_URL%/%CLANG_DOWNLOAD_FILE%
195+
set CLANG_RELEASE_NAME=clang-%LLVM_VERSION%-windows-%TARGET_CPU%-%TOOLCHAIN%-%CRT%%DEBUG_SUFFIX%
196+
set CLANG_RELEASE_FILE=%CLANG_RELEASE_NAME%.7z
197+
set CLANG_RELEASE_DIR=%WORKING_DIR%\%CLANG_RELEASE_NAME%
198+
set CLANG_RELEASE_DIR=%CLANG_RELEASE_DIR:\=/%
199+
200+
set CLANG_CMAKE_CONFIGURE_FLAGS= ^
201+
-G "%CMAKE_GENERATOR%" ^
202+
%CMAKE_OPTIONS% ^
203+
-DCMAKE_INSTALL_PREFIX=%CLANG_RELEASE_DIR% ^
204+
-DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=TRUE ^
205+
-DLLVM_INCLUDE_TESTS=OFF ^
206+
-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON ^
207+
-DCLANG_INCLUDE_DOCS=OFF ^
208+
-DCLANG_INCLUDE_TESTS=OFF ^
209+
-DLLVM_DIR=%LLVM_RELEASE_DIR%/lib/cmake/llvm ^
210+
%LLVM_CMAKE_CRT_FLAGS% ^
211+
%CLANG_CMAKE_CONFIGURE_EXTRA_FLAGS%
212+
213+
:: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
214+
191215
set CMAKE_BUILD_FLAGS= ^
192216
--config %CONFIGURATION% ^
193217
-- ^
@@ -196,15 +220,20 @@ set CMAKE_BUILD_FLAGS= ^
196220
/maxcpucount ^
197221
/consoleloggerparameters:Summary
198222

199-
set DEPLOY_FILE=%LLVM_RELEASE_FILE%
223+
if /i "%BUILD_PROJECT%" == "llvm" set DEPLOY_FILE=%LLVM_RELEASE_FILE%
224+
if /i "%BUILD_PROJECT%" == "compiler-rt" set DEPLOY_FILE=%CLANG_RELEASE_FILE%
200225

201226
echo ---------------------------------------------------------------------------
202-
echo LLVM_VERSION: %LLVM_VERSION%
203-
echo LLVM_MASTER_URL: %LLVM_MASTER_URL%
204-
echo LLVM_DOWNLOAD_URL: %LLVM_DOWNLOAD_URL%
205-
echo LLVM_RELEASE_FILE: %LLVM_RELEASE_FILE%
206-
echo LLVM_RELEASE_URL: %LLVM_RELEASE_URL%
207-
echo LLVM_CMAKE_CONFIGURE_FLAGS: %LLVM_CMAKE_CONFIGURE_FLAGS%
227+
echo LLVM_VERSION: %LLVM_VERSION%
228+
echo LLVM_MASTER_URL: %LLVM_MASTER_URL%
229+
echo LLVM_DOWNLOAD_URL: %LLVM_DOWNLOAD_URL%
230+
echo LLVM_RELEASE_FILE: %LLVM_RELEASE_FILE%
231+
echo LLVM_RELEASE_URL: %LLVM_RELEASE_URL%
232+
echo LLVM_CMAKE_CONFIGURE_FLAGS: %LLVM_CMAKE_CONFIGURE_FLAGS%
208233
echo ---------------------------------------------------------------------------
209-
echo DEPLOY_FILE: %DEPLOY_FILE%
234+
echo CLANG_DOWNLOAD_URL: %CLANG_DOWNLOAD_URL%
235+
echo CLANG_RELEASE_FILE: %CLANG_RELEASE_FILE%
236+
echo CLANG_CMAKE_CONFIGURE_FLAGS: %CLANG_CMAKE_CONFIGURE_FLAGS%
210237
echo ---------------------------------------------------------------------------
238+
echo DEPLOY_FILE: %DEPLOY_FILE%
239+
echo ---------------------------------------------------------------------------

0 commit comments

Comments
 (0)