summaryrefslogtreecommitdiff
path: root/clang/cmake
diff options
context:
space:
mode:
authorChris Bieneman <beanz@apple.com>2016-10-26 15:41:38 +0000
committerChris Bieneman <beanz@apple.com>2016-10-26 15:41:38 +0000
commit839394c7eb9eb146cff4560b89ca8a9636812746 (patch)
tree00d2432392019b0972be3cf2f5fe39e05f27f408 /clang/cmake
parentf695cde54ffdfa5ee89d11cbfae60d45c21134d2 (diff)
[CMake] Adding example distribution CMake cache files
These cache file are provided as an example of how to set up simple multi-stage CMake builds. I have a batch of documentation updates for LLVM.org which reference these files.
Diffstat (limited to 'clang/cmake')
-rw-r--r--clang/cmake/caches/DistributionExample-stage2.cmake30
-rw-r--r--clang/cmake/caches/DistributionExample.cmake34
2 files changed, 64 insertions, 0 deletions
diff --git a/clang/cmake/caches/DistributionExample-stage2.cmake b/clang/cmake/caches/DistributionExample-stage2.cmake
new file mode 100644
index 00000000000..894ea6af6c3
--- /dev/null
+++ b/clang/cmake/caches/DistributionExample-stage2.cmake
@@ -0,0 +1,30 @@
+# This file sets up a CMakeCache for the second stage of a simple distribution
+# bootstrap build.
+
+set(LLVM_TARGETS_TO_BUILD X86;ARM;AArch64 CACHE STRING "")
+
+set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "")
+set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -gline-tables-only -DNDEBUG" CACHE STRING "")
+set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -gline-tables-only -DNDEBUG" CACHE STRING "")
+
+# setup toolchain
+set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "")
+set(LLVM_TOOLCHAIN_TOOLS
+ llvm-dsymutil
+ llvm-cov
+ llvm-dwarfdump
+ llvm-profdata
+ llvm-objdump
+ llvm-nm
+ llvm-size
+ CACHE STRING "")
+
+set(LLVM_DISTRIBUTION_COMPONENTS
+ clang
+ LTO
+ clang-format
+ clang-headers
+ builtins
+ runtimes
+ ${LLVM_TOOLCHAIN_TOOLS}
+ CACHE STRING "")
diff --git a/clang/cmake/caches/DistributionExample.cmake b/clang/cmake/caches/DistributionExample.cmake
new file mode 100644
index 00000000000..862f547c165
--- /dev/null
+++ b/clang/cmake/caches/DistributionExample.cmake
@@ -0,0 +1,34 @@
+# This file sets up a CMakeCache for a simple distribution bootstrap build.
+
+# Only build the native target in stage1 since it is a throwaway build.
+set(LLVM_TARGETS_TO_BUILD Native CACHE STRING "")
+
+# Optimize the stage1 compiler, but don't LTO it because that wastes time.
+set(CMAKE_BUILD_TYPE Release CACHE STRING "")
+
+# Setup vendor-specific settings.
+set(PACKAGE_VENDOR LLVM.org CACHE STRING "")
+
+# Setting up the stage2 LTO option needs to be done on the stage1 build so that
+# the proper LTO library dependencies can be connected.
+set(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "")
+
+# Expose stage2 targets through the stage1 build configuration.
+set(CLANG_BOOTSTRAP_TARGETS
+ check-all
+ check-llvm
+ check-clang
+ llvm-config
+ test-suite
+ test-depends
+ llvm-test-depends
+ clang-test-depends
+ distribution
+ install-distribution
+ clang CACHE STRING "")
+
+# Setup the bootstrap build.
+set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "")
+set(CLANG_BOOTSTRAP_CMAKE_ARGS
+ -C ${CMAKE_CURRENT_LIST_DIR}/DistributionExample-stage2.cmake
+ CACHE STRING "")