| import("//llvm/tools/binutils_symlinks.gni") |
| import("//llvm/tools/cctools_symlinks.gni") |
| import("//llvm/utils/TableGen/tablegen.gni") |
| import("//llvm/utils/gn/build/symlink_or_copy.gni") |
| |
| tablegen("ObjdumpOpts") { |
| visibility = [ ":llvm-objdump" ] |
| args = [ "-gen-opt-parser-defs" ] |
| } |
| |
| tablegen("OtoolOpts") { |
| visibility = [ ":llvm-objdump" ] |
| args = [ "-gen-opt-parser-defs" ] |
| } |
| |
| symlinks = [ "llvm-otool" ] |
| if (llvm_install_binutils_symlinks) { |
| symlinks += [ "objdump" ] |
| } |
| if (llvm_install_cctools_symlinks) { |
| symlinks += [ "otool" ] |
| } |
| |
| foreach(target, symlinks) { |
| symlink_or_copy(target) { |
| deps = [ ":llvm-objdump" ] |
| source = "llvm-objdump" |
| output = "$root_out_dir/bin/$target" |
| } |
| } |
| |
| # //:llvm-objdump depends on this symlink target, see comment in //BUILD.gn. |
| group("symlinks") { |
| deps = [ ":llvm-objdump" ] |
| foreach(target, symlinks) { |
| deps += [ ":$target" ] |
| } |
| } |
| |
| executable("llvm-objdump") { |
| deps = [ |
| ":ObjdumpOpts", |
| ":OtoolOpts", |
| "//llvm/include/llvm/Config:config", |
| "//llvm/lib/CodeGen", |
| "//llvm/lib/DebugInfo/DWARF", |
| "//llvm/lib/DebugInfo/PDB", |
| "//llvm/lib/DebugInfo/Symbolize", |
| "//llvm/lib/Debuginfod", |
| "//llvm/lib/Demangle", |
| "//llvm/lib/MC", |
| "//llvm/lib/MC/MCDisassembler", |
| "//llvm/lib/Object", |
| "//llvm/lib/Option", |
| "//llvm/lib/Support", |
| "//llvm/lib/Target:AllTargetsDescs", |
| "//llvm/lib/Target:AllTargetsDisassemblers", |
| "//llvm/lib/Target:AllTargetsInfos", |
| "//llvm/lib/TargetParser", |
| "//llvm/utils/gn/build/libs/xar", |
| ] |
| sources = [ |
| "COFFDump.cpp", |
| "ELFDump.cpp", |
| "MachODump.cpp", |
| "OffloadDump.cpp", |
| "SourcePrinter.cpp", |
| "WasmDump.cpp", |
| "XCOFFDump.cpp", |
| "llvm-objdump.cpp", |
| ] |
| } |