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