brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.4 KiB · 83ff4cc Raw
272 lines · plain
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_PASSTHROUGH26  LLVM_ENABLE_ZLIB27  ZLIB_INCLUDE_DIR28  ZLIB_LIBRARY29  LLVM_ENABLE_ZSTD30  zstd_DIR31  LLVM_ENABLE_LIBXML232  LibXml2_ROOT33  LLVM_ENABLE_CURL34  LLVM_ENABLE_HTTPLIB35  LLVM_ENABLE_LIBEDIT36  CURL_ROOT37  OpenSSL_ROOT38  httplib_ROOT39 40  # Deprecated41  CursesAndPanel_ROOT42 43  CURSES_INCLUDE_DIRS44  CURSES_LIBRARIES45  PANEL_LIBRARIES46 47  # Deprecated48  LibEdit_ROOT49 50  LibEdit_INCLUDE_DIRS51  LibEdit_LIBRARIES52 53  FUCHSIA_ENABLE_LLDB54  LLDB_ENABLE_CURSES55  LLDB_ENABLE_LIBEDIT56  LLDB_ENABLE_PYTHON57  LLDB_EMBED_PYTHON_HOME58  LLDB_PYTHON_HOME59  LLDB_PYTHON_RELATIVE_PATH60  LLDB_TEST_USER_ARGS61  Python3_EXECUTABLE62  Python3_LIBRARIES63  Python3_INCLUDE_DIRS64  Python3_RPATH65  SWIG_DIR66  SWIG_EXECUTABLE67  CMAKE_FIND_PACKAGE_PREFER_CONFIG68  CMAKE_SYSROOT69  LLVM_WINSYSROOT70  LLVM_VFSOVERLAY71)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    if(FUCHSIA_ENABLE_PGO)80      set(BOOTSTRAP_BOOTSTRAP_${variable} "${value}" CACHE ${type} "")81    endif()82  endif()83endforeach()84 85set(CLANG_DEFAULT_CXX_STDLIB libc++ CACHE STRING "")86set(CLANG_DEFAULT_LINKER lld CACHE STRING "")87set(CLANG_DEFAULT_OBJCOPY llvm-objcopy CACHE STRING "")88set(CLANG_DEFAULT_RTLIB compiler-rt CACHE STRING "")89set(CLANG_DEFAULT_UNWINDLIB libunwind CACHE STRING "")90set(CLANG_ENABLE_STATIC_ANALYZER OFF CACHE BOOL "")91set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "")92 93set(ENABLE_LINKER_BUILD_ID ON CACHE BOOL "")94set(ENABLE_X86_RELAX_RELOCATIONS ON CACHE BOOL "")95 96set(LLVM_ENABLE_ASSERTIONS ON CACHE BOOL "")97set(LLVM_ENABLE_BACKTRACES ON CACHE BOOL "")98set(CMAKE_BUILD_TYPE Release CACHE STRING "")99if(APPLE)100  set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0" CACHE STRING "")101elseif(WIN32)102  set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded" CACHE STRING "")103endif()104 105if(APPLE)106  set(COMPILER_RT_ENABLE_IOS OFF CACHE BOOL "")107  set(COMPILER_RT_ENABLE_TVOS OFF CACHE BOOL "")108  set(COMPILER_RT_ENABLE_WATCHOS OFF CACHE BOOL "")109endif()110 111if(WIN32)112  set(LIBCXX_ABI_VERSION 2 CACHE STRING "")113  set(LIBCXX_ENABLE_ABI_LINKER_SCRIPT OFF CACHE BOOL "")114  set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")115  set(BUILTINS_CMAKE_ARGS -DCMAKE_SYSTEM_NAME=Windows CACHE STRING "")116  set(RUNTIMES_CMAKE_ARGS -DCMAKE_SYSTEM_NAME=Windows CACHE STRING "")117  set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx" CACHE STRING "")118else()119  set(LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "")120  set(LIBUNWIND_INSTALL_LIBRARY OFF CACHE BOOL "")121  set(LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "")122  set(LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "")123  set(LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "")124  set(LIBCXXABI_INSTALL_LIBRARY OFF CACHE BOOL "")125  set(LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "")126  set(LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "")127  set(LIBCXX_ABI_VERSION 2 CACHE STRING "")128  set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")129  set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "")130  set(LIBCXX_HARDENING_MODE "none" CACHE STRING "")131  set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")132  set(COMPILER_RT_BUILD_LIBFUZZER OFF CACHE BOOL "")133  set(COMPILER_RT_BUILD_PROFILE ON CACHE BOOL "")134  set(COMPILER_RT_BUILD_SANITIZERS OFF CACHE BOOL "")135  set(COMPILER_RT_BUILD_XRAY OFF CACHE BOOL "")136  set(COMPILER_RT_USE_BUILTINS_LIBRARY ON CACHE BOOL "")137  set(COMPILER_RT_DEFAULT_TARGET_ONLY ON CACHE BOOL "")138  set(SANITIZER_CXX_ABI "libc++" CACHE STRING "")139  set(SANITIZER_CXX_ABI_INTREE ON CACHE BOOL "")140  set(SANITIZER_TEST_CXX "libc++" CACHE STRING "")141  set(SANITIZER_TEST_CXX_INTREE ON CACHE BOOL "")142  set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "")143  set(RUNTIMES_CMAKE_ARGS "-DCMAKE_OSX_DEPLOYMENT_TARGET=11.0;-DCMAKE_OSX_ARCHITECTURES=arm64|x86_64" CACHE STRING "")144endif()145 146if(BOOTSTRAP_CMAKE_SYSTEM_NAME)147  set(target "${BOOTSTRAP_CMAKE_CXX_COMPILER_TARGET}")148  if(STAGE2_LINUX_${target}_SYSROOT)149    set(LLVM_BUILTIN_TARGETS "${target}" CACHE STRING "")150    set(BUILTINS_${target}_CMAKE_SYSTEM_NAME Linux CACHE STRING "")151    set(BUILTINS_${target}_CMAKE_BUILD_TYPE Release CACHE STRING "")152    set(BUILTINS_${target}_CMAKE_SYSROOT ${STAGE2_LINUX_${target}_SYSROOT} CACHE STRING "")153 154    set(LLVM_RUNTIME_TARGETS "${target}" CACHE STRING "")155    set(RUNTIMES_${target}_CMAKE_SYSTEM_NAME Linux CACHE STRING "")156    set(RUNTIMES_${target}_CMAKE_BUILD_TYPE Release CACHE STRING "")157    set(RUNTIMES_${target}_CMAKE_SYSROOT ${STAGE2_LINUX_${target}_SYSROOT} CACHE STRING "")158    set(RUNTIMES_${target}_COMPILER_RT_USE_BUILTINS_LIBRARY ON CACHE BOOL "")159    set(RUNTIMES_${target}_LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "")160    set(RUNTIMES_${target}_LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "")161    set(RUNTIMES_${target}_LIBUNWIND_INSTALL_LIBRARY OFF CACHE BOOL "")162    set(RUNTIMES_${target}_LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "")163    set(RUNTIMES_${target}_LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "")164    set(RUNTIMES_${target}_LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "")165    set(RUNTIMES_${target}_LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "")166    set(RUNTIMES_${target}_LIBCXXABI_INSTALL_LIBRARY OFF CACHE BOOL "")167    set(RUNTIMES_${target}_LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")168    set(RUNTIMES_${target}_LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")169    set(RUNTIMES_${target}_LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "")170    set(RUNTIMES_${target}_LIBCXX_ABI_VERSION 2 CACHE STRING "")171    set(RUNTIMES_${target}_LLVM_ENABLE_ASSERTIONS OFF CACHE BOOL "")172    set(RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "")173    set(RUNTIMES_${target}_SANITIZER_CXX_ABI "libc++" CACHE STRING "")174    set(RUNTIMES_${target}_SANITIZER_CXX_ABI_INTREE ON CACHE BOOL "")175  endif()176endif()177 178set(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "")179set(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "")180 181if(FUCHSIA_ENABLE_PGO)182  set(BOOTSTRAP_LLVM_BUILD_INSTRUMENTED IR CACHE BOOL "")183 184  set(_FUCHSIA_BOOTSTRAP_TARGETS185    generate-profdata186    stage2187    stage2-toolchain-distribution188    stage2-install-toolchain-distribution189    stage2-install-toolchain-distribution-stripped190    stage2-install-toolchain-distribution-toolchain191    stage2-check-all192    stage2-check-clang193    stage2-check-lld194    stage2-check-llvm195    stage2-check-polly196    stage2-test-suite)197  if(FUCHSIA_ENABLE_LLDB)198    list(APPEND _FUCHSIA_ENABLE_PROJECTS lldb)199    list(APPEND _FUCHSIA_BOOTSTRAP_TARGETS200      stage2-check-lldb201      stage2-debugger-distribution202      stage2-install-debugger-distribution203      stage2-install-debugger-distribution-stripped204      stage2-install-debugger-distribution-toolchain)205  endif()206else()207 set(_FUCHSIA_BOOTSTRAP_TARGETS208   check-all209   check-clang210   check-lld211   check-llvm212   check-polly213   llvm-config214   clang215   clang-test-depends216   lld-test-depends217   llvm-test-depends218   test-suite219   test-depends220   toolchain-distribution221   install-toolchain-distribution222   install-toolchain-distribution-stripped223   install-toolchain-distribution-toolchain)224 if(FUCHSIA_ENABLE_LLDB)225   list(APPEND _FUCHSIA_ENABLE_PROJECTS lldb)226   list(APPEND _FUCHSIA_BOOTSTRAP_TARGETS227     check-lldb228     lldb-test-depends229     debugger-distribution230     install-debugger-distribution231     install-debugger-distribution-stripped232     install-debugger-distribution-toolchain)233 endif()234endif()235 236set(LLVM_ENABLE_PROJECTS ${_FUCHSIA_ENABLE_PROJECTS} CACHE STRING "")237set(CLANG_BOOTSTRAP_TARGETS ${_FUCHSIA_BOOTSTRAP_TARGETS} CACHE STRING "")238 239get_cmake_property(variableNames VARIABLES)240foreach(variableName ${variableNames})241  if(variableName MATCHES "^STAGE2_")242    list(APPEND EXTRA_ARGS "-D${variableName}=${${variableName}}")243    string(REPLACE "STAGE2_" "" new_name ${variableName})244    string(REPLACE ";" "|" value "${${variableName}}")245    list(APPEND EXTRA_ARGS "-D${new_name}=${value}")246  endif()247endforeach()248 249# TODO: This is a temporary workaround until we figure out the right solution.250set(BOOTSTRAP_LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "")251 252set(LLVM_BUILTIN_TARGETS "default" CACHE STRING "")253set(LLVM_RUNTIME_TARGETS "default" CACHE STRING "")254 255# Setup the bootstrap build.256set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "")257set(CLANG_BOOTSTRAP_EXTRA_DEPS258  builtins259  runtimes260  CACHE STRING "")261if(FUCHSIA_ENABLE_PGO)262  set(CLANG_BOOTSTRAP_CMAKE_ARGS263    ${EXTRA_ARGS}264    -C ${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2-instrumented.cmake265    CACHE STRING "")266else()267  set(CLANG_BOOTSTRAP_CMAKE_ARGS268    ${EXTRA_ARGS}269    -C ${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2.cmake270    CACHE STRING "")271endif()272