blob: e4a130ecfcfeca87901414001e990cf1b068d3bc [file] [log] [blame]
Petr Hosek367ad732017-02-17 19:28:54 +00001# This file sets up a CMakeCache for a Fuchsia toolchain build.
2
Petr Hosekd63e8462018-11-16 04:50:12 +00003set(LLVM_TARGETS_TO_BUILD X86;ARM;AArch64 CACHE STRING "")
Petr Hosek367ad732017-02-17 19:28:54 +00004
5set(PACKAGE_VENDOR Fuchsia CACHE STRING "")
6
Petr Hosek367ad732017-02-17 19:28:54 +00007set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "")
Petr Hosek2423c162018-06-28 05:15:46 +00008set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON CACHE BOOL "")
Petr Hosek86cc84d2017-11-27 20:29:13 +00009set(LLVM_ENABLE_TERMINFO OFF CACHE BOOL "")
10set(LLVM_ENABLE_ZLIB OFF CACHE BOOL "")
Petr Hosek649af772019-01-15 01:15:00 +000011set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "")
12set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "")
13
14set(CLANG_DEFAULT_CXX_STDLIB libc++ CACHE STRING "")
15if(NOT APPLE)
16 set(CLANG_DEFAULT_LINKER lld CACHE STRING "")
17 set(CLANG_DEFAULT_OBJCOPY llvm-objcopy CACHE STRING "")
18endif()
19set(CLANG_DEFAULT_RTLIB compiler-rt CACHE STRING "")
Petr Hosek367ad732017-02-17 19:28:54 +000020set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "")
21
Petr Hosek42af1352019-01-06 04:14:51 +000022set(ENABLE_LINKER_BUILD_ID ON CACHE BOOL "")
23set(ENABLE_X86_RELAX_RELOCATIONS ON CACHE BOOL "")
24
Petr Hosek72797622017-12-21 22:10:27 +000025set(LLVM_ENABLE_ASSERTIONS ON CACHE BOOL "")
Petr Hosek367ad732017-02-17 19:28:54 +000026set(CMAKE_BUILD_TYPE Release CACHE STRING "")
27
Petr Hosek60f54ac2017-04-13 21:09:42 +000028if(APPLE)
29 set(COMPILER_RT_ENABLE_IOS OFF CACHE BOOL "")
30 set(COMPILER_RT_ENABLE_TVOS OFF CACHE BOOL "")
31 set(COMPILER_RT_ENABLE_WATCHOS OFF CACHE BOOL "")
Petr Hosek0b9629b2018-06-28 20:33:18 +000032elseif(UNIX)
Petr Hoseke52b7522018-06-28 20:19:11 +000033 set(LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "")
34 set(LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "")
35 set(LIBUNWIND_INSTALL_LIBRARY OFF CACHE BOOL "")
36 set(LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "")
37 set(LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "")
38 set(LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "")
39 set(LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "")
40 set(LIBCXXABI_INSTALL_LIBRARY OFF CACHE BOOL "")
41 set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")
42 set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")
43 set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "")
Petr Hosek60f54ac2017-04-13 21:09:42 +000044endif()
45
Petr Hosekd63e8462018-11-16 04:50:12 +000046if(BOOTSTRAP_CMAKE_SYSTEM_NAME)
47 set(target "${BOOTSTRAP_CMAKE_CXX_COMPILER_TARGET}")
48 if(STAGE2_LINUX_${target}_SYSROOT)
49 set(BUILTINS_${target}_CMAKE_SYSTEM_NAME Linux CACHE STRING "")
50 set(BUILTINS_${target}_CMAKE_BUILD_TYPE Release CACHE STRING "")
51 set(BUILTINS_${target}_CMAKE_SYSROOT ${STAGE2_LINUX_${target}_SYSROOT} CACHE STRING "")
52 set(LLVM_BUILTIN_TARGETS "${target}" CACHE STRING "")
53
54 set(RUNTIMES_${target}_CMAKE_SYSTEM_NAME Linux CACHE STRING "")
55 set(RUNTIMES_${target}_CMAKE_BUILD_TYPE Release CACHE STRING "")
56 set(RUNTIMES_${target}_CMAKE_SYSROOT ${STAGE2_LINUX_${target}_SYSROOT} CACHE STRING "")
57 set(RUNTIMES_${target}_LLVM_ENABLE_ASSERTIONS ON CACHE BOOL "")
58 set(RUNTIMES_${target}_LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "")
59 set(RUNTIMES_${target}_LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "")
60 set(RUNTIMES_${target}_LIBUNWIND_INSTALL_LIBRARY OFF CACHE BOOL "")
61 set(RUNTIMES_${target}_LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "")
62 set(RUNTIMES_${target}_LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "")
63 set(RUNTIMES_${target}_LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "")
64 set(RUNTIMES_${target}_LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "")
65 set(RUNTIMES_${target}_LIBCXXABI_INSTALL_LIBRARY OFF CACHE BOOL "")
66 set(RUNTIMES_${target}_LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")
67 set(RUNTIMES_${target}_LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")
68 set(RUNTIMES_${target}_LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "")
69 set(RUNTIMES_${target}_LIBCXX_ABI_VERSION 2 CACHE STRING "")
70 set(RUNTIMES_${target}_SANITIZER_CXX_ABI "libc++" CACHE STRING "")
71 set(RUNTIMES_${target}_SANITIZER_CXX_ABI_INTREE ON CACHE BOOL "")
72 set(RUNTIMES_${target}_COMPILER_RT_USE_BUILTINS_LIBRARY ON CACHE BOOL "")
73 set(LLVM_RUNTIME_TARGETS "${target}" CACHE STRING "")
74 endif()
75endif()
76
Petr Hosek649af772019-01-15 01:15:00 +000077set(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "")
78if(NOT APPLE)
79 set(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "")
80endif()
81
Petr Hosek367ad732017-02-17 19:28:54 +000082set(CLANG_BOOTSTRAP_TARGETS
83 check-all
84 check-llvm
85 check-clang
Petr Hosek88778102019-01-02 05:11:57 +000086 check-lld
Petr Hosek367ad732017-02-17 19:28:54 +000087 llvm-config
88 test-suite
89 test-depends
90 llvm-test-depends
91 clang-test-depends
Petr Hosek88778102019-01-02 05:11:57 +000092 lld-test-depends
Petr Hosek367ad732017-02-17 19:28:54 +000093 distribution
94 install-distribution
Petr Hosek8084f912018-06-06 05:18:39 +000095 install-distribution-stripped
Petr Hosek88778102019-01-02 05:11:57 +000096 install-distribution-toolchain
Petr Hosek367ad732017-02-17 19:28:54 +000097 clang CACHE STRING "")
98
Petr Hosek403793e2018-05-08 02:47:13 +000099get_cmake_property(variableNames VARIABLES)
100foreach(variableName ${variableNames})
101 if(variableName MATCHES "^STAGE2_")
102 string(REPLACE "STAGE2_" "" new_name ${variableName})
103 list(APPEND EXTRA_ARGS "-D${new_name}=${${variableName}}")
Petr Hosekdce11342017-07-19 02:57:47 +0000104 endif()
105endforeach()
Petr Hosek367ad732017-02-17 19:28:54 +0000106
107# Setup the bootstrap build.
108set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "")
Petr Hosek5e1f49e2018-06-11 22:06:44 +0000109set(CLANG_BOOTSTRAP_EXTRA_DEPS
110 builtins
111 runtimes
112 CACHE STRING "")
Petr Hosek367ad732017-02-17 19:28:54 +0000113set(CLANG_BOOTSTRAP_CMAKE_ARGS
114 ${EXTRA_ARGS}
115 -C ${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2.cmake
116 CACHE STRING "")