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