close
The Wayback Machine - https://web.archive.org/web/20211027051434/https://github.com/apple/swift/commit/f91f8b804bb8704d9868bd3f265a1e94acb559a8
Skip to content
Permalink
Browse files
Merge pull request #39896 from compnerd/arm64-cache
cmake: add a cache for Windows ARM64 toolchains
  • Loading branch information
compnerd committed Oct 24, 2021
2 parents b2732e5 + 1e6e71c commit f91f8b804bb8704d9868bd3f265a1e94acb559a8
Showing with 164 additions and 0 deletions.
  1. +164 −0 cmake/caches/Windows-arm64.cmake
@@ -0,0 +1,164 @@
set(LLVM_ENABLE_PROJECTS
clang
clang-tools-extra
lld
lldb
CACHE STRING "")

set(LLVM_EXTERNAL_PROJECTS
cmark
swift
CACHE STRING "")

set(LLVM_ENABLE_RUNTIMES
compiler-rt
CACHE STRING "")

# NOTE(compnerd) always enable assertions, the toolchain will not provide enough
# context to resolve issues otherwise and may silently generate invalid output.
set(LLVM_ENABLE_ASSERTIONS YES CACHE BOOL "")

set(ENABLE_X86_RELAX_RELOCATIONS YES CACHE BOOL "")

# NOTE(compnerd) we can hardcode the default target triple since the cache files
# are target dependent.
set(LLVM_DEFAULT_TARGET_TRIPLE aarch64-unknown-windows-msvc CACHE STRING "")

set(LLVM_APPEND_VC_REV NO CACHE BOOL "")
set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR YES CACHE BOOL "")
set(LLVM_ENABLE_PYTHON YES CACHE BOOL "")
set(LLVM_RUNTIME_TARGETS
aarch64-unknown-windows-msvc
CACHE STRING "")
foreach(target ${LLVM_RUNTIME_TARGETS})
set(RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES
compiler-rt
CACHE STRING "")
set(RUNTIMES_${target}_CMAKE_MT mt CACHE STRING "")
set(RUNTIMES_${target}_CMAKE_SYSTEM_NAME Windows CACHE STRING "")
set(RUNTIMES_${target}_CMAKE_BUILD_TYPE Release CACHE STRING "")
set(RUNTIMES_${target}_COMPILER_RT_BUILD_CRT NO CACHE BOOL "")
set(RUNTIMES_${target}_COMPILER_RT_BUILD_LIBFUZZER NO CACHE BOOL "")
set(RUNTIMES_${target}_COMPILER_RT_BUILD_PROFILE YES CACHE BOOL "")
set(RUNTIMES_${target}_COMPILER_RT_BUILD_SANITIZERS NO CACHE BOOL "")
set(RUNTIMES_${target}_COMPILER_RT_BUILD_XRAY NO CACHE BOOL "")
endforeach()

set(LLVM_TARGETS_TO_BUILD AArch64 ARM WebAssembly X86 CACHE STRING "")

# Disable certain targets to reduce the configure time or to avoid configuration
# differences (and in some cases weird build errors on a complete build).
set(LLVM_BUILD_LLVM_DYLIB NO CACHE BOOL "")
set(LLVM_BUILD_LLVM_C_DYLIB NO CACHE BOOL "")
set(LLVM_ENABLE_LIBEDIT NO CACHE BOOL "")
set(LLVM_ENABLE_LIBXML2 NO CACHE BOOL "")
set(LLVM_ENABLE_OCAMLDOC NO CACHE BOOL "")
set(LLVM_ENABLE_TERMINFO NO CACHE BOOL "")
set(LLVM_ENABLE_Z3_SOLVER NO CACHE BOOL "")
set(LLVM_ENABLE_ZLIB NO CACHE BOOL "")
set(LLVM_INCLUDE_BENCHMARKS NO CACHE BOOL "")
set(LLVM_INCLUDE_DOCS NO CACHE BOOL "")
set(LLVM_INCLUDE_EXAMPLES NO CACHE BOOL "")
set(LLVM_INCLUDE_GO_TESTS NO CACHE BOOL "")
set(LLVM_TOOL_GOLD_BUILD NO CACHE BOOL "")
set(LLVM_TOOL_LLVM_SHLIB_BUILD NO CACHE BOOL "")

# Avoid swig dependency for lldb
set(LLDB_ALLOW_STATIC_BINDINGS YES CACHE BOOL "")
set(LLDB_USE_STATIC_BINDINGS YES CACHE BOOL "")

# This requires perl which may not be available on Windows
set(SWIFT_INCLUDE_DOCS NO CACHE BOOL "")
set(SWIFT_BUILD_ENABLE_PARSER_LIB YES CACHE BOOL "")
# static linking is not supported on Windows yet
set(SWIFT_BUILD_STATIC_STDLIB NO CACHE BOOL "")
set(SWIFT_BUILD_STATIC_SDK_OVERLAY NO CACHE BOOL "")

set(LLVM_INSTALL_BINUTILS_SYMLINKS YES CACHE BOOL "")
set(LLVM_INSTALL_TOOLCHAIN_ONLY YES CACHE BOOL "")
set(LLVM_TOOLCHAIN_TOOLS
addr2line
ar
c++filt
dsymutil
dwp
# lipo
llvm-ar
llvm-cov
llvm-cvtres
llvm-cxxfilt
llvm-dlltool
llvm-dwarfdump
llvm-dwp
llvm-lib
llvm-lipo
llvm-mt
llvm-nm
llvm-objcopy
llvm-objdump
llvm-pdbutil
llvm-profdata
llvm-ranlib
llvm-rc
llvm-readelf
llvm-readobj
llvm-size
llvm-strings
llvm-strip
llvm-symbolizer
llvm-undname
nm
objcopy
objdump
ranlib
readelf
size
strings
CACHE STRING "")

set(CLANG_TOOLS
clang
clangd
clang-format
clang-resource-headers
clang-tidy
CACHE STRING "")

set(LLD_TOOLS
lld
CACHE STRING "")

set(LLDB_TOOLS
liblldb
lldb
lldb-argdumper
lldb-python-scripts
lldb-server
lldb-vscode
repl_swift
CACHE STRING "")

set(SWIFT_INSTALL_COMPONENTS
autolink-driver
compiler
clang-builtin-headers
editor-integration
tools
sourcekit-inproc
swift-remote-mirror
swift-remote-mirror-headers
parser-lib
CACHE STRING "")

set(LLVM_DISTRIBUTION_COMPONENTS
IndexStore
libclang
libclang-headers
LTO
runtimes
${LLVM_TOOLCHAIN_TOOLS}
${CLANG_TOOLS}
${LLD_TOOLS}
${LLDB_TOOLS}
${SWIFT_INSTALL_COMPONENTS}
CACHE STRING "")

0 comments on commit f91f8b8

Please sign in to comment.