From: Nico Weber Date: Wed, 19 Dec 2018 02:48:01 +0000 (+0000) Subject: [gn build] Add build file for llvm-objcopy X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4bc3cc6dbf276873283025a69b03dca99c291e93;p=llvm [gn build] Add build file for llvm-objcopy Needed by check-lld. This should've been part of r349486 but I messed up. Differential Revision: https://reviews.llvm.org/D55831 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349598 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/gn/secondary/BUILD.gn b/utils/gn/secondary/BUILD.gn index 9f5c66014fb..38716d569a9 100644 --- a/utils/gn/secondary/BUILD.gn +++ b/utils/gn/secondary/BUILD.gn @@ -9,6 +9,7 @@ group("default") { "//llvm/tools/llvm-dwarfdump", "//llvm/tools/llvm-mc", "//llvm/tools/llvm-nm:symlinks", + "//llvm/tools/llvm-objcopy:symlinks", "//llvm/tools/llvm-objdump:symlinks", "//llvm/tools/llvm-pdbutil", "//llvm/tools/llvm-readobj:symlinks", @@ -59,6 +60,11 @@ group("llvm-nm") { "//llvm/tools/llvm-nm:symlinks", ] } +group("llvm-objcopy") { + deps = [ + "//llvm/tools/llvm-objcopy:symlinks", + ] +} group("llvm-objdump") { deps = [ "//llvm/tools/llvm-objdump:symlinks", diff --git a/utils/gn/secondary/llvm/tools/llvm-objcopy/BUILD.gn b/utils/gn/secondary/llvm/tools/llvm-objcopy/BUILD.gn new file mode 100644 index 00000000000..6dd48d6ef8b --- /dev/null +++ b/utils/gn/secondary/llvm/tools/llvm-objcopy/BUILD.gn @@ -0,0 +1,57 @@ +import("//llvm/tools/binutils_symlinks.gni") +import("//llvm/utils/TableGen/tablegen.gni") +import("//llvm/utils/gn/build/symlink_or_copy.gni") + +tablegen("ObjcopyOpts") { + visibility = [ ":llvm-objcopy" ] + args = [ "-gen-opt-parser-defs" ] +} + +tablegen("StripOpts") { + visibility = [ ":llvm-objcopy" ] + args = [ "-gen-opt-parser-defs" ] +} + +symlinks = [ "llvm-strip" ] +if (llvm_install_binutils_symlinks) { + symlinks += [ + "objcopy", + "strip", + ] +} +foreach(target, symlinks) { + symlink_or_copy(target) { + deps = [ + ":llvm-objcopy", + ] + source = "llvm-objcopy" + output = "$root_out_dir/bin/$target" + } +} + +# //:llvm-objcopy depends on this symlink target, see comment in //BUILD.gn. +group("symlinks") { + deps = [] + foreach(target, symlinks) { + deps += [ ":$target" ] + } +} + +executable("llvm-objcopy") { + deps = [ + ":ObjcopyOpts", + ":StripOpts", + "//llvm/lib/MC", + "//llvm/lib/Object", + "//llvm/lib/Option", + "//llvm/lib/Support", + ] + include_dirs = [ "." ] + sources = [ + "Buffer.cpp", + "CopyConfig.cpp", + "ELF/ELFObjcopy.cpp", + "ELF/Object.cpp", + "llvm-objcopy.cpp", + ] +}