mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-28 05:40:35 +00:00
LLVMBuild: Introduce a common section which currently has a list of the
subdirectories to traverse into. - Originally I wanted to avoid this and just autoscan, but this has one key flaw in that new subdirectories can not automatically trigger a rerun of the llvm-build tool. This is particularly a pain when switching back and forth between trees where one has added a subdirectory, as the dependencies will tend to be wrong. This will also eliminates FIXME implicitly. llvm-svn: 146436
This commit is contained in:
parent
495f7b57f8
commit
b72534060e
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = bindings docs examples lib projects runtime tools utils
|
||||
|
||||
[component_0]
|
||||
type = Group
|
||||
name = Miscellaneous
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = IPA
|
||||
|
||||
[component_0]
|
||||
type = Library
|
||||
name = Analysis
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = Reader Writer
|
||||
|
||||
[component_0]
|
||||
type = Group
|
||||
name = Bitcode
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = AsmPrinter SelectionDAG
|
||||
|
||||
[component_0]
|
||||
type = Library
|
||||
name = CodeGen
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = Interpreter JIT MCJIT RuntimeDyld
|
||||
|
||||
[component_0]
|
||||
type = Library
|
||||
name = ExecutionEngine
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = Analysis Archive AsmParser Bitcode CodeGen DebugInfo ExecutionEngine Linker MC Object Support TableGen Target Transforms VMCore
|
||||
|
||||
[component_0]
|
||||
type = Group
|
||||
name = Libraries
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = MCDisassembler MCParser
|
||||
|
||||
[component_0]
|
||||
type = Library
|
||||
name = MC
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = AsmParser Disassembler InstPrinter MCTargetDesc TargetInfo
|
||||
|
||||
[component_0]
|
||||
type = TargetGroup
|
||||
name = ARM
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = TargetInfo
|
||||
|
||||
[component_0]
|
||||
type = TargetGroup
|
||||
name = CBackend
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = MCTargetDesc TargetInfo
|
||||
|
||||
[component_0]
|
||||
type = TargetGroup
|
||||
name = CellSPU
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = TargetInfo
|
||||
|
||||
[component_0]
|
||||
type = TargetGroup
|
||||
name = CppBackend
|
||||
|
@ -1,4 +1,4 @@
|
||||
;===- ./lib/Target/Hexagon/LLVMBuild.txt ----------------------*- Conf -*--===;
|
||||
;===- ./lib/Target/Hexagon/LLVMBuild.txt -----------------------*- Conf -*--===;
|
||||
;
|
||||
; The LLVM Compiler Infrastructure
|
||||
;
|
||||
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = TargetInfo
|
||||
|
||||
[component_0]
|
||||
type = TargetGroup
|
||||
name = Hexagon
|
||||
@ -27,4 +30,3 @@ name = HexagonCodeGen
|
||||
parent = Hexagon
|
||||
required_libraries = AsmPrinter CodeGen Core HexagonInfo SelectionDAG Support Target MC
|
||||
add_to_library_groups = Hexagon
|
||||
|
||||
|
@ -21,4 +21,3 @@ name = HexagonInfo
|
||||
parent = Hexagon
|
||||
required_libraries = MC Support
|
||||
add_to_library_groups = Hexagon
|
||||
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = ARM CBackend CellSPU CppBackend Hexagon MBlaze MSP430 Mips PTX PowerPC Sparc X86 XCore
|
||||
|
||||
; This is a special group whose required libraries are extended (by llvm-build)
|
||||
; with the best execution engine (the native JIT, if available, or the
|
||||
; interpreter).
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = AsmParser Disassembler InstPrinter MCTargetDesc TargetInfo
|
||||
|
||||
[component_0]
|
||||
type = TargetGroup
|
||||
name = MBlaze
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = InstPrinter MCTargetDesc TargetInfo
|
||||
|
||||
[component_0]
|
||||
type = TargetGroup
|
||||
name = MSP430
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = InstPrinter MCTargetDesc TargetInfo
|
||||
|
||||
[component_0]
|
||||
type = TargetGroup
|
||||
name = Mips
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = InstPrinter MCTargetDesc TargetInfo
|
||||
|
||||
[component_0]
|
||||
type = TargetGroup
|
||||
name = PTX
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = InstPrinter MCTargetDesc TargetInfo
|
||||
|
||||
[component_0]
|
||||
type = TargetGroup
|
||||
name = PowerPC
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = MCTargetDesc TargetInfo
|
||||
|
||||
[component_0]
|
||||
type = TargetGroup
|
||||
name = Sparc
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = AsmParser Disassembler InstPrinter MCTargetDesc TargetInfo Utils
|
||||
|
||||
[component_0]
|
||||
type = TargetGroup
|
||||
name = X86
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = MCTargetDesc TargetInfo
|
||||
|
||||
[component_0]
|
||||
type = TargetGroup
|
||||
name = XCore
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = IPO InstCombine Instrumentation Scalar Utils
|
||||
|
||||
[component_0]
|
||||
type = Group
|
||||
name = Transforms
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = bugpoint llc lli llvm-ar llvm-as llvm-bcanalyzer llvm-cov llvm-diff llvm-dis llvm-dwarfdump llvm-extract llvm-ld llvm-link llvm-mc llvm-nm llvm-objdump llvm-prof llvm-ranlib llvm-rtdyld llvm-size llvm-stub macho-dump opt
|
||||
|
||||
[component_0]
|
||||
type = Group
|
||||
name = Tools
|
||||
|
@ -15,6 +15,9 @@
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = TableGen unittest
|
||||
|
||||
[component_0]
|
||||
type = Group
|
||||
name = BuildTools
|
||||
|
@ -214,14 +214,45 @@ class LLVMProjectInfo(object):
|
||||
|
||||
info_basedir[ci.subpath] = info_basedir.get(ci.subpath, []) + [ci]
|
||||
|
||||
# Compute the list of subdirectories to scan.
|
||||
subpath_subdirs = {}
|
||||
for ci in self.component_infos:
|
||||
# Ignore root components.
|
||||
if ci.subpath == '/':
|
||||
continue
|
||||
|
||||
# Otherwise, append this subpath to the parent list.
|
||||
parent_path = os.path.dirname(ci.subpath)
|
||||
subpath_subdirs[parent_path] = parent_list = subpath_subdirs.get(
|
||||
parent_path, set())
|
||||
parent_list.add(os.path.basename(ci.subpath))
|
||||
|
||||
# Generate the build files.
|
||||
for subpath, infos in info_basedir.items():
|
||||
# Order the components by name to have a canonical ordering.
|
||||
infos.sort(key = lambda ci: ci.name)
|
||||
|
||||
# Format the components into llvmbuild fragments.
|
||||
fragments = filter(None, [ci.get_llvmbuild_fragment()
|
||||
for ci in infos])
|
||||
fragments = []
|
||||
|
||||
# Add the common fragments.
|
||||
subdirectories = subpath_subdirs.get(subpath)
|
||||
if subdirectories:
|
||||
fragment = """\
|
||||
subdirectories = %s
|
||||
""" % (" ".join(sorted(subdirectories)),)
|
||||
fragments.append(("common", fragment))
|
||||
|
||||
# Add the component fragments.
|
||||
num_common_fragments = len(fragments)
|
||||
for ci in infos:
|
||||
fragment = ci.get_llvmbuild_fragment()
|
||||
if fragment is None:
|
||||
continue
|
||||
|
||||
name = "component_%d" % (len(fragments) - num_common_fragments)
|
||||
fragments.append((name, fragment))
|
||||
|
||||
if not fragments:
|
||||
continue
|
||||
|
||||
@ -242,7 +273,7 @@ class LLVMProjectInfo(object):
|
||||
if ln.startswith(';'):
|
||||
comment_block += ln
|
||||
elif ln.startswith('[') and ln.endswith(']\n'):
|
||||
comments_map[ln[:-1]] = comment_block
|
||||
comments_map[ln[1:-2]] = comment_block
|
||||
else:
|
||||
comment_block = ""
|
||||
f.close()
|
||||
@ -275,15 +306,16 @@ class LLVMProjectInfo(object):
|
||||
;===------------------------------------------------------------------------===;
|
||||
""" % header_string
|
||||
|
||||
for i,fragment in enumerate(fragments):
|
||||
name = '[component_%d]' % i
|
||||
# Write out each fragment.each component fragment.
|
||||
for name,fragment in fragments:
|
||||
comment = comments_map.get(name)
|
||||
if comment is not None:
|
||||
f.write(comment)
|
||||
print >>f, name
|
||||
print >>f, "[%s]" % name
|
||||
f.write(fragment)
|
||||
if fragment is not fragments[-1]:
|
||||
if fragment is not fragments[-1][1]:
|
||||
print >>f
|
||||
|
||||
f.close()
|
||||
|
||||
def write_library_table(self, output_path):
|
||||
|
Loading…
Reference in New Issue
Block a user