From 841f19f49ebaa592ffd612da7e95953897f517be Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Wed, 19 May 2021 12:18:32 +0200 Subject: [PATCH] ci: disable building some optional Clang components This commit disables the Clang static analyzer and ARCMigrate components of Clang. These aren't used at the moment in TinyGo so don't need to be enabled. This reduces the build by 200 files (2909 -> 2709). The idea comes from here (via LLVM weekly): https://www.cambus.net/speedbuilding-llvm-clang-in-5-minutes/ --- .circleci/config.yml | 12 ++++++------ Makefile | 4 ++-- azure-pipelines.yml | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a1ee7e30..01f2bec8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -157,7 +157,7 @@ commands: - llvm-source-linux - restore_cache: keys: - - llvm-build-11-linux-v3-assert + - llvm-build-11-linux-v4-assert - run: name: "Build LLVM" command: | @@ -176,7 +176,7 @@ commands: find llvm-build -name CMakeFiles -prune -exec rm -r '{}' \; fi - save_cache: - key: llvm-build-11-linux-v3-assert + key: llvm-build-11-linux-v4-assert paths: llvm-build - run: make ASSERT=1 @@ -225,7 +225,7 @@ commands: - llvm-source-linux - restore_cache: keys: - - llvm-build-11-linux-v3-noassert + - llvm-build-11-linux-v4-noassert - run: name: "Build LLVM" command: | @@ -244,7 +244,7 @@ commands: find llvm-build -name CMakeFiles -prune -exec rm -r '{}' \; fi - save_cache: - key: llvm-build-11-linux-v3-noassert + key: llvm-build-11-linux-v4-noassert paths: llvm-build - build-wasi-libc @@ -311,7 +311,7 @@ commands: - llvm-project/llvm/include - restore_cache: keys: - - llvm-build-11-macos-v4 + - llvm-build-11-macos-v5 - run: name: "Build LLVM" command: | @@ -327,7 +327,7 @@ commands: find llvm-build -name CMakeFiles -prune -exec rm -r '{}' \; fi - save_cache: - key: llvm-build-11-macos-v4 + key: llvm-build-11-macos-v5 paths: llvm-build - restore_cache: diff --git a/Makefile b/Makefile index bbb00fb6..52da5204 100644 --- a/Makefile +++ b/Makefile @@ -71,7 +71,7 @@ else endif # Libraries that should be linked in for the statically linked Clang. -CLANG_LIB_NAMES = clangAnalysis clangARCMigrate clangAST clangASTMatchers clangBasic clangCodeGen clangCrossTU clangDriver clangDynamicASTMatchers clangEdit clangFormat clangFrontend clangFrontendTool clangHandleCXX clangHandleLLVM clangIndex clangLex clangParse clangRewrite clangRewriteFrontend clangSema clangSerialization clangStaticAnalyzerCheckers clangStaticAnalyzerCore clangStaticAnalyzerFrontend clangTooling clangToolingASTDiff clangToolingCore clangToolingInclusions +CLANG_LIB_NAMES = clangAnalysis clangAST clangASTMatchers clangBasic clangCodeGen clangCrossTU clangDriver clangDynamicASTMatchers clangEdit clangFormat clangFrontend clangFrontendTool clangHandleCXX clangHandleLLVM clangIndex clangLex clangParse clangRewrite clangRewriteFrontend clangSema clangSerialization clangTooling clangToolingASTDiff clangToolingCore clangToolingInclusions CLANG_LIBS = $(START_GROUP) $(addprefix -l,$(CLANG_LIB_NAMES)) $(END_GROUP) -lstdc++ # Libraries that should be linked in for the statically linked LLD. @@ -159,7 +159,7 @@ llvm-source: $(LLVM_PROJECTDIR)/llvm # Configure LLVM. TINYGO_SOURCE_DIR=$(shell pwd) $(LLVM_BUILDDIR)/build.ninja: llvm-source - mkdir -p $(LLVM_BUILDDIR); cd $(LLVM_BUILDDIR); cmake -G Ninja $(TINYGO_SOURCE_DIR)/$(LLVM_PROJECTDIR)/llvm "-DLLVM_TARGETS_TO_BUILD=X86;ARM;AArch64;RISCV;WebAssembly" "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=AVR;Xtensa" -DCMAKE_BUILD_TYPE=Release -DLIBCLANG_BUILD_STATIC=ON -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_ZLIB=OFF -DLLVM_ENABLE_LIBEDIT=OFF -DLLVM_ENABLE_Z3_SOLVER=OFF -DLLVM_ENABLE_OCAMLDOC=OFF -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_PROJECTS="clang;lld" -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF $(LLVM_OPTION) + mkdir -p $(LLVM_BUILDDIR); cd $(LLVM_BUILDDIR); cmake -G Ninja $(TINYGO_SOURCE_DIR)/$(LLVM_PROJECTDIR)/llvm "-DLLVM_TARGETS_TO_BUILD=X86;ARM;AArch64;RISCV;WebAssembly" "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=AVR;Xtensa" -DCMAKE_BUILD_TYPE=Release -DLIBCLANG_BUILD_STATIC=ON -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_ZLIB=OFF -DLLVM_ENABLE_LIBEDIT=OFF -DLLVM_ENABLE_Z3_SOLVER=OFF -DLLVM_ENABLE_OCAMLDOC=OFF -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_PROJECTS="clang;lld" -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF -DCLANG_ENABLE_STATIC_ANALYZER=OFF -DCLANG_ENABLE_ARCMT=OFF $(LLVM_OPTION) # Build LLVM. $(LLVM_BUILDDIR): $(LLVM_BUILDDIR)/build.ninja diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6c5282ea..96d91884 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -28,7 +28,7 @@ jobs: - task: CacheBeta@0 displayName: Cache LLVM build inputs: - key: llvm-build-11-windows-v4 + key: llvm-build-11-windows-v5 path: llvm-build - task: Bash@3 displayName: Build LLVM