summaryrefslogtreecommitdiff
path: root/build_llvm_package.bat
diff options
context:
space:
mode:
Diffstat (limited to 'build_llvm_package.bat')
-rwxr-xr-xbuild_llvm_package.bat46
1 files changed, 40 insertions, 6 deletions
diff --git a/build_llvm_package.bat b/build_llvm_package.bat
index b7c8df8b..dbbb69d4 100755
--- a/build_llvm_package.bat
+++ b/build_llvm_package.bat
@@ -35,6 +35,14 @@ if "%2" == "test" (
set git_ref=llvmorg-%revision%
set package_version=%revision%
)
+
+REM Extract the release version from a revision of the kind x.y.z-rcN
+REM FIXME: Handle other kinds of revisions
+REM FIXME: Error out if we get smth inappropriate.
+for /f "delims=-" %%i in ("%revision%") do (
+ set release_version=%%i
+)
+
set clang_format_vs_version=13.0.0.%datestamp%
set build_dir=llvm_package_%package_version%
@@ -56,14 +64,15 @@ mv llvm-project-* llvm-project || exit /b
REM Setting CMAKE_CL_SHOWINCLUDES_PREFIX to work around PR27226.
set cmake_flags=^
-DCMAKE_BUILD_TYPE=Release ^
+ -DCMAKE_TRY_COMPILE_CONFIGURATION=Release ^
-DLLVM_ENABLE_ASSERTIONS=ON ^
-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON ^
-DLLVM_BUILD_LLVM_C_DYLIB=ON ^
-DCMAKE_INSTALL_UCRT_LIBRARIES=ON ^
-DPACKAGE_VERSION=%package_version% ^
-DCMAKE_CL_SHOWINCLUDES_PREFIX="Note: including file: " ^
- -DLLVM_DEFAULT_TARGET_TRIPLE=aarch64-windows-msvc ^
- -DLLVM_HOST_TRIPLE=aarch64-windows-msvc ^
+ -DLLVM_DEFAULT_TARGET_TRIPLE=aarch64-pc-windows-msvc ^
+ -DLLVM_HOST_TRIPLE=aarch64-pc-windows-msvc ^
-DLLVM_TARGET_ARCH=AArch64 ^
-DCLANG_DEFAULT_LINKER=lld
@@ -76,11 +85,22 @@ set CC=clang-cl
set CXX=clang-cl
mkdir build32_stage0
cd build32_stage0
+REM Note that we only enable compiler-rt so we can build the builtins, which are
+REM needed in the next stage when building flang
cmake -GNinja %cmake_flags% ^
- -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld" ^
+ -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;compiler-rt" ^
-DLLVM_TARGETS_TO_BUILD="AArch64" ^
- -DCMAKE_C_FLAGS="-fms-compatibility-version=19.14" ^
- -DCMAKE_CXX_FLAGS="-fms-compatibility-version=19.14" ^
+ -DCMAKE_C_FLAGS="-fms-compatibility-version=19.20" ^
+ -DCMAKE_CXX_FLAGS="-fms-compatibility-version=19.20" ^
+ -DCMAKE_COMPILER_RT_BUILD_BUILTINS=ON ^
+ -DCMAKE_COMPILER_RT_BUILD_CRT=OFF ^
+ -DCMAKE_COMPILER_RT_BUILD_SANITIZERS=OFF ^
+ -DCMAKE_COMPILER_RT_BUILD_XRAY=OFF ^
+ -DCMAKE_COMPILER_RT_BUILD_LIBFUZZER=OFF ^
+ -DCMAKE_COMPILER_RT_BUILD_PROFILE=OFF ^
+ -DCMAKE_COMPILER_RT_BUILD_MEMPROF=OFF ^
+ -DCMAKE_COMPILER_RT_BUILD_ORC=OFF ^
+ -DCMAKE_COMPILER_RT_BUILD_GWP_ASAN=OFF ^
..\llvm-project\llvm || exit /b
ninja all || ninja all || ninja all || exit /b
REM ninja check || ninja check || ninja check || exit /b
@@ -95,13 +115,27 @@ mkdir build32
cd build32
set CC=..\build32_stage0\bin\clang-cl
set CXX=..\build32_stage0\bin\clang-cl
+set builtins=%cd%\..\build32_stage0\lib\clang\%release_version%\lib\windows\clang_rt.builtins-aarch64.lib
+set "LLDB_USE_LLDB_SERVER=1"
cmake -GNinja %cmake_flags% ^
- -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;compiler-rt" ^
+ -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;flang;lld;lldb;compiler-rt" ^
+ -DCMAKE_C_FLAGS="-fms-compatibility-version=19.20" ^
+ -DCMAKE_CXX_FLAGS="-fms-compatibility-version=19.20" ^
-DCOMPILER_RT_BUILD_SANITIZERS=OFF ^
-DCOMPILER_RT_BUILD_MEMPROF=OFF ^
-DCOMPILER_RT_BUILD_XRAY=OFF ^
+ -DLLDB_ENABLE_PYTHON=ON ^
+ -DLLDB_RELOCATABLE_PYTHON=ON ^
+ -DLLDB_EMBED_PYTHON_HOME=OFF ^
+ -DCMAKE_EXE_LINKER_FLAGS=%builtins% ^
+ -DCMAKE_SHARED_LINKER_FLAGS=%builtins% ^
+ -DCMAKE_STATIC_LINKER_FLAGS=%builtins% ^
+ -DLLDB_TEST_USER_ARGS="--skip-category=watchpoint" ^
+ -DCMAKE_MODULE_LINKER_FLAGS=%builtins% ^
..\llvm-project\llvm || exit /b
ninja all || ninja all || ninja all || exit /b
+ninja check-lldb || ninja check-lldb || ninja check-lldb
+ninja check-flang || ninja check-flang || ninja check-flang
REM ninja check || ninja check || ninja check || exit /b
REM ninja check-clang || ninja check-clang || ninja check-clang || exit /b
REM ninja check-lld || ninja check-lld || ninja check-lld || exit /b