| Index: build/toolchain/gcc_link_wrapper.py
|
| diff --git a/build/toolchain/gcc_link_wrapper.py b/build/toolchain/gcc_link_wrapper.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..74eb4604a839c0c12da84f879861ba3afbc0a7e5
|
| --- /dev/null
|
| +++ b/build/toolchain/gcc_link_wrapper.py
|
| @@ -0,0 +1,49 @@
|
| +#!/usr/bin/env python
|
| +# Copyright 2015 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +"""Runs a linking command and optionally a strip command.
|
| +
|
| +This script exists to avoid using complex shell commands in
|
| +gcc_toolchain.gni's tool("link"), in case the host running the compiler
|
| +does not have a POSIX-like shell (e.g. Windows).
|
| +"""
|
| +
|
| +import argparse
|
| +import subprocess
|
| +import sys
|
| +
|
| +
|
| +def main():
|
| + parser = argparse.ArgumentParser(description=__doc__)
|
| + parser.add_argument('--strip',
|
| + help='The strip binary to run',
|
| + metavar='PATH')
|
| + parser.add_argument('--unstripped-file',
|
| + required=True,
|
| + help='Executable file produced by linking command',
|
| + metavar='FILE')
|
| + parser.add_argument('--output',
|
| + required=True,
|
| + help='Final output executable file',
|
| + metavar='FILE')
|
| + parser.add_argument('command', nargs='+',
|
| + help='Linking command')
|
| + args = parser.parse_args()
|
| +
|
| + # First, run the actual link.
|
| + result = subprocess.call(args.command)
|
| + if result != 0:
|
| + return result
|
| +
|
| + # Finally, strip the linked executable (if desired).
|
| + if args.strip:
|
| + result = subprocess.call([args.strip, '--strip-unneeded',
|
| + '-o', args.output, args.unstripped_file])
|
| +
|
| + return result
|
| +
|
| +
|
| +if __name__ == "__main__":
|
| + sys.exit(main())
|
|
|