12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- From 704b888d0abfb01067352c40156f49f655691c7c Mon Sep 17 00:00:00 2001
- From: Alexander Kanavin <alex.kanavin@gmail.com>
- Date: Mon, 19 Oct 2015 18:26:40 +0300
- Subject: [PATCH] giscanner: add --use-binary-wrapper option
- With this option, giscanner will use a wrapper executable to run
- binaries it's producing, instead of running them directly. This
- is useful when binaries are cross-compiled and cannot be run directly,
- but they can be run using for example QEMU emulation.
- Upstream-Status: Pending [review on oe-core list]
- Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
- Signed-off-by: Adam Duskett <aduskett@gmail.com>
- ---
- giscanner/scannermain.py | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
- diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
- index 633496f..d684cd0 100755
- --- a/giscanner/scannermain.py
- +++ b/giscanner/scannermain.py
- @@ -120,6 +120,9 @@ def _get_option_parser():
- parser.add_option("", "--program",
- action="store", dest="program", default=None,
- help="program to execute")
- + parser.add_option("", "--use-binary-wrapper",
- + action="store", dest="wrapper", default=None,
- + help="wrapper to use for running programs (useful when cross-compiling)")
- parser.add_option("", "--program-arg",
- action="append", dest="program_args", default=[],
- help="extra arguments to program")
- @@ -417,6 +420,17 @@ def create_binary(transformer, options, args):
- gdump_parser.get_error_quark_functions())
- shlibs = resolve_shlibs(options, binary, options.libraries)
- + if options.wrapper:
- + # The wrapper needs the binary itself, not the libtool wrapper script,
- + # so we check if libtool has sneaked the binary into .libs subdirectory
- + # and adjust the path accordingly
- + import os.path
- + dir_name, binary_name = os.path.split(binary.args[0])
- + libtool_binary = os.path.join(dir_name, '.libs', binary_name)
- + if os.path.exists(libtool_binary):
- + binary.args[0] = libtool_binary
- + # Then prepend the wrapper to the command line to execute
- + binary.args = [options.wrapper] + binary.args
- gdump_parser.set_introspection_binary(binary)
- gdump_parser.parse()
- return shlibs
- --
- 2.7.0
|