@@ -26,21 +26,65 @@ set(LLVM_DEFAULT_TARGET_TRIPLE aarch64-unknown-windows-msvc CACHE STRING "")
26
26
set (LLVM_APPEND_VC_REV NO CACHE BOOL "" )
27
27
set (LLVM_ENABLE_PER_TARGET_RUNTIME_DIR YES CACHE BOOL "" )
28
28
set (LLVM_ENABLE_PYTHON YES CACHE BOOL "" )
29
- set (LLVM_RUNTIME_TARGETS
29
+
30
+ set (default_targets
31
+ x86_64-unknown-windows-msvc
30
32
aarch64-unknown-windows-msvc
31
- CACHE STRING "" )
33
+ i686-unknown-windows-msvc )
34
+ set (LLVM_RUNTIME_TARGETS ${default_targets} CACHE STRING "" )
35
+
36
+ # Build the android builtins if NDK path is provided.
37
+ if (NOT "$ENV{NDKPATH} " STREQUAL "" )
38
+ list (APPEND default_targets
39
+ aarch64-unknown-linux-android
40
+ x86_64-unknown-linux-android
41
+ i686-unknown-linux-android
42
+ armv7-unknown-linux-androideabi)
43
+ endif ()
44
+
45
+ set (LLVM_BUILTIN_TARGETS ${default_targets} CACHE STRING "" )
46
+
32
47
foreach (target ${LLVM_RUNTIME_TARGETS} )
33
48
set (RUNTIMES_${target} _LLVM_ENABLE_RUNTIMES
34
49
compiler-rt
35
50
CACHE STRING "" )
36
51
set (RUNTIMES_${target} _CMAKE_MT mt CACHE STRING "" )
37
52
set (RUNTIMES_${target} _CMAKE_SYSTEM_NAME Windows CACHE STRING "" )
38
53
set (RUNTIMES_${target} _CMAKE_BUILD_TYPE Release CACHE STRING "" )
54
+ set (RUNTIMES_${target} _COMPILER_RT_BUILD_BUILTINS YES CACHE BOOL "" )
39
55
set (RUNTIMES_${target} _COMPILER_RT_BUILD_CRT NO CACHE BOOL "" )
40
56
set (RUNTIMES_${target} _COMPILER_RT_BUILD_LIBFUZZER NO CACHE BOOL "" )
57
+ set (RUNTIMES_${target} _COMPILER_RT_BUILD_ORC NO CACHE BOOL "" )
41
58
set (RUNTIMES_${target} _COMPILER_RT_BUILD_PROFILE YES CACHE BOOL "" )
42
- set (RUNTIMES_${target} _COMPILER_RT_BUILD_SANITIZERS NO CACHE BOOL "" )
43
59
set (RUNTIMES_${target} _COMPILER_RT_BUILD_XRAY NO CACHE BOOL "" )
60
+ # Sanitizers will be configured, but not built. We have separate build
61
+ # steps for that, because we need a different shell for each target.
62
+ set (RUNTIMES_${target} _COMPILER_RT_BUILD_SANITIZERS NO CACHE BOOL "" )
63
+ endforeach ()
64
+
65
+ foreach (target ${LLVM_BUILTIN_TARGETS} )
66
+ set (BUILTINS_${target} _CMAKE_MT mt CACHE STRING "" )
67
+ if (${target} MATCHES windows-msvc )
68
+ set (BUILTINS_${target} _CMAKE_SYSTEM_NAME Windows CACHE STRING "" )
69
+ elseif (${target} MATCHES linux-android)
70
+ # Use a single 'linux' directory and arch-based lib names on Android.
71
+ set (BUILTINS_${target} _LLVM_ENABLE_PER_TARGET_RUNTIME_DIR NO CACHE BOOL "" )
72
+ set (BUILTINS_${target} _CMAKE_SYSTEM_NAME Android CACHE STRING "" )
73
+ if (${target} MATCHES aarch64)
74
+ set (BUILTINS_${target} _CMAKE_ANDROID_ARCH_ABI arm64-v8a CACHE STRING "" )
75
+ elseif (${target} MATCHES armv7)
76
+ set (BUILTINS_${target} _CMAKE_ANDROID_ARCH_ABI armeabi-v7a CACHE STRING "" )
77
+ elseif (${target} MATCHES i686)
78
+ set (BUILTINS_${target} _CMAKE_ANDROID_ARCH_ABI x86 CACHE STRING "" )
79
+ else ()
80
+ set (BUILTINS_${target} _CMAKE_ANDROID_ARCH_ABI x86_64 CACHE STRING "" )
81
+ endif ()
82
+ set (BUILTINS_${target} _CMAKE_ANDROID_NDK $ENV{NDKPATH} CACHE PATH "" )
83
+ set (BUILTINS_${target} _CMAKE_ANDROID_API 21 CACHE STRING "" )
84
+ set (BUILTINS_${target} _CMAKE_C_COMPILER_TARGET "${target} 21" CACHE STRING "" )
85
+ set (BUILTINS_${target} _CMAKE_CXX_COMPILER_TARGET "${target} 21" CACHE STRING "" )
86
+ endif ()
87
+ set (BUILTINS_${target} _CMAKE_BUILD_TYPE Release CACHE STRING "" )
44
88
endforeach ()
45
89
46
90
set (LLVM_TARGETS_TO_BUILD AArch64 ARM WebAssembly X86 CACHE STRING "" )
@@ -167,6 +211,7 @@ set(LLVM_DISTRIBUTION_COMPONENTS
167
211
libclang
168
212
libclang-headers
169
213
LTO
214
+ builtins
170
215
runtimes
171
216
${LLVM_TOOLCHAIN_TOOLS}
172
217
${CLANG_TOOLS}
0 commit comments