;===- ./lib/LLVMBuild.txt --------------------------------------*- Conf -*--===;
;
; Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
; See https://llvm.org/LICENSE.txt for license information.
; SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
;
;===------------------------------------------------------------------------===;
;
; This is an LLVMBuild description file for the components in this subdirectory.
;
; For more information on the LLVMBuild system, please see:
;
;   http://llvm.org/docs/LLVMBuild.html
;
;===------------------------------------------------------------------------===;

[common]
subdirectories =
 Analysis
 AsmParser
 Bitcode
 Bitstream
 CodeGen
 DebugInfo
 Demangle
 DWARFLinker
 ExecutionEngine
 Frontend
 FuzzMutate
 LineEditor
 Linker
 IR
 IRReader
 LTO
 MC
 MCA
 Object
 BinaryFormat
 ObjectYAML
 Option
 Remarks
 Passes
 ProfileData
 Support
 TableGen
 TextAPI
 Target
 Testing
 ToolDrivers
 Transforms
 WindowsManifest
 XRay

[component_0]
type = Group
name = Libraries
parent = $ROOT
