1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import("//build/toolchain/toolchain.gni")
- # Extracts symbols from a binary into a symbol file using dump_syms.
- #
- # Args:
- # binary: Path to the binary containing symbols to extract, e.g.:
- # "$root_out_dir/electron"
- # symbol_dir: Desired output directory for symbols, e.g.:
- # "$root_out_dir/breakpad_symbols"
- if (host_os == "win") {
- _host_executable_suffix = ".exe"
- } else {
- _host_executable_suffix = ""
- }
- template("extract_symbols") {
- action(target_name) {
- forward_variables_from(invoker,
- [
- "deps",
- "testonly",
- ])
- assert(defined(invoker.binary), "Need binary to dump")
- assert(defined(invoker.symbol_dir), "Need directory for symbol output")
- dump_syms_label = "//third_party/breakpad:dump_syms($host_toolchain)"
- dump_syms_binary = get_label_info(dump_syms_label, "root_out_dir") +
- "/dump_syms$_host_executable_suffix"
- script = "//electron/build/dump_syms.py"
- inputs = [
- invoker.binary,
- dump_syms_binary,
- ]
- stamp_file = "${target_gen_dir}/${target_name}.stamp"
- outputs = [ stamp_file ]
- args = [
- "./" + rebase_path(dump_syms_binary, root_build_dir),
- rebase_path(invoker.binary, root_build_dir),
- rebase_path(invoker.symbol_dir, root_build_dir),
- rebase_path(stamp_file, root_build_dir),
- ]
- if (defined(invoker.dsym_file)) {
- args += [ rebase_path(invoker.dsym_file, root_build_dir) ]
- }
- if (!defined(deps)) {
- deps = []
- }
- deps += [ dump_syms_label ]
- }
- }
|