LLVMBuild: Add explicit information on whether targets define an assembly printer, assembly parser, or disassembler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144344 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/docs/LLVMBuild.html b/docs/LLVMBuild.html
index 1616b2d..2f06e30 100644
--- a/docs/LLVMBuild.html
+++ b/docs/LLVMBuild.html
@@ -292,6 +292,12 @@
       <p>Components with this type use the LibraryGroup properties in addition
       to:</p>
       <ul>
+        <li><i>has_asmparser</i> <b>[optional]</b> <b>[boolean]</b>
+          <p>Whether this target defines an assembly parser.</p></li>
+        <li><i>has_asmprinter</i> <b>[optional]</b> <b>[boolean]</b>
+          <p>Whether this target defines an assembly printer.</p></li>
+        <li><i>has_disassembler</i> <b>[optional]</b> <b>[boolean]</b>
+          <p>Whether this target defines a disassembler.</p></li>
         <li><i>has_jit</i> <b>[optional]</b> <b>[boolean]</b>
           <p>Whether this target supports JIT compilation.</p></li>
       </ul>
diff --git a/lib/Target/ARM/LLVMBuild.txt b/lib/Target/ARM/LLVMBuild.txt
index 79cae91..9082539 100644
--- a/lib/Target/ARM/LLVMBuild.txt
+++ b/lib/Target/ARM/LLVMBuild.txt
@@ -19,6 +19,9 @@
 type = TargetGroup
 name = ARM
 parent = Target
+has_asmparser = 1
+has_asmprinter = 1
+has_disassembler = 1
 has_jit = 1
 
 [component_1]
diff --git a/lib/Target/CellSPU/LLVMBuild.txt b/lib/Target/CellSPU/LLVMBuild.txt
index a2127dd..4ae26b2 100644
--- a/lib/Target/CellSPU/LLVMBuild.txt
+++ b/lib/Target/CellSPU/LLVMBuild.txt
@@ -19,6 +19,7 @@
 type = TargetGroup
 name = CellSPU
 parent = Target
+has_asmprinter = 1
 
 [component_1]
 type = Library
diff --git a/lib/Target/MBlaze/LLVMBuild.txt b/lib/Target/MBlaze/LLVMBuild.txt
index fa89552..f1a3f5d 100644
--- a/lib/Target/MBlaze/LLVMBuild.txt
+++ b/lib/Target/MBlaze/LLVMBuild.txt
@@ -19,6 +19,9 @@
 type = TargetGroup
 name = MBlaze
 parent = Target
+has_asmparser = 1
+has_asmprinter = 1
+has_disassembler = 1
 
 [component_1]
 type = Library
diff --git a/lib/Target/MSP430/LLVMBuild.txt b/lib/Target/MSP430/LLVMBuild.txt
index 9ade110..024312b 100644
--- a/lib/Target/MSP430/LLVMBuild.txt
+++ b/lib/Target/MSP430/LLVMBuild.txt
@@ -19,6 +19,7 @@
 type = TargetGroup
 name = MSP430
 parent = Target
+has_asmprinter = 1
 
 [component_1]
 type = Library
diff --git a/lib/Target/Mips/LLVMBuild.txt b/lib/Target/Mips/LLVMBuild.txt
index 65c7d7f..e733b52 100644
--- a/lib/Target/Mips/LLVMBuild.txt
+++ b/lib/Target/Mips/LLVMBuild.txt
@@ -19,6 +19,7 @@
 type = TargetGroup
 name = Mips
 parent = Target
+has_asmprinter = 1
 has_jit = 1
 
 [component_1]
diff --git a/lib/Target/PTX/LLVMBuild.txt b/lib/Target/PTX/LLVMBuild.txt
index 180e7ce..27807e6 100644
--- a/lib/Target/PTX/LLVMBuild.txt
+++ b/lib/Target/PTX/LLVMBuild.txt
@@ -19,6 +19,7 @@
 type = TargetGroup
 name = PTX
 parent = Target
+has_asmprinter = 1
 
 [component_1]
 type = Library
diff --git a/lib/Target/PowerPC/LLVMBuild.txt b/lib/Target/PowerPC/LLVMBuild.txt
index ce8b2e9..5baa988 100644
--- a/lib/Target/PowerPC/LLVMBuild.txt
+++ b/lib/Target/PowerPC/LLVMBuild.txt
@@ -19,6 +19,7 @@
 type = TargetGroup
 name = PowerPC
 parent = Target
+has_asmprinter = 1
 has_jit = 1
 
 [component_1]
diff --git a/lib/Target/Sparc/LLVMBuild.txt b/lib/Target/Sparc/LLVMBuild.txt
index d99057f..38c797f 100644
--- a/lib/Target/Sparc/LLVMBuild.txt
+++ b/lib/Target/Sparc/LLVMBuild.txt
@@ -19,6 +19,7 @@
 type = TargetGroup
 name = Sparc
 parent = Target
+has_asmprinter = 1
 
 [component_1]
 type = Library
diff --git a/lib/Target/X86/LLVMBuild.txt b/lib/Target/X86/LLVMBuild.txt
index 814e81b..514566c 100644
--- a/lib/Target/X86/LLVMBuild.txt
+++ b/lib/Target/X86/LLVMBuild.txt
@@ -19,6 +19,9 @@
 type = TargetGroup
 name = X86
 parent = Target
+has_asmparser = 1
+has_asmprinter = 1
+has_disassembler = 1
 has_jit = 1
 
 [component_1]
diff --git a/lib/Target/XCore/LLVMBuild.txt b/lib/Target/XCore/LLVMBuild.txt
index f1b7574..1f7e2d5 100644
--- a/lib/Target/XCore/LLVMBuild.txt
+++ b/lib/Target/XCore/LLVMBuild.txt
@@ -19,6 +19,7 @@
 type = TargetGroup
 name = XCore
 parent = Target
+has_asmprinter = 1
 
 [component_1]
 type = Library
diff --git a/utils/llvm-build/llvmbuild/componentinfo.py b/utils/llvm-build/llvmbuild/componentinfo.py
index 6897d10..b9a2d4f 100644
--- a/utils/llvm-build/llvmbuild/componentinfo.py
+++ b/utils/llvm-build/llvmbuild/componentinfo.py
@@ -198,10 +198,18 @@
         kwargs['add_to_library_groups'] = items.get_list(
             'add_to_library_groups')
         kwargs['has_jit'] = items.get_optional_bool('has_jit', False)
+        kwargs['has_asmprinter'] = items.get_optional_bool('has_asmprinter',
+                                                           False)
+        kwargs['has_asmparser'] = items.get_optional_bool('has_asmparser',
+                                                          False)
+        kwargs['has_disassembler'] = items.get_optional_bool('has_disassembler',
+                                                             False)
         return TargetGroupComponentInfo(subpath, **kwargs)
 
     def __init__(self, subpath, name, parent, required_libraries = [],
-                 add_to_library_groups = [], has_jit = False):
+                 add_to_library_groups = [], has_jit = False,
+                 has_asmprinter = False, has_asmparser = False,
+                 has_disassembler = False):
         ComponentInfo.__init__(self, subpath, name, [], parent)
 
         # The names of the library components which are required when linking
@@ -215,6 +223,15 @@
         # Whether or not this target supports the JIT.
         self.has_jit = bool(has_jit)
 
+        # Whether or not this target defines an assembly printer.
+        self.has_asmprinter = bool(has_asmprinter)
+
+        # Whether or not this target defines an assembly parser.
+        self.has_asmparser = bool(has_asmparser)
+
+        # Whether or not this target defines an disassembler.
+        self.has_disassembler = bool(has_disassembler)
+
         # Whether or not this target is enabled. This is set in response to
         # configuration parameters.
         self.enabled = False
@@ -238,9 +255,10 @@
         if self.add_to_library_groups:
             print >>result, 'add_to_library_groups = %s' % ' '.join(
                 self.add_to_library_groups)
-        if self.has_jit:
-            print >>result, 'has_jit = %s' % ' '.join(
-                int(self.has_jit))
+        for bool_key in ('has_asmparser', 'has_asmprinter', 'has_disassembler',
+                         'has_jit'):
+            if getattr(self, bool_key):
+                print >>result, '%s = 1' % (bool_key,)
         return result.getvalue()
 
     def get_llvmconfig_component_name(self):