106f32e7eSjoerg# This file sets up a CMakeCache for a Fuchsia toolchain build.
206f32e7eSjoerg
3*13fbcb42Sjoergset(LLVM_TARGETS_TO_BUILD X86;ARM;AArch64;RISCV CACHE STRING "")
406f32e7eSjoerg
506f32e7eSjoergset(PACKAGE_VENDOR Fuchsia CACHE STRING "")
606f32e7eSjoerg
7*13fbcb42Sjoergset(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld;llvm;polly" CACHE STRING "")
8*13fbcb42Sjoerg
906f32e7eSjoergset(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "")
1006f32e7eSjoergset(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON CACHE BOOL "")
1106f32e7eSjoergset(LLVM_ENABLE_TERMINFO OFF CACHE BOOL "")
1206f32e7eSjoergset(LLVM_ENABLE_UNWIND_TABLES OFF CACHE BOOL "")
1306f32e7eSjoergset(LLVM_ENABLE_ZLIB OFF CACHE BOOL "")
1406f32e7eSjoergset(LLVM_INCLUDE_DOCS OFF CACHE BOOL "")
1506f32e7eSjoergset(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "")
1606f32e7eSjoergset(LLVM_INCLUDE_GO_TESTS OFF CACHE BOOL "")
1706f32e7eSjoerg
18*13fbcb42Sjoergif(MSVC)
19*13fbcb42Sjoerg  set(LLVM_USE_CRT_RELEASE "MT" CACHE STRING "")
20*13fbcb42Sjoergendif()
21*13fbcb42Sjoerg
2206f32e7eSjoergset(CLANG_DEFAULT_CXX_STDLIB libc++ CACHE STRING "")
2306f32e7eSjoergif(NOT APPLE)
2406f32e7eSjoerg  set(CLANG_DEFAULT_LINKER lld CACHE STRING "")
2506f32e7eSjoerg  set(CLANG_DEFAULT_OBJCOPY llvm-objcopy CACHE STRING "")
2606f32e7eSjoergendif()
2706f32e7eSjoergset(CLANG_DEFAULT_RTLIB compiler-rt CACHE STRING "")
2806f32e7eSjoergset(CLANG_ENABLE_ARCMT OFF CACHE BOOL "")
29*13fbcb42Sjoergset(CLANG_ENABLE_STATIC_ANALYZER ON CACHE BOOL "")
3006f32e7eSjoergset(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "")
3106f32e7eSjoerg
3206f32e7eSjoergset(ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER ON CACHE BOOL "")
3306f32e7eSjoergset(ENABLE_LINKER_BUILD_ID ON CACHE BOOL "")
3406f32e7eSjoergset(ENABLE_X86_RELAX_RELOCATIONS ON CACHE BOOL "")
3506f32e7eSjoerg
3606f32e7eSjoergset(LLVM_ENABLE_ASSERTIONS ON CACHE BOOL "")
3706f32e7eSjoergset(CMAKE_BUILD_TYPE Release CACHE STRING "")
3806f32e7eSjoergif(APPLE)
39*13fbcb42Sjoerg  set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13" CACHE STRING "")
40*13fbcb42Sjoergelseif(MSVC)
41*13fbcb42Sjoerg  set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded" CACHE STRING "")
4206f32e7eSjoergendif()
4306f32e7eSjoerg
4406f32e7eSjoergif(APPLE)
4506f32e7eSjoerg  set(COMPILER_RT_ENABLE_IOS OFF CACHE BOOL "")
4606f32e7eSjoerg  set(COMPILER_RT_ENABLE_TVOS OFF CACHE BOOL "")
4706f32e7eSjoerg  set(COMPILER_RT_ENABLE_WATCHOS OFF CACHE BOOL "")
4806f32e7eSjoergendif()
4906f32e7eSjoerg
5006f32e7eSjoergset(LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "")
5106f32e7eSjoergset(LIBUNWIND_INSTALL_LIBRARY OFF CACHE BOOL "")
5206f32e7eSjoergset(LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "")
5306f32e7eSjoergset(LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "")
5406f32e7eSjoergset(LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "")
5506f32e7eSjoergset(LIBCXXABI_INSTALL_LIBRARY OFF CACHE BOOL "")
5606f32e7eSjoergset(LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "")
5706f32e7eSjoergset(LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "")
5806f32e7eSjoergset(LIBCXX_ABI_VERSION 2 CACHE STRING "")
5906f32e7eSjoergset(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")
60*13fbcb42Sjoergif(WIN32)
61*13fbcb42Sjoerg  set(LIBCXX_HAS_WIN32_THREAD_API ON CACHE BOOL "")
62*13fbcb42Sjoerg  set(LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY OFF CACHE BOOL "")
63*13fbcb42Sjoerg  set(LIBCXX_ENABLE_FILESYSTEM OFF CACHE BOOL "")
64*13fbcb42Sjoerg  set(LIBCXX_ENABLE_ABI_LINKER_SCRIPT OFF CACHE BOOL "")
65*13fbcb42Sjoerg  set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY OFF CACHE BOOL "")
66*13fbcb42Sjoerg  set(BUILTINS_CMAKE_ARGS -DCMAKE_SYSTEM_NAME=Windows CACHE STRING "")
67*13fbcb42Sjoerg  set(RUNTIMES_CMAKE_ARGS -DCMAKE_SYSTEM_NAME=Windows CACHE STRING "")
68*13fbcb42Sjoerg  set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx" CACHE STRING "")
69*13fbcb42Sjoergelse()
7006f32e7eSjoerg  set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "")
71*13fbcb42Sjoerg  set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "")
72*13fbcb42Sjoergendif()
7306f32e7eSjoerg
7406f32e7eSjoergif(BOOTSTRAP_CMAKE_SYSTEM_NAME)
7506f32e7eSjoerg  set(target "${BOOTSTRAP_CMAKE_CXX_COMPILER_TARGET}")
7606f32e7eSjoerg  if(STAGE2_LINUX_${target}_SYSROOT)
77*13fbcb42Sjoerg    set(LLVM_BUILTIN_TARGETS "${target}" CACHE STRING "")
7806f32e7eSjoerg    set(BUILTINS_${target}_CMAKE_SYSTEM_NAME Linux CACHE STRING "")
7906f32e7eSjoerg    set(BUILTINS_${target}_CMAKE_BUILD_TYPE Release CACHE STRING "")
8006f32e7eSjoerg    set(BUILTINS_${target}_CMAKE_SYSROOT ${STAGE2_LINUX_${target}_SYSROOT} CACHE STRING "")
8106f32e7eSjoerg
82*13fbcb42Sjoerg    set(LLVM_RUNTIME_TARGETS "${target}" CACHE STRING "")
8306f32e7eSjoerg    set(RUNTIMES_${target}_CMAKE_SYSTEM_NAME Linux CACHE STRING "")
8406f32e7eSjoerg    set(RUNTIMES_${target}_CMAKE_BUILD_TYPE Release CACHE STRING "")
8506f32e7eSjoerg    set(RUNTIMES_${target}_CMAKE_SYSROOT ${STAGE2_LINUX_${target}_SYSROOT} CACHE STRING "")
86*13fbcb42Sjoerg    set(RUNTIMES_${target}_COMPILER_RT_USE_BUILTINS_LIBRARY ON CACHE BOOL "")
8706f32e7eSjoerg    set(RUNTIMES_${target}_LLVM_ENABLE_ASSERTIONS ON CACHE BOOL "")
8806f32e7eSjoerg    set(RUNTIMES_${target}_LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "")
8906f32e7eSjoerg    set(RUNTIMES_${target}_LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "")
9006f32e7eSjoerg    set(RUNTIMES_${target}_LIBUNWIND_INSTALL_LIBRARY OFF CACHE BOOL "")
9106f32e7eSjoerg    set(RUNTIMES_${target}_LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "")
9206f32e7eSjoerg    set(RUNTIMES_${target}_LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "")
9306f32e7eSjoerg    set(RUNTIMES_${target}_LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "")
9406f32e7eSjoerg    set(RUNTIMES_${target}_LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "")
9506f32e7eSjoerg    set(RUNTIMES_${target}_LIBCXXABI_INSTALL_LIBRARY OFF CACHE BOOL "")
9606f32e7eSjoerg    set(RUNTIMES_${target}_LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")
9706f32e7eSjoerg    set(RUNTIMES_${target}_LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")
9806f32e7eSjoerg    set(RUNTIMES_${target}_LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "")
9906f32e7eSjoerg    set(RUNTIMES_${target}_LIBCXX_ABI_VERSION 2 CACHE STRING "")
100*13fbcb42Sjoerg    set(RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "")
10106f32e7eSjoerg    set(RUNTIMES_${target}_SANITIZER_CXX_ABI "libc++" CACHE STRING "")
10206f32e7eSjoerg    set(RUNTIMES_${target}_SANITIZER_CXX_ABI_INTREE ON CACHE BOOL "")
10306f32e7eSjoerg  endif()
10406f32e7eSjoergendif()
10506f32e7eSjoerg
10606f32e7eSjoergif(UNIX)
10706f32e7eSjoerg  set(BOOTSTRAP_CMAKE_SHARED_LINKER_FLAGS "-ldl -lpthread" CACHE STRING "")
10806f32e7eSjoerg  set(BOOTSTRAP_CMAKE_MODULE_LINKER_FLAGS "-ldl -lpthread" CACHE STRING "")
10906f32e7eSjoerg  set(BOOTSTRAP_CMAKE_EXE_LINKER_FLAGS "-ldl -lpthread" CACHE STRING "")
11006f32e7eSjoergendif()
11106f32e7eSjoerg
11206f32e7eSjoergset(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "")
11306f32e7eSjoergif(NOT APPLE)
11406f32e7eSjoerg  set(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "")
11506f32e7eSjoergendif()
11606f32e7eSjoerg
11706f32e7eSjoergset(CLANG_BOOTSTRAP_TARGETS
11806f32e7eSjoerg  check-all
11906f32e7eSjoerg  check-clang
12006f32e7eSjoerg  check-lld
121*13fbcb42Sjoerg  check-llvm
122*13fbcb42Sjoerg  check-polly
12306f32e7eSjoerg  llvm-config
12406f32e7eSjoerg  clang-test-depends
12506f32e7eSjoerg  lld-test-depends
126*13fbcb42Sjoerg  llvm-test-depends
127*13fbcb42Sjoerg  test-suite
128*13fbcb42Sjoerg  test-depends
12906f32e7eSjoerg  distribution
13006f32e7eSjoerg  install-distribution
13106f32e7eSjoerg  install-distribution-stripped
13206f32e7eSjoerg  install-distribution-toolchain
13306f32e7eSjoerg  clang CACHE STRING "")
13406f32e7eSjoerg
13506f32e7eSjoergget_cmake_property(variableNames VARIABLES)
13606f32e7eSjoergforeach(variableName ${variableNames})
13706f32e7eSjoerg  if(variableName MATCHES "^STAGE2_")
13806f32e7eSjoerg    string(REPLACE "STAGE2_" "" new_name ${variableName})
13906f32e7eSjoerg    list(APPEND EXTRA_ARGS "-D${new_name}=${${variableName}}")
14006f32e7eSjoerg  endif()
14106f32e7eSjoergendforeach()
14206f32e7eSjoerg
14306f32e7eSjoerg# Setup the bootstrap build.
14406f32e7eSjoergset(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "")
14506f32e7eSjoergset(CLANG_BOOTSTRAP_EXTRA_DEPS
14606f32e7eSjoerg  builtins
14706f32e7eSjoerg  runtimes
14806f32e7eSjoerg  CACHE STRING "")
14906f32e7eSjoergset(CLANG_BOOTSTRAP_CMAKE_ARGS
15006f32e7eSjoerg  ${EXTRA_ARGS}
15106f32e7eSjoerg  -C ${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2.cmake
15206f32e7eSjoerg  CACHE STRING "")
153