From 2322f36056265f809aaffb74fcf5ac0c83129752 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 2/4] 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>

---
 giscanner/scannermain.py | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
index b36284d..e37d3e3 100755
--- a/giscanner/scannermain.py
+++ b/giscanner/scannermain.py
@@ -118,6 +118,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")
@@ -406,6 +409,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.1.4

