From fdff21f111ec35248b6fa8acb2f4f56cb9fb02ff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Louis-Francis=20Ratt=C3=A9-Boulianne?= <lfrb@collabora.com>
Date: Thu, 15 Dec 2016 02:47:07 -0500
Subject: [PATCH] Add utility function to unwrap target if device
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

If the target is a device, we want to know whether to use a
sysroot or the SDK for configuration/debugging/etc.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Reviewed-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Differential Revision: https://phabricator.apertis.org/D5298
---
 tools/ade | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)

diff --git a/tools/ade b/tools/ade
index 3e5580a..1fd2491 100755
--- a/tools/ade
+++ b/tools/ade
@@ -972,6 +972,20 @@ class Ade:
             self.die("No target (simulator, sysroot or device) specified")
         return target
 
+    def unpack_sysroot(self, target):
+        if isinstance(target, Device):
+            sdk = self.get_sdk()
+            version = target.version
+            if sdk and version.is_compatible(sdk.version):
+                return sdk # Native compilation; SDK version matches device image version
+            else:
+                sysroot = self.get_sysroot_manager().get_installed(version)
+                if not sysroot:
+                    self.die("No sysroot currently installed for {0}{1}{2}"
+                             .format(Colors.OKBLUE, version.get_name(), Colors.ENDC))
+                return sysroot
+        return target
+
     def do_sysroot_list(self):
         manager = self.get_sysroot_manager()
         versions = manager.get_versions()
@@ -1192,19 +1206,7 @@ class Ade:
                 print("AppVersion:{0}".format(obj.version))
 
     def do_configure(self):
-        target = self.get_target()
-
-        if isinstance(target, Device):
-            sdk = self.get_sdk()
-            version = target.version
-            if sdk and version.is_compatible(sdk.version):
-                target = sdk # Native compilation; SDK version matches device image version
-            else:
-                target = self.get_sysroot_manager().get_installed(version)
-                if not target:
-                    self.die("No sysroot currently installed for {0}{1}{2}"
-                             .format(Colors.OKBLUE, version.get_name(), Colors.ENDC))
-
+        target = self.unpack_sysroot(self.get_target())
         try:
             project = Project(bundle_id=self.bundle_id)
             project.configure(target, debug=self.debug, force=self.force, args=self.args)
-- 
GitLab