1367ad73aSPetr Hosek# This file sets up a CMakeCache for a Fuchsia toolchain build. 2367ad73aSPetr Hosek 304303242SDaniel Thornburghoption(FUCHSIA_ENABLE_LLDB "Enable LLDB") 404303242SDaniel Thornburgh 568a3a3b2SPetr Hosekset(LLVM_TARGETS_TO_BUILD X86;ARM;AArch64;RISCV CACHE STRING "") 6367ad73aSPetr Hosek 7367ad73aSPetr Hosekset(PACKAGE_VENDOR Fuchsia CACHE STRING "") 8367ad73aSPetr Hosek 9*8cffab82SPetr Hosekset(_FUCHSIA_ENABLE_PROJECTS "bolt;clang;clang-tools-extra;lld;llvm;polly") 10a378c044SPetr Hosek 111dba2a02SPetr Hosekset(LLVM_ENABLE_DIA_SDK OFF CACHE BOOL "") 12534f6604SPetr Hosekset(LLVM_ENABLE_LIBEDIT OFF CACHE BOOL "") 13eec3488cSPetr Hosekset(LLVM_ENABLE_LIBXML2 OFF CACHE BOOL "") 142423c169SPetr Hosekset(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON CACHE BOOL "") 157fff716eSPetr Hosekset(LLVM_ENABLE_UNWIND_TABLES OFF CACHE BOOL "") 161dba2a02SPetr Hosekset(LLVM_ENABLE_Z3_SOLVER OFF CACHE BOOL "") 1786cc84d1SPetr Hosekset(LLVM_ENABLE_ZLIB OFF CACHE BOOL "") 18649af77bSPetr Hosekset(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") 197fff716eSPetr Hosekset(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") 20a7bb9a36SHaowei Wuset(LLVM_USE_RELATIVE_PATHS_IN_FILES ON CACHE BOOL "") 21c0e9c55dSDaniel Thornburghset(LLDB_ENABLE_CURSES OFF CACHE BOOL "") 22c0e9c55dSDaniel Thornburghset(LLDB_ENABLE_LIBEDIT OFF CACHE BOOL "") 23649af77bSPetr Hosek 24630266aeSHaowei Wu# Passthrough stage1 flags to stage1. 25630266aeSHaowei Wuset(_FUCHSIA_BOOTSTRAP_PASSTHROUGH 26630266aeSHaowei Wu LLVM_ENABLE_ZLIB 27630266aeSHaowei Wu ZLIB_INCLUDE_DIR 28630266aeSHaowei Wu ZLIB_LIBRARY 29630266aeSHaowei Wu LLVM_ENABLE_ZSTD 30630266aeSHaowei Wu zstd_DIR 31630266aeSHaowei Wu LLVM_ENABLE_LIBXML2 32630266aeSHaowei Wu LibXml2_ROOT 33630266aeSHaowei Wu LLVM_ENABLE_CURL 340a21fb34SDaniel Thornburgh LLVM_ENABLE_HTTPLIB 351b8c7ee4SDaniel Thornburgh LLVM_ENABLE_LIBEDIT 36630266aeSHaowei Wu CURL_ROOT 37630266aeSHaowei Wu OpenSSL_ROOT 380a21fb34SDaniel Thornburgh httplib_ROOT 3969bc30b9SDaniel Thornburgh 4069bc30b9SDaniel Thornburgh # Deprecated 41518621e9SDaniel Thornburgh CursesAndPanel_ROOT 4269bc30b9SDaniel Thornburgh 4369bc30b9SDaniel Thornburgh CURSES_INCLUDE_DIRS 4469bc30b9SDaniel Thornburgh CURSES_LIBRARIES 4569bc30b9SDaniel Thornburgh PANEL_LIBRARIES 4669bc30b9SDaniel Thornburgh 4769bc30b9SDaniel Thornburgh # Deprecated 481b8c7ee4SDaniel Thornburgh LibEdit_ROOT 4969bc30b9SDaniel Thornburgh 5069bc30b9SDaniel Thornburgh LibEdit_INCLUDE_DIRS 5169bc30b9SDaniel Thornburgh LibEdit_LIBRARIES 5269bc30b9SDaniel Thornburgh 53c0e9c55dSDaniel Thornburgh FUCHSIA_ENABLE_LLDB 54c0e9c55dSDaniel Thornburgh LLDB_ENABLE_CURSES 55c0e9c55dSDaniel Thornburgh LLDB_ENABLE_LIBEDIT 568456c8feSDaniel Thornburgh LLDB_ENABLE_PYTHON 578456c8feSDaniel Thornburgh LLDB_EMBED_PYTHON_HOME 588456c8feSDaniel Thornburgh LLDB_PYTHON_HOME 598456c8feSDaniel Thornburgh LLDB_PYTHON_RELATIVE_PATH 6026bd3d0fSDaniel Thornburgh LLDB_TEST_USER_ARGS 618456c8feSDaniel Thornburgh Python3_EXECUTABLE 628456c8feSDaniel Thornburgh Python3_LIBRARIES 638456c8feSDaniel Thornburgh Python3_INCLUDE_DIRS 648456c8feSDaniel Thornburgh Python3_RPATH 6568217a52SHaowei SWIG_DIR 6668217a52SHaowei SWIG_EXECUTABLE 67630266aeSHaowei Wu CMAKE_FIND_PACKAGE_PREFER_CONFIG 68630266aeSHaowei Wu CMAKE_SYSROOT 695fcdab04SHaowei Wu LLVM_WINSYSROOT 705fcdab04SHaowei Wu LLVM_VFSOVERLAY 71630266aeSHaowei Wu) 72630266aeSHaowei Wu 73630266aeSHaowei Wuforeach(variable ${_FUCHSIA_BOOTSTRAP_PASSTHROUGH}) 74630266aeSHaowei Wu get_property(is_value_set CACHE ${variable} PROPERTY VALUE SET) 75630266aeSHaowei Wu if(${is_value_set}) 76630266aeSHaowei Wu get_property(value CACHE ${variable} PROPERTY VALUE) 77630266aeSHaowei Wu get_property(type CACHE ${variable} PROPERTY TYPE) 78630266aeSHaowei Wu set(BOOTSTRAP_${variable} "${value}" CACHE ${type} "") 79630266aeSHaowei Wu endif() 80630266aeSHaowei Wuendforeach() 81630266aeSHaowei Wu 82649af77bSPetr Hosekset(CLANG_DEFAULT_CXX_STDLIB libc++ CACHE STRING "") 83649af77bSPetr Hosekset(CLANG_DEFAULT_LINKER lld CACHE STRING "") 84649af77bSPetr Hosekset(CLANG_DEFAULT_OBJCOPY llvm-objcopy CACHE STRING "") 85649af77bSPetr Hosekset(CLANG_DEFAULT_RTLIB compiler-rt CACHE STRING "") 86a8e6056eSPetr Hosekset(CLANG_DEFAULT_UNWINDLIB libunwind CACHE STRING "") 877fff716eSPetr Hosekset(CLANG_ENABLE_ARCMT OFF CACHE BOOL "") 88eec3488cSPetr Hosekset(CLANG_ENABLE_STATIC_ANALYZER OFF CACHE BOOL "") 89367ad73aSPetr Hosekset(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") 90367ad73aSPetr Hosek 9142af135eSPetr Hosekset(ENABLE_LINKER_BUILD_ID ON CACHE BOOL "") 9242af135eSPetr Hosekset(ENABLE_X86_RELAX_RELOCATIONS ON CACHE BOOL "") 9342af135eSPetr Hosek 940df7d8bcSAlex Brachetset(LLVM_ENABLE_ASSERTIONS ON CACHE BOOL "") 950df7d8bcSAlex Brachetset(LLVM_ENABLE_BACKTRACES ON CACHE BOOL "") 96367ad73aSPetr Hosekset(CMAKE_BUILD_TYPE Release CACHE STRING "") 977fff716eSPetr Hosekif(APPLE) 988cb191b7SPetr Hosek set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13" CACHE STRING "") 991dba2a02SPetr Hosekelseif(WIN32) 10053e38c85SPetr Hosek set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded" CACHE STRING "") 1017fff716eSPetr Hosekendif() 102367ad73aSPetr Hosek 10360f54ac8SPetr Hosekif(APPLE) 10460f54ac8SPetr Hosek set(COMPILER_RT_ENABLE_IOS OFF CACHE BOOL "") 10560f54ac8SPetr Hosek set(COMPILER_RT_ENABLE_TVOS OFF CACHE BOOL "") 10660f54ac8SPetr Hosek set(COMPILER_RT_ENABLE_WATCHOS OFF CACHE BOOL "") 1079d8d0f68SPetr Hosekendif() 1089d8d0f68SPetr Hosek 1098df26e7bSPetr Hosekif(WIN32) 1108df26e7bSPetr Hosek set(LIBCXX_ABI_VERSION 2 CACHE STRING "") 1118df26e7bSPetr Hosek set(LIBCXX_ENABLE_ABI_LINKER_SCRIPT OFF CACHE BOOL "") 1128df26e7bSPetr Hosek set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") 1138df26e7bSPetr Hosek set(BUILTINS_CMAKE_ARGS -DCMAKE_SYSTEM_NAME=Windows CACHE STRING "") 1148df26e7bSPetr Hosek set(RUNTIMES_CMAKE_ARGS -DCMAKE_SYSTEM_NAME=Windows CACHE STRING "") 1158df26e7bSPetr Hosek set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx" CACHE STRING "") 1168df26e7bSPetr Hosekelse() 117e52b7529SPetr Hosek set(LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "") 118e52b7529SPetr Hosek set(LIBUNWIND_INSTALL_LIBRARY OFF CACHE BOOL "") 1199d8d0f68SPetr Hosek set(LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "") 120e52b7529SPetr Hosek set(LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "") 121e52b7529SPetr Hosek set(LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "") 122e52b7529SPetr Hosek set(LIBCXXABI_INSTALL_LIBRARY OFF CACHE BOOL "") 1239d8d0f68SPetr Hosek set(LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "") 1249d8d0f68SPetr Hosek set(LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "") 1259d8d0f68SPetr Hosek set(LIBCXX_ABI_VERSION 2 CACHE STRING "") 126e52b7529SPetr Hosek set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") 127e52b7529SPetr Hosek set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "") 1284a9c71b8SKonstantin Varlamov set(LIBCXX_HARDENING_MODE "none" CACHE STRING "") 129e64722f6SPetr Hosek set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") 13053e38c85SPetr Hosek set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "") 131e64722f6SPetr Hosek set(RUNTIMES_CMAKE_ARGS "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13;-DCMAKE_OSX_ARCHITECTURES=arm64|x86_64" CACHE STRING "") 13253e38c85SPetr Hosekendif() 13360f54ac8SPetr Hosek 134d63e8462SPetr Hosekif(BOOTSTRAP_CMAKE_SYSTEM_NAME) 135d63e8462SPetr Hosek set(target "${BOOTSTRAP_CMAKE_CXX_COMPILER_TARGET}") 136d63e8462SPetr Hosek if(STAGE2_LINUX_${target}_SYSROOT) 137a378c044SPetr Hosek set(LLVM_BUILTIN_TARGETS "${target}" CACHE STRING "") 138d63e8462SPetr Hosek set(BUILTINS_${target}_CMAKE_SYSTEM_NAME Linux CACHE STRING "") 139d63e8462SPetr Hosek set(BUILTINS_${target}_CMAKE_BUILD_TYPE Release CACHE STRING "") 140d63e8462SPetr Hosek set(BUILTINS_${target}_CMAKE_SYSROOT ${STAGE2_LINUX_${target}_SYSROOT} CACHE STRING "") 141d63e8462SPetr Hosek 142a378c044SPetr Hosek set(LLVM_RUNTIME_TARGETS "${target}" CACHE STRING "") 143d63e8462SPetr Hosek set(RUNTIMES_${target}_CMAKE_SYSTEM_NAME Linux CACHE STRING "") 144d63e8462SPetr Hosek set(RUNTIMES_${target}_CMAKE_BUILD_TYPE Release CACHE STRING "") 145d63e8462SPetr Hosek set(RUNTIMES_${target}_CMAKE_SYSROOT ${STAGE2_LINUX_${target}_SYSROOT} CACHE STRING "") 146a378c044SPetr Hosek set(RUNTIMES_${target}_COMPILER_RT_USE_BUILTINS_LIBRARY ON CACHE BOOL "") 147d63e8462SPetr Hosek set(RUNTIMES_${target}_LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "") 148d63e8462SPetr Hosek set(RUNTIMES_${target}_LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "") 149d63e8462SPetr Hosek set(RUNTIMES_${target}_LIBUNWIND_INSTALL_LIBRARY OFF CACHE BOOL "") 150d63e8462SPetr Hosek set(RUNTIMES_${target}_LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "") 151d63e8462SPetr Hosek set(RUNTIMES_${target}_LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "") 152d63e8462SPetr Hosek set(RUNTIMES_${target}_LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "") 153d63e8462SPetr Hosek set(RUNTIMES_${target}_LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "") 154d63e8462SPetr Hosek set(RUNTIMES_${target}_LIBCXXABI_INSTALL_LIBRARY OFF CACHE BOOL "") 155d63e8462SPetr Hosek set(RUNTIMES_${target}_LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") 156d63e8462SPetr Hosek set(RUNTIMES_${target}_LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") 157d63e8462SPetr Hosek set(RUNTIMES_${target}_LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "") 158d63e8462SPetr Hosek set(RUNTIMES_${target}_LIBCXX_ABI_VERSION 2 CACHE STRING "") 1592a5afb46SPetr Hosek set(RUNTIMES_${target}_LLVM_ENABLE_ASSERTIONS OFF CACHE BOOL "") 160a378c044SPetr Hosek set(RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "") 161d63e8462SPetr Hosek set(RUNTIMES_${target}_SANITIZER_CXX_ABI "libc++" CACHE STRING "") 162d63e8462SPetr Hosek set(RUNTIMES_${target}_SANITIZER_CXX_ABI_INTREE ON CACHE BOOL "") 163d63e8462SPetr Hosek endif() 164d63e8462SPetr Hosekendif() 165d63e8462SPetr Hosek 166649af77bSPetr Hosekset(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "") 167abe997bbSPetr Hosekset(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "") 168649af77bSPetr Hosek 1692998a555SDaniel Thornburghset(_FUCHSIA_BOOTSTRAP_TARGETS 170367ad73aSPetr Hosek check-all 171367ad73aSPetr Hosek check-clang 17288778109SPetr Hosek check-lld 17375cdeff4SPetr Hosek check-llvm 17475cdeff4SPetr Hosek check-polly 175367ad73aSPetr Hosek llvm-config 176367ad73aSPetr Hosek clang-test-depends 17788778109SPetr Hosek lld-test-depends 17875cdeff4SPetr Hosek llvm-test-depends 17975cdeff4SPetr Hosek test-suite 18075cdeff4SPetr Hosek test-depends 18104303242SDaniel Thornburgh toolchain-distribution 18204303242SDaniel Thornburgh install-toolchain-distribution 18304303242SDaniel Thornburgh install-toolchain-distribution-stripped 184498e1506SDaniel Thornburgh install-toolchain-distribution-toolchain 185498e1506SDaniel Thornburgh clang) 186367ad73aSPetr Hosek 187c0e9c55dSDaniel Thornburghif(FUCHSIA_ENABLE_LLDB) 188c0e9c55dSDaniel Thornburgh list(APPEND _FUCHSIA_ENABLE_PROJECTS lldb) 18904303242SDaniel Thornburgh list(APPEND _FUCHSIA_BOOTSTRAP_TARGETS 19004303242SDaniel Thornburgh check-lldb 19104303242SDaniel Thornburgh lldb-test-depends 19204303242SDaniel Thornburgh debugger-distribution 19304303242SDaniel Thornburgh install-debugger-distribution 19404303242SDaniel Thornburgh install-debugger-distribution-stripped 19504303242SDaniel Thornburgh install-debugger-distribution-toolchain) 196c0e9c55dSDaniel Thornburghendif() 19704303242SDaniel Thornburgh 198c0e9c55dSDaniel Thornburghset(LLVM_ENABLE_PROJECTS ${_FUCHSIA_ENABLE_PROJECTS} CACHE STRING "") 1992998a555SDaniel Thornburghset(CLANG_BOOTSTRAP_TARGETS ${_FUCHSIA_BOOTSTRAP_TARGETS} CACHE STRING "") 200c0e9c55dSDaniel Thornburgh 201403793e7SPetr Hosekget_cmake_property(variableNames VARIABLES) 202403793e7SPetr Hosekforeach(variableName ${variableNames}) 203403793e7SPetr Hosek if(variableName MATCHES "^STAGE2_") 204403793e7SPetr Hosek string(REPLACE "STAGE2_" "" new_name ${variableName}) 20530c57e27SAlex Brachet string(REPLACE ";" "|" value "${${variableName}}") 20630c57e27SAlex Brachet list(APPEND EXTRA_ARGS "-D${new_name}=${value}") 207367ad73aSPetr Hosek endif() 208dce1134cSPetr Hosekendforeach() 209367ad73aSPetr Hosek 21071a43897SPetr Hosek# TODO: This is a temporary workaround until we figure out the right solution. 21171a43897SPetr Hosekset(BOOTSTRAP_LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "") 21271a43897SPetr Hosek 213367ad73aSPetr Hosek# Setup the bootstrap build. 214367ad73aSPetr Hosekset(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") 2155e1f49e8SPetr Hosekset(CLANG_BOOTSTRAP_EXTRA_DEPS 2165e1f49e8SPetr Hosek builtins 2175e1f49e8SPetr Hosek runtimes 2185e1f49e8SPetr Hosek CACHE STRING "") 219367ad73aSPetr Hosekset(CLANG_BOOTSTRAP_CMAKE_ARGS 220367ad73aSPetr Hosek ${EXTRA_ARGS} 221367ad73aSPetr Hosek -C ${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2.cmake 222367ad73aSPetr Hosek CACHE STRING "") 223