blob: 486d53b75f8e5f7ed0085a19ff820d9b217d34d8 [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 Hosek864fd442019-08-29 23:12:06 +000022set(ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER ON CACHE BOOL "")
Petr Hosek42af1352019-01-06 04:14:51 +000023set(ENABLE_LINKER_BUILD_ID ON CACHE BOOL "")
24set(ENABLE_X86_RELAX_RELOCATIONS ON CACHE BOOL "")
25
Petr Hosek72797622017-12-21 22:10:27 +000026set(LLVM_ENABLE_ASSERTIONS ON CACHE BOOL "")
Petr Hosek367ad732017-02-17 19:28:54 +000027set(CMAKE_BUILD_TYPE Release CACHE STRING "")
28
Petr Hosek60f54ac2017-04-13 21:09:42 +000029if(APPLE)
30 set(COMPILER_RT_ENABLE_IOS OFF CACHE BOOL "")
31 set(COMPILER_RT_ENABLE_TVOS OFF CACHE BOOL "")
32 set(COMPILER_RT_ENABLE_WATCHOS OFF CACHE BOOL "")
33endif()
34
Petr Hosek9d8d0f62019-06-05 06:58:41 +000035set(LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "")
36set(LIBUNWIND_INSTALL_LIBRARY OFF CACHE BOOL "")
37set(LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "")
38set(LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "")
39set(LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "")
40set(LIBCXXABI_INSTALL_LIBRARY OFF CACHE BOOL "")
41set(LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "")
42set(LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "")
43set(LIBCXX_ABI_VERSION 2 CACHE STRING "")
44set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")
45set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "")
46set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")
47
Petr Hosekd63e8462018-11-16 04:50:12 +000048if(BOOTSTRAP_CMAKE_SYSTEM_NAME)
49 set(target "${BOOTSTRAP_CMAKE_CXX_COMPILER_TARGET}")
50 if(STAGE2_LINUX_${target}_SYSROOT)
51 set(BUILTINS_${target}_CMAKE_SYSTEM_NAME Linux CACHE STRING "")
52 set(BUILTINS_${target}_CMAKE_BUILD_TYPE Release CACHE STRING "")
53 set(BUILTINS_${target}_CMAKE_SYSROOT ${STAGE2_LINUX_${target}_SYSROOT} CACHE STRING "")
54 set(LLVM_BUILTIN_TARGETS "${target}" CACHE STRING "")
55
56 set(RUNTIMES_${target}_CMAKE_SYSTEM_NAME Linux CACHE STRING "")
57 set(RUNTIMES_${target}_CMAKE_BUILD_TYPE Release CACHE STRING "")
58 set(RUNTIMES_${target}_CMAKE_SYSROOT ${STAGE2_LINUX_${target}_SYSROOT} CACHE STRING "")
59 set(RUNTIMES_${target}_LLVM_ENABLE_ASSERTIONS ON CACHE BOOL "")
60 set(RUNTIMES_${target}_LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "")
61 set(RUNTIMES_${target}_LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "")
62 set(RUNTIMES_${target}_LIBUNWIND_INSTALL_LIBRARY OFF CACHE BOOL "")
63 set(RUNTIMES_${target}_LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "")
64 set(RUNTIMES_${target}_LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "")
65 set(RUNTIMES_${target}_LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "")
66 set(RUNTIMES_${target}_LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "")
67 set(RUNTIMES_${target}_LIBCXXABI_INSTALL_LIBRARY OFF CACHE BOOL "")
68 set(RUNTIMES_${target}_LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")
69 set(RUNTIMES_${target}_LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")
70 set(RUNTIMES_${target}_LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "")
71 set(RUNTIMES_${target}_LIBCXX_ABI_VERSION 2 CACHE STRING "")
72 set(RUNTIMES_${target}_SANITIZER_CXX_ABI "libc++" CACHE STRING "")
73 set(RUNTIMES_${target}_SANITIZER_CXX_ABI_INTREE ON CACHE BOOL "")
74 set(RUNTIMES_${target}_COMPILER_RT_USE_BUILTINS_LIBRARY ON CACHE BOOL "")
75 set(LLVM_RUNTIME_TARGETS "${target}" CACHE STRING "")
76 endif()
77endif()
78
Petr Hosekf9fe4832019-02-12 16:24:46 +000079if(UNIX)
80 set(BOOTSTRAP_CMAKE_SHARED_LINKER_FLAGS "-ldl -lpthread" CACHE STRING "")
81 set(BOOTSTRAP_CMAKE_MODULE_LINKER_FLAGS "-ldl -lpthread" CACHE STRING "")
82 set(BOOTSTRAP_CMAKE_EXE_LINKER_FLAGS "-ldl -lpthread" CACHE STRING "")
83endif()
84
Petr Hosek649af772019-01-15 01:15:00 +000085set(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "")
86if(NOT APPLE)
87 set(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "")
88endif()
89
Petr Hosek367ad732017-02-17 19:28:54 +000090set(CLANG_BOOTSTRAP_TARGETS
91 check-all
92 check-llvm
93 check-clang
Petr Hosek88778102019-01-02 05:11:57 +000094 check-lld
Petr Hosek367ad732017-02-17 19:28:54 +000095 llvm-config
96 test-suite
97 test-depends
98 llvm-test-depends
99 clang-test-depends
Petr Hosek88778102019-01-02 05:11:57 +0000100 lld-test-depends
Petr Hosek367ad732017-02-17 19:28:54 +0000101 distribution
102 install-distribution
Petr Hosek8084f912018-06-06 05:18:39 +0000103 install-distribution-stripped
Petr Hosek88778102019-01-02 05:11:57 +0000104 install-distribution-toolchain
Petr Hosek367ad732017-02-17 19:28:54 +0000105 clang CACHE STRING "")
106
Petr Hosek403793e2018-05-08 02:47:13 +0000107get_cmake_property(variableNames VARIABLES)
108foreach(variableName ${variableNames})
109 if(variableName MATCHES "^STAGE2_")
110 string(REPLACE "STAGE2_" "" new_name ${variableName})
111 list(APPEND EXTRA_ARGS "-D${new_name}=${${variableName}}")
Petr Hosekdce11342017-07-19 02:57:47 +0000112 endif()
113endforeach()
Petr Hosek367ad732017-02-17 19:28:54 +0000114
115# Setup the bootstrap build.
116set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "")
Petr Hosek5e1f49e2018-06-11 22:06:44 +0000117set(CLANG_BOOTSTRAP_EXTRA_DEPS
118 builtins
119 runtimes
120 CACHE STRING "")
Petr Hosek367ad732017-02-17 19:28:54 +0000121set(CLANG_BOOTSTRAP_CMAKE_ARGS
122 ${EXTRA_ARGS}
123 -C ${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2.cmake
124 CACHE STRING "")