Skip to content

The world gets rebuilt after a small git checkout #7893

@eguiraud

Description

@eguiraud

Describe the bug

After checking out a small commit that only touches a gtest, libCling gets rebuilt because a dependency (VCSRevision.h) changes, which in turn means everything that depends on cling gets rebuilt:

// ... snip ...
[ 26%] Generating VCSRevision.h
[ 26%] Built target LLVMMCDisassembler
[ 26%] Built target LLVMOption
[ 26%] Built target LLVMMCParser
[ 26%] Built target LLVMRemarks
[ 26%] Built target clang-cmake-exports
[ 26%] Built target rconfigure
[ 27%] Built target obj.llvm-tblgen
[ 27%] Built target llvm_vcsrevision_h
[ 27%] Built target gitcommit
[ 27%] Built target LLVMDebugInfoMSF
[ 27%] Built target obj.clang-tblgen
[ 27%] Built target rootMan
[ 28%] Built target LLVMDebugInfoDWARF
[ 28%] Built target rsa
[ 28%] Built target LLVMDebugInfoCodeView
[ 28%] Built target haddMan
[ 28%] Built target LLVMMC
[ 28%] Built target hist2workspaceMan
[ 28%] Built target copy_pretty_printers
[ 28%] Built target rootclingMan
[ 28%] Built target ProofBenchPARFiles
[ 29%] Built target move_headers
[ 30%] Built target LLVMSupport
[ 30%] Built target Foundation_Stage1
[ 30%] Built target BaseTROOT
[ 30%] Built target Foundation
[ 30%] Built target clang-tblgen
[ 30%] Built target Clib
[ 30%] Built target llvm-tblgen
[ 30%] Built target Lz4
[ 30%] Built target TextInput
[ 30%] Built target Zstd
[ 30%] Built target Lzma
[ 30%] Built target Unix
[ 30%] Built target GuiCore
[ 30%] Built target Zip
[ 30%] Built target Cont
[ 30%] Built target Meta
[ 30%] Built target RootPcmObjs
[ 30%] Built target mathtext
[ 30%] Built target root
[ 30%] Built target rmkdepend
[ 30%] Built target AttributeCompatFuncTableGen
[ 30%] Built target rpdutil
[ 30%] Built target ClangAttrImpl
[ 30%] Built target intrinsics_gen
[ 30%] Built target ClangSACheckers
[ 30%] Built target InstCombineTableGen
[ 30%] Built target StmtDataCollectors
[ 30%] Built target ClangCommentHTMLTags
[ 30%] Built target ClangAttrClasses
[ 30%] Built target ClangCommentHTMLTagsProperties
[ 30%] Built target ClangAttrTextDump
[ 31%] Built target ClangCommentNodes
[ 32%] Built target ClangAttrTraverse
[ 32%] Built target ClangDeclNodes
[ 32%] Built target ClangCommentHTMLNamedCharacterReferences
[ 56%] Built target move_artifacts
[ 32%] Built target ClangAttrVisitor
[ 56%] Built target ClangCommentCommandList
[ 56%] Built target ClangStmtNodes
[ 56%] Built target ClangCommentCommandInfo
[ 56%] Built target ClangARMFP16
[ 56%] Built target ClangAttrHasAttributeImpl
[ 56%] Built target Base
[ 56%] Built target ClangARMNeon
[ 56%] Built target ClangAttrSubjectMatchRuleList
[ 56%] Built target ClangDiagnosticIndexName
[ 56%] Built target ClangDiagnosticComment
[ 56%] Built target ClangDiagnosticAST
[ 56%] Built target ClangDiagnosticAnalysis
[ 56%] Built target ClangAttrList
[ 56%] Built target ClangDiagnosticCrossTU
[ 56%] Built target ClangDiagnosticLex
[ 56%] Built target ClangDiagnosticDriver
[ 56%] Built target ClangDiagnosticCommon
[ 56%] Built target ClangDiagnosticParse
[ 56%] Built target ClangDiagnosticFrontend
[ 56%] Built target ClangDiagnosticSema
[ 56%] Built target ClangDiagnosticGroups
[ 56%] Built target ClangDiagnosticRefactoring
[ 56%] Built target ClangDiagnosticSerialization
[ 56%] Built target ClangAttrSubMatchRulesParserStringSwitches
[ 56%] Built target ClangAttrParsedAttrImpl
[ 56%] Built target ClangAttrSpellingListIndex
[ 56%] Built target ClangAttrParsedAttrKinds
[ 56%] Built target ClangAttrParsedAttrList
[ 56%] Built target ClangAttrParserStringSwitches
[ 56%] Built target ClangAttrTemplateInstantiate
[ 57%] Built target ClangAttrPCHWrite
[ 57%] Built target ClangAttrPCHRead
[ 57%] Built target ClangDriverOptions
[ 59%] Built target clang-resource-headers
[ 59%] Built target LLVMIRReader
[ 60%] Built target LLVMBitReader
[ 60%] Built target LLVMBitWriter
[ 61%] Built target LLVMInstrumentation
[ 61%] Built target LLVMAggressiveInstCombine
[ 61%] Built target LLVMGlobalISel
[ 61%] Built target LLVMSelectionDAG
[ 63%] Built target LLVMCore
[ 63%] Built target LLVMObjCARCOpts
[ 63%] Built target LLVMInstCombine
[ 64%] Built target LLVMAsmPrinter
[ 64%] Built target LLVMVectorize
[ 64%] Built target LLVMLinker
[ 64%] Built target LLVMCoroutines
[ 65%] Built target LLVMipo
[ 65%] Built target LLVMTransformUtils
[ 65%] Built target LLVMExecutionEngine
[ 65%] Built target LLVMLTO
[ 65%] Built target LLVMJITLink
[ 65%] Built target LLVMPasses
[ 65%] Built target LLVMAsmParser
[ 66%] Built target LLVMObject
[ 66%] Built target LLVMTarget
[ 66%] Built target LLVMProfileData
[ 66%] Built target LLVMRuntimeDyld
[ 66%] Built target X86CommonTableGen
[ 66%] Built target NVPTXCommonTableGen
[ 66%] Built target clang-tablegen-targets
[ 66%] Built target LLVMCoverage
[ 67%] Built target LLVMScalarOpts
[ 67%] Built target LLVMX86Disassembler
[ 67%] Built target LLVMX86Info
[ 67%] Built target LLVMNVPTXInfo
[ 67%] Built target LLVMNVPTXDesc
[ 67%] Built target LLVMX86AsmParser
[ 67%] Generating VCSVersion.inc
[ 67%] Built target LLVMX86Utils
[ 68%] Built target LLVMAnalysis
[ 67%] Built target LLVMX86Desc
-- Found Git: /usr/bin/git (found version "2.31.1")
[ 68%] Built target LLVMNVPTXCodeGen
[ 68%] Built target obj.clangParse
[ 68%] Built target obj.clangASTMatchers
[ 69%] Built target ClangOpenCLBuiltinsImpl
[ 69%] Built target obj.clangLex
[ 69%] Built target LLVMCodeGen
[ 69%] Built target obj.clangEdit
[ 69%] Built target obj.clangRewrite
[ 69%] Built target clang-headers
[ 69%] Built target LLVMX86CodeGen
[ 69%] Built target obj.clangSerialization
[ 69%] Built target clangParse
[ 70%] Built target obj.clangAnalysis
[ 70%] Built target clangASTMatchers
[ 70%] Built target obj.clangDriver
[ 71%] Built target obj.clangRewriteFrontend
[ 71%] Built target clangEdit
[ 71%] Built target obj.clangFrontend
[ 71%] Built target clangLex
[ 71%] Built target clangRewrite
[ 71%] Built target obj.clangAST
[ 71%] Built target clangAnalysis
[ 71%] Built target clangSerialization
[ 71%] Built target LLVMOrcJIT
[ 71%] Built target obj.clingMetaProcessor
[ 71%] Built target clangRewriteFrontend
[ 71%] Built target obj.clingUtils
[ 71%] Built target clangFrontend
[ 71%] Built target clangDriver
[ 71%] Building CXX object interpreter/llvm/src/tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/Version.cpp.o
[ 72%] Built target obj.clangCodeGen
[ 72%] Built target clangAST
[ 72%] Built target obj.clangSema
[ 72%] Built target clingMetaProcessor
[ 72%] Built target clingUtils
[ 72%] Built target clangCodeGen
[ 72%] Built target clangSema
[ 72%] Built target obj.clingInterpreter
[ 72%] Built target clingInterpreter
[ 72%] Built target clad
[ 72%] Built target CLING
[ 72%] Built target LLVMRES
[ 72%] Built target Dictgen
[ 72%] Built target ClingUtils
[ 73%] Built target MetaCling
[ 73%] Built target obj.clangBasic
[ 73%] Linking CXX static library ../../../../lib/libclangBasic.a
[ 73%] Built target clangBasic
[ 73%] Linking CXX shared library ../../../lib/libCling.so
[ 73%] Linking CXX executable src/rootcling_stage1
// ... snip ...

Expected behavior

Checking out a different revision of a given file should only trigger a rebuild of the targets that depend on that file.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions