1# This file sets up a CMakeCache for a Fuchsia toolchain build. 2 3option(FUCHSIA_ENABLE_LLDB "Enable LLDB") 4 5set(LLVM_TARGETS_TO_BUILD X86;ARM;AArch64;RISCV CACHE STRING "") 6 7set(PACKAGE_VENDOR Fuchsia CACHE STRING "") 8 9set(_FUCHSIA_ENABLE_PROJECTS "bolt;clang;clang-tools-extra;lld;llvm;polly") 10 11set(LLVM_ENABLE_DIA_SDK OFF CACHE BOOL "") 12set(LLVM_ENABLE_LIBEDIT OFF CACHE BOOL "") 13set(LLVM_ENABLE_LIBXML2 OFF CACHE BOOL "") 14set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON CACHE BOOL "") 15set(LLVM_ENABLE_UNWIND_TABLES OFF CACHE BOOL "") 16set(LLVM_ENABLE_Z3_SOLVER OFF CACHE BOOL "") 17set(LLVM_ENABLE_ZLIB OFF CACHE BOOL "") 18set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") 19set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") 20set(LLVM_USE_RELATIVE_PATHS_IN_FILES ON CACHE BOOL "") 21set(LLDB_ENABLE_CURSES OFF CACHE BOOL "") 22set(LLDB_ENABLE_LIBEDIT OFF CACHE BOOL "") 23 24# Passthrough stage1 flags to stage1. 25set(_FUCHSIA_BOOTSTRAP_PASSTHROUGH 26 LLVM_ENABLE_ZLIB 27 ZLIB_INCLUDE_DIR 28 ZLIB_LIBRARY 29 LLVM_ENABLE_ZSTD 30 zstd_DIR 31 LLVM_ENABLE_LIBXML2 32 LibXml2_ROOT 33 LLVM_ENABLE_CURL 34 LLVM_ENABLE_HTTPLIB 35 LLVM_ENABLE_LIBEDIT 36 CURL_ROOT 37 OpenSSL_ROOT 38 httplib_ROOT 39 40 # Deprecated 41 CursesAndPanel_ROOT 42 43 CURSES_INCLUDE_DIRS 44 CURSES_LIBRARIES 45 PANEL_LIBRARIES 46 47 # Deprecated 48 LibEdit_ROOT 49 50 LibEdit_INCLUDE_DIRS 51 LibEdit_LIBRARIES 52 53 FUCHSIA_ENABLE_LLDB 54 LLDB_ENABLE_CURSES 55 LLDB_ENABLE_LIBEDIT 56 LLDB_ENABLE_PYTHON 57 LLDB_EMBED_PYTHON_HOME 58 LLDB_PYTHON_HOME 59 LLDB_PYTHON_RELATIVE_PATH 60 LLDB_TEST_USER_ARGS 61 Python3_EXECUTABLE 62 Python3_LIBRARIES 63 Python3_INCLUDE_DIRS 64 Python3_RPATH 65 SWIG_DIR 66 SWIG_EXECUTABLE 67 CMAKE_FIND_PACKAGE_PREFER_CONFIG 68 CMAKE_SYSROOT 69 LLVM_WINSYSROOT 70 LLVM_VFSOVERLAY 71) 72 73foreach(variable ${_FUCHSIA_BOOTSTRAP_PASSTHROUGH}) 74 get_property(is_value_set CACHE ${variable} PROPERTY VALUE SET) 75 if(${is_value_set}) 76 get_property(value CACHE ${variable} PROPERTY VALUE) 77 get_property(type CACHE ${variable} PROPERTY TYPE) 78 set(BOOTSTRAP_${variable} "${value}" CACHE ${type} "") 79 endif() 80endforeach() 81 82set(CLANG_DEFAULT_CXX_STDLIB libc++ CACHE STRING "") 83set(CLANG_DEFAULT_LINKER lld CACHE STRING "") 84set(CLANG_DEFAULT_OBJCOPY llvm-objcopy CACHE STRING "") 85set(CLANG_DEFAULT_RTLIB compiler-rt CACHE STRING "") 86set(CLANG_DEFAULT_UNWINDLIB libunwind CACHE STRING "") 87set(CLANG_ENABLE_ARCMT OFF CACHE BOOL "") 88set(CLANG_ENABLE_STATIC_ANALYZER OFF CACHE BOOL "") 89set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") 90 91set(ENABLE_LINKER_BUILD_ID ON CACHE BOOL "") 92set(ENABLE_X86_RELAX_RELOCATIONS ON CACHE BOOL "") 93 94set(LLVM_ENABLE_ASSERTIONS ON CACHE BOOL "") 95set(LLVM_ENABLE_BACKTRACES ON CACHE BOOL "") 96set(CMAKE_BUILD_TYPE Release CACHE STRING "") 97if(APPLE) 98 set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13" CACHE STRING "") 99elseif(WIN32) 100 set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded" CACHE STRING "") 101endif() 102 103if(APPLE) 104 set(COMPILER_RT_ENABLE_IOS OFF CACHE BOOL "") 105 set(COMPILER_RT_ENABLE_TVOS OFF CACHE BOOL "") 106 set(COMPILER_RT_ENABLE_WATCHOS OFF CACHE BOOL "") 107endif() 108 109if(WIN32) 110 set(LIBCXX_ABI_VERSION 2 CACHE STRING "") 111 set(LIBCXX_ENABLE_ABI_LINKER_SCRIPT OFF CACHE BOOL "") 112 set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") 113 set(BUILTINS_CMAKE_ARGS -DCMAKE_SYSTEM_NAME=Windows CACHE STRING "") 114 set(RUNTIMES_CMAKE_ARGS -DCMAKE_SYSTEM_NAME=Windows CACHE STRING "") 115 set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx" CACHE STRING "") 116else() 117 set(LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "") 118 set(LIBUNWIND_INSTALL_LIBRARY OFF CACHE BOOL "") 119 set(LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "") 120 set(LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "") 121 set(LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "") 122 set(LIBCXXABI_INSTALL_LIBRARY OFF CACHE BOOL "") 123 set(LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "") 124 set(LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "") 125 set(LIBCXX_ABI_VERSION 2 CACHE STRING "") 126 set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") 127 set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "") 128 set(LIBCXX_HARDENING_MODE "none" CACHE STRING "") 129 set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") 130 set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "") 131 set(RUNTIMES_CMAKE_ARGS "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13;-DCMAKE_OSX_ARCHITECTURES=arm64|x86_64" CACHE STRING "") 132endif() 133 134if(BOOTSTRAP_CMAKE_SYSTEM_NAME) 135 set(target "${BOOTSTRAP_CMAKE_CXX_COMPILER_TARGET}") 136 if(STAGE2_LINUX_${target}_SYSROOT) 137 set(LLVM_BUILTIN_TARGETS "${target}" CACHE STRING "") 138 set(BUILTINS_${target}_CMAKE_SYSTEM_NAME Linux CACHE STRING "") 139 set(BUILTINS_${target}_CMAKE_BUILD_TYPE Release CACHE STRING "") 140 set(BUILTINS_${target}_CMAKE_SYSROOT ${STAGE2_LINUX_${target}_SYSROOT} CACHE STRING "") 141 142 set(LLVM_RUNTIME_TARGETS "${target}" CACHE STRING "") 143 set(RUNTIMES_${target}_CMAKE_SYSTEM_NAME Linux CACHE STRING "") 144 set(RUNTIMES_${target}_CMAKE_BUILD_TYPE Release CACHE STRING "") 145 set(RUNTIMES_${target}_CMAKE_SYSROOT ${STAGE2_LINUX_${target}_SYSROOT} CACHE STRING "") 146 set(RUNTIMES_${target}_COMPILER_RT_USE_BUILTINS_LIBRARY ON CACHE BOOL "") 147 set(RUNTIMES_${target}_LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "") 148 set(RUNTIMES_${target}_LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "") 149 set(RUNTIMES_${target}_LIBUNWIND_INSTALL_LIBRARY OFF CACHE BOOL "") 150 set(RUNTIMES_${target}_LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "") 151 set(RUNTIMES_${target}_LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "") 152 set(RUNTIMES_${target}_LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "") 153 set(RUNTIMES_${target}_LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "") 154 set(RUNTIMES_${target}_LIBCXXABI_INSTALL_LIBRARY OFF CACHE BOOL "") 155 set(RUNTIMES_${target}_LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") 156 set(RUNTIMES_${target}_LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") 157 set(RUNTIMES_${target}_LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "") 158 set(RUNTIMES_${target}_LIBCXX_ABI_VERSION 2 CACHE STRING "") 159 set(RUNTIMES_${target}_LLVM_ENABLE_ASSERTIONS OFF CACHE BOOL "") 160 set(RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "") 161 set(RUNTIMES_${target}_SANITIZER_CXX_ABI "libc++" CACHE STRING "") 162 set(RUNTIMES_${target}_SANITIZER_CXX_ABI_INTREE ON CACHE BOOL "") 163 endif() 164endif() 165 166set(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "") 167set(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "") 168 169set(_FUCHSIA_BOOTSTRAP_TARGETS 170 check-all 171 check-clang 172 check-lld 173 check-llvm 174 check-polly 175 llvm-config 176 clang-test-depends 177 lld-test-depends 178 llvm-test-depends 179 test-suite 180 test-depends 181 toolchain-distribution 182 install-toolchain-distribution 183 install-toolchain-distribution-stripped 184 install-toolchain-distribution-toolchain 185 clang) 186 187if(FUCHSIA_ENABLE_LLDB) 188 list(APPEND _FUCHSIA_ENABLE_PROJECTS lldb) 189 list(APPEND _FUCHSIA_BOOTSTRAP_TARGETS 190 check-lldb 191 lldb-test-depends 192 debugger-distribution 193 install-debugger-distribution 194 install-debugger-distribution-stripped 195 install-debugger-distribution-toolchain) 196endif() 197 198set(LLVM_ENABLE_PROJECTS ${_FUCHSIA_ENABLE_PROJECTS} CACHE STRING "") 199set(CLANG_BOOTSTRAP_TARGETS ${_FUCHSIA_BOOTSTRAP_TARGETS} CACHE STRING "") 200 201get_cmake_property(variableNames VARIABLES) 202foreach(variableName ${variableNames}) 203 if(variableName MATCHES "^STAGE2_") 204 string(REPLACE "STAGE2_" "" new_name ${variableName}) 205 string(REPLACE ";" "|" value "${${variableName}}") 206 list(APPEND EXTRA_ARGS "-D${new_name}=${value}") 207 endif() 208endforeach() 209 210# TODO: This is a temporary workaround until we figure out the right solution. 211set(BOOTSTRAP_LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "") 212 213# Setup the bootstrap build. 214set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") 215set(CLANG_BOOTSTRAP_EXTRA_DEPS 216 builtins 217 runtimes 218 CACHE STRING "") 219set(CLANG_BOOTSTRAP_CMAKE_ARGS 220 ${EXTRA_ARGS} 221 -C ${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2.cmake 222 CACHE STRING "") 223