;===- ./tools/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 =
 bugpoint
 dsymutil
 llc
 lli
 llvm-ar
 llvm-as
 llvm-bcanalyzer
 llvm-cat
 llvm-cfi-verify
 llvm-cov
 llvm-cvtres
 llvm-diff
 llvm-dis
 llvm-dwarfdump
 llvm-dwp
 llvm-elfabi
 llvm-exegesis
 llvm-extract
 llvm-jitlistener
 llvm-jitlink
 llvm-link
 llvm-lto
 llvm-mc
 llvm-mca
 llvm-modextract
 llvm-mt
 llvm-nm
 llvm-objcopy
 llvm-objdump
 llvm-pdbutil
 llvm-profdata
 llvm-rc
 llvm-rtdyld
 llvm-size
 llvm-split
 llvm-undname
 opt
 verify-uselistorder

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