1import("//llvm/tools/binutils_symlinks.gni")
2import("//llvm/utils/TableGen/tablegen.gni")
3import("//llvm/utils/gn/build/symlink_or_copy.gni")
4
5tablegen("ObjdumpOpts") {
6  visibility = [ ":llvm-objdump" ]
7  args = [ "-gen-opt-parser-defs" ]
8}
9
10tablegen("OtoolOpts") {
11  visibility = [ ":llvm-objdump" ]
12  args = [ "-gen-opt-parser-defs" ]
13}
14
15symlinks = [ "llvm-otool" ]
16if (llvm_install_binutils_symlinks) {
17  symlinks += [ "objdump" ]
18}
19
20foreach(target, symlinks) {
21  symlink_or_copy(target) {
22    deps = [ ":llvm-objdump" ]
23    source = "llvm-objdump"
24    output = "$root_out_dir/bin/$target"
25  }
26}
27
28# //:llvm-objdump depends on this symlink target, see comment in //BUILD.gn.
29group("symlinks") {
30  deps = [ ":llvm-objdump" ]
31  foreach(target, symlinks) {
32    deps += [ ":$target" ]
33  }
34}
35
36executable("llvm-objdump") {
37  deps = [
38    ":ObjdumpOpts",
39    ":OtoolOpts",
40    "//llvm/include/llvm/Config:config",
41    "//llvm/lib/CodeGen",
42    "//llvm/lib/DebugInfo/DWARF",
43    "//llvm/lib/DebugInfo/PDB",
44    "//llvm/lib/DebugInfo/Symbolize",
45    "//llvm/lib/Demangle",
46    "//llvm/lib/MC",
47    "//llvm/lib/MC/MCDisassembler",
48    "//llvm/lib/Object",
49    "//llvm/lib/Option",
50    "//llvm/lib/Support",
51    "//llvm/lib/Target:AllTargetsDescs",
52    "//llvm/lib/Target:AllTargetsDisassemblers",
53    "//llvm/lib/Target:AllTargetsInfos",
54    "//llvm/utils/gn/build/libs/xar",
55  ]
56  sources = [
57    "COFFDump.cpp",
58    "ELFDump.cpp",
59    "MachODump.cpp",
60    "SourcePrinter.cpp",
61    "WasmDump.cpp",
62    "XCOFFDump.cpp",
63    "llvm-objdump.cpp",
64  ]
65}
66