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