17330f729Sjoerg# This file sets up a CMakeCache for a Fuchsia toolchain build. 27330f729Sjoerg 3*e038c9c4Sjoergset(LLVM_TARGETS_TO_BUILD X86;ARM;AArch64;RISCV CACHE STRING "") 47330f729Sjoerg 57330f729Sjoergset(PACKAGE_VENDOR Fuchsia CACHE STRING "") 67330f729Sjoerg 7*e038c9c4Sjoergset(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld;llvm;polly" CACHE STRING "") 8*e038c9c4Sjoerg 97330f729Sjoergset(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") 107330f729Sjoergset(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON CACHE BOOL "") 117330f729Sjoergset(LLVM_ENABLE_TERMINFO OFF CACHE BOOL "") 127330f729Sjoergset(LLVM_ENABLE_UNWIND_TABLES OFF CACHE BOOL "") 137330f729Sjoergset(LLVM_ENABLE_ZLIB OFF CACHE BOOL "") 147330f729Sjoergset(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") 157330f729Sjoergset(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") 167330f729Sjoergset(LLVM_INCLUDE_GO_TESTS OFF CACHE BOOL "") 177330f729Sjoerg 18*e038c9c4Sjoergif(MSVC) 19*e038c9c4Sjoerg set(LLVM_USE_CRT_RELEASE "MT" CACHE STRING "") 20*e038c9c4Sjoergendif() 21*e038c9c4Sjoerg 227330f729Sjoergset(CLANG_DEFAULT_CXX_STDLIB libc++ CACHE STRING "") 237330f729Sjoergif(NOT APPLE) 247330f729Sjoerg set(CLANG_DEFAULT_LINKER lld CACHE STRING "") 257330f729Sjoerg set(CLANG_DEFAULT_OBJCOPY llvm-objcopy CACHE STRING "") 267330f729Sjoergendif() 277330f729Sjoergset(CLANG_DEFAULT_RTLIB compiler-rt CACHE STRING "") 287330f729Sjoergset(CLANG_ENABLE_ARCMT OFF CACHE BOOL "") 29*e038c9c4Sjoergset(CLANG_ENABLE_STATIC_ANALYZER ON CACHE BOOL "") 307330f729Sjoergset(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") 317330f729Sjoerg 327330f729Sjoergset(ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER ON CACHE BOOL "") 337330f729Sjoergset(ENABLE_LINKER_BUILD_ID ON CACHE BOOL "") 347330f729Sjoergset(ENABLE_X86_RELAX_RELOCATIONS ON CACHE BOOL "") 357330f729Sjoerg 367330f729Sjoergset(LLVM_ENABLE_ASSERTIONS ON CACHE BOOL "") 377330f729Sjoergset(CMAKE_BUILD_TYPE Release CACHE STRING "") 387330f729Sjoergif(APPLE) 39*e038c9c4Sjoerg set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13" CACHE STRING "") 40*e038c9c4Sjoergelseif(MSVC) 41*e038c9c4Sjoerg set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded" CACHE STRING "") 427330f729Sjoergendif() 437330f729Sjoerg 447330f729Sjoergif(APPLE) 457330f729Sjoerg set(COMPILER_RT_ENABLE_IOS OFF CACHE BOOL "") 467330f729Sjoerg set(COMPILER_RT_ENABLE_TVOS OFF CACHE BOOL "") 477330f729Sjoerg set(COMPILER_RT_ENABLE_WATCHOS OFF CACHE BOOL "") 487330f729Sjoergendif() 497330f729Sjoerg 507330f729Sjoergset(LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "") 517330f729Sjoergset(LIBUNWIND_INSTALL_LIBRARY OFF CACHE BOOL "") 527330f729Sjoergset(LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "") 537330f729Sjoergset(LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "") 547330f729Sjoergset(LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "") 557330f729Sjoergset(LIBCXXABI_INSTALL_LIBRARY OFF CACHE BOOL "") 567330f729Sjoergset(LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "") 577330f729Sjoergset(LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "") 587330f729Sjoergset(LIBCXX_ABI_VERSION 2 CACHE STRING "") 597330f729Sjoergset(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") 60*e038c9c4Sjoergif(WIN32) 61*e038c9c4Sjoerg set(LIBCXX_HAS_WIN32_THREAD_API ON CACHE BOOL "") 62*e038c9c4Sjoerg set(LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY OFF CACHE BOOL "") 63*e038c9c4Sjoerg set(LIBCXX_ENABLE_FILESYSTEM OFF CACHE BOOL "") 64*e038c9c4Sjoerg set(LIBCXX_ENABLE_ABI_LINKER_SCRIPT OFF CACHE BOOL "") 65*e038c9c4Sjoerg set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY OFF CACHE BOOL "") 66*e038c9c4Sjoerg set(BUILTINS_CMAKE_ARGS -DCMAKE_SYSTEM_NAME=Windows CACHE STRING "") 67*e038c9c4Sjoerg set(RUNTIMES_CMAKE_ARGS -DCMAKE_SYSTEM_NAME=Windows CACHE STRING "") 68*e038c9c4Sjoerg set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx" CACHE STRING "") 69*e038c9c4Sjoergelse() 707330f729Sjoerg set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "") 71*e038c9c4Sjoerg set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "") 72*e038c9c4Sjoergendif() 737330f729Sjoerg 747330f729Sjoergif(BOOTSTRAP_CMAKE_SYSTEM_NAME) 757330f729Sjoerg set(target "${BOOTSTRAP_CMAKE_CXX_COMPILER_TARGET}") 767330f729Sjoerg if(STAGE2_LINUX_${target}_SYSROOT) 77*e038c9c4Sjoerg set(LLVM_BUILTIN_TARGETS "${target}" CACHE STRING "") 787330f729Sjoerg set(BUILTINS_${target}_CMAKE_SYSTEM_NAME Linux CACHE STRING "") 797330f729Sjoerg set(BUILTINS_${target}_CMAKE_BUILD_TYPE Release CACHE STRING "") 807330f729Sjoerg set(BUILTINS_${target}_CMAKE_SYSROOT ${STAGE2_LINUX_${target}_SYSROOT} CACHE STRING "") 817330f729Sjoerg 82*e038c9c4Sjoerg set(LLVM_RUNTIME_TARGETS "${target}" CACHE STRING "") 837330f729Sjoerg set(RUNTIMES_${target}_CMAKE_SYSTEM_NAME Linux CACHE STRING "") 847330f729Sjoerg set(RUNTIMES_${target}_CMAKE_BUILD_TYPE Release CACHE STRING "") 857330f729Sjoerg set(RUNTIMES_${target}_CMAKE_SYSROOT ${STAGE2_LINUX_${target}_SYSROOT} CACHE STRING "") 86*e038c9c4Sjoerg set(RUNTIMES_${target}_COMPILER_RT_USE_BUILTINS_LIBRARY ON CACHE BOOL "") 877330f729Sjoerg set(RUNTIMES_${target}_LLVM_ENABLE_ASSERTIONS ON CACHE BOOL "") 887330f729Sjoerg set(RUNTIMES_${target}_LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "") 897330f729Sjoerg set(RUNTIMES_${target}_LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "") 907330f729Sjoerg set(RUNTIMES_${target}_LIBUNWIND_INSTALL_LIBRARY OFF CACHE BOOL "") 917330f729Sjoerg set(RUNTIMES_${target}_LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "") 927330f729Sjoerg set(RUNTIMES_${target}_LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "") 937330f729Sjoerg set(RUNTIMES_${target}_LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "") 947330f729Sjoerg set(RUNTIMES_${target}_LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "") 957330f729Sjoerg set(RUNTIMES_${target}_LIBCXXABI_INSTALL_LIBRARY OFF CACHE BOOL "") 967330f729Sjoerg set(RUNTIMES_${target}_LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") 977330f729Sjoerg set(RUNTIMES_${target}_LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") 987330f729Sjoerg set(RUNTIMES_${target}_LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "") 997330f729Sjoerg set(RUNTIMES_${target}_LIBCXX_ABI_VERSION 2 CACHE STRING "") 100*e038c9c4Sjoerg set(RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "") 1017330f729Sjoerg set(RUNTIMES_${target}_SANITIZER_CXX_ABI "libc++" CACHE STRING "") 1027330f729Sjoerg set(RUNTIMES_${target}_SANITIZER_CXX_ABI_INTREE ON CACHE BOOL "") 1037330f729Sjoerg endif() 1047330f729Sjoergendif() 1057330f729Sjoerg 1067330f729Sjoergif(UNIX) 1077330f729Sjoerg set(BOOTSTRAP_CMAKE_SHARED_LINKER_FLAGS "-ldl -lpthread" CACHE STRING "") 1087330f729Sjoerg set(BOOTSTRAP_CMAKE_MODULE_LINKER_FLAGS "-ldl -lpthread" CACHE STRING "") 1097330f729Sjoerg set(BOOTSTRAP_CMAKE_EXE_LINKER_FLAGS "-ldl -lpthread" CACHE STRING "") 1107330f729Sjoergendif() 1117330f729Sjoerg 1127330f729Sjoergset(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "") 1137330f729Sjoergif(NOT APPLE) 1147330f729Sjoerg set(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "") 1157330f729Sjoergendif() 1167330f729Sjoerg 1177330f729Sjoergset(CLANG_BOOTSTRAP_TARGETS 1187330f729Sjoerg check-all 1197330f729Sjoerg check-clang 1207330f729Sjoerg check-lld 121*e038c9c4Sjoerg check-llvm 122*e038c9c4Sjoerg check-polly 1237330f729Sjoerg llvm-config 1247330f729Sjoerg clang-test-depends 1257330f729Sjoerg lld-test-depends 126*e038c9c4Sjoerg llvm-test-depends 127*e038c9c4Sjoerg test-suite 128*e038c9c4Sjoerg test-depends 1297330f729Sjoerg distribution 1307330f729Sjoerg install-distribution 1317330f729Sjoerg install-distribution-stripped 1327330f729Sjoerg install-distribution-toolchain 1337330f729Sjoerg clang CACHE STRING "") 1347330f729Sjoerg 1357330f729Sjoergget_cmake_property(variableNames VARIABLES) 1367330f729Sjoergforeach(variableName ${variableNames}) 1377330f729Sjoerg if(variableName MATCHES "^STAGE2_") 1387330f729Sjoerg string(REPLACE "STAGE2_" "" new_name ${variableName}) 1397330f729Sjoerg list(APPEND EXTRA_ARGS "-D${new_name}=${${variableName}}") 1407330f729Sjoerg endif() 1417330f729Sjoergendforeach() 1427330f729Sjoerg 1437330f729Sjoerg# Setup the bootstrap build. 1447330f729Sjoergset(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") 1457330f729Sjoergset(CLANG_BOOTSTRAP_EXTRA_DEPS 1467330f729Sjoerg builtins 1477330f729Sjoerg runtimes 1487330f729Sjoerg CACHE STRING "") 1497330f729Sjoergset(CLANG_BOOTSTRAP_CMAKE_ARGS 1507330f729Sjoerg ${EXTRA_ARGS} 1517330f729Sjoerg -C ${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2.cmake 1527330f729Sjoerg CACHE STRING "") 153