xref: /openbsd-src/gnu/llvm/clang/cmake/caches/DistributionExample.cmake (revision e5dd70708596ae51455a0ffa086a00c5b29f8583)
1*e5dd7070Spatrick# This file sets up a CMakeCache for a simple distribution bootstrap build.
2*e5dd7070Spatrick
3*e5dd7070Spatrick#Enable LLVM projects and runtimes
4*e5dd7070Spatrickset(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld" CACHE STRING "")
5*e5dd7070Spatrickset(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi" CACHE STRING "")
6*e5dd7070Spatrick
7*e5dd7070Spatrick# Only build the native target in stage1 since it is a throwaway build.
8*e5dd7070Spatrickset(LLVM_TARGETS_TO_BUILD Native CACHE STRING "")
9*e5dd7070Spatrick
10*e5dd7070Spatrick# Optimize the stage1 compiler, but don't LTO it because that wastes time.
11*e5dd7070Spatrickset(CMAKE_BUILD_TYPE Release CACHE STRING "")
12*e5dd7070Spatrick
13*e5dd7070Spatrick# Setup vendor-specific settings.
14*e5dd7070Spatrickset(PACKAGE_VENDOR LLVM.org CACHE STRING "")
15*e5dd7070Spatrick
16*e5dd7070Spatrick# Setting up the stage2 LTO option needs to be done on the stage1 build so that
17*e5dd7070Spatrick# the proper LTO library dependencies can be connected.
18*e5dd7070Spatrickset(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "")
19*e5dd7070Spatrick
20*e5dd7070Spatrickif (NOT APPLE)
21*e5dd7070Spatrick  # Since LLVM_ENABLE_LTO is ON we need a LTO capable linker
22*e5dd7070Spatrick  set(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "")
23*e5dd7070Spatrickendif()
24*e5dd7070Spatrick
25*e5dd7070Spatrick# Expose stage2 targets through the stage1 build configuration.
26*e5dd7070Spatrickset(CLANG_BOOTSTRAP_TARGETS
27*e5dd7070Spatrick  check-all
28*e5dd7070Spatrick  check-llvm
29*e5dd7070Spatrick  check-clang
30*e5dd7070Spatrick  llvm-config
31*e5dd7070Spatrick  test-suite
32*e5dd7070Spatrick  test-depends
33*e5dd7070Spatrick  llvm-test-depends
34*e5dd7070Spatrick  clang-test-depends
35*e5dd7070Spatrick  distribution
36*e5dd7070Spatrick  install-distribution
37*e5dd7070Spatrick  clang CACHE STRING "")
38*e5dd7070Spatrick
39*e5dd7070Spatrick# Setup the bootstrap build.
40*e5dd7070Spatrickset(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "")
41*e5dd7070Spatrick
42*e5dd7070Spatrickif(STAGE2_CACHE_FILE)
43*e5dd7070Spatrick  set(CLANG_BOOTSTRAP_CMAKE_ARGS
44*e5dd7070Spatrick    -C ${STAGE2_CACHE_FILE}
45*e5dd7070Spatrick    CACHE STRING "")
46*e5dd7070Spatrickelse()
47*e5dd7070Spatrick  set(CLANG_BOOTSTRAP_CMAKE_ARGS
48*e5dd7070Spatrick    -C ${CMAKE_CURRENT_LIST_DIR}/DistributionExample-stage2.cmake
49*e5dd7070Spatrick    CACHE STRING "")
50*e5dd7070Spatrickendif()
51