xref: /llvm-project/clang/cmake/caches/Fuchsia.cmake (revision 8cffab821c4b96c73fc4ad5e8ca2417ced953c5a)
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