[gnome-builder] runtime: add API to get runtime architecture



commit f99056dacc505720a3310a48aaa1cb7d22c7272f
Author: Christian Hergert <chergert redhat com>
Date:   Sun Feb 25 17:51:14 2018 -0800

    runtime: add API to get runtime architecture

 src/libide/runtimes/ide-runtime.c | 31 +++++++++++++++++++++++++++++++
 src/libide/runtimes/ide-runtime.h | 17 ++++-------------
 2 files changed, 35 insertions(+), 13 deletions(-)
---
diff --git a/src/libide/runtimes/ide-runtime.c b/src/libide/runtimes/ide-runtime.c
index fb098711d..1c77da346 100644
--- a/src/libide/runtimes/ide-runtime.c
+++ b/src/libide/runtimes/ide-runtime.c
@@ -30,6 +30,7 @@
 #include "subprocess/ide-subprocess.h"
 #include "subprocess/ide-subprocess-launcher.h"
 #include "util/ide-flatpak.h"
+#include "util/ide-posix.h"
 
 typedef struct
 {
@@ -548,3 +549,33 @@ ide_runtime_get_system_include_dirs (IdeRuntime *self)
 
   return g_strdupv ((gchar **)basic);
 }
+
+/**
+ * ide_runtime_get_arch:
+ * @self: a #IdeRuntime
+ *
+ * Get's the architecture of the runtime.
+ *
+ * This can be used to ensure we're compiling for the right architecture
+ * given the current device.
+ *
+ * Returns: (transfer full) (not nullable): the name of the architecture
+ *   the runtime will build for.
+ *
+ * Since: 3.28
+ */
+gchar *
+ide_runtime_get_arch (IdeRuntime *self)
+{
+  gchar *ret = NULL;
+
+  g_return_val_if_fail (IDE_IS_RUNTIME (self), NULL);
+
+  if (IDE_RUNTIME_GET_CLASS (self)->get_arch)
+    ret = IDE_RUNTIME_GET_CLASS (self)->get_arch (self);
+
+  if (ret == NULL)
+    ret = ide_get_system_arch ();
+
+  return ret;
+}
diff --git a/src/libide/runtimes/ide-runtime.h b/src/libide/runtimes/ide-runtime.h
index 5d7813e8b..a4f219496 100644
--- a/src/libide/runtimes/ide-runtime.h
+++ b/src/libide/runtimes/ide-runtime.h
@@ -56,20 +56,9 @@ struct _IdeRuntimeClass
   GFile                  *(*translate_file)           (IdeRuntime           *self,
                                                        GFile                *file);
   gchar                 **(*get_system_include_dirs)  (IdeRuntime           *self);
+  gchar                  *(*get_arch)                 (IdeRuntime           *self);
 
-  gpointer _reserved4;
-  gpointer _reserved5;
-  gpointer _reserved6;
-  gpointer _reserved7;
-  gpointer _reserved8;
-  gpointer _reserved9;
-  gpointer _reserved10;
-  gpointer _reserved11;
-  gpointer _reserved12;
-  gpointer _reserved13;
-  gpointer _reserved14;
-  gpointer _reserved15;
-  gpointer _reserved16;
+  gpointer _reserved[12];
 };
 
 IDE_AVAILABLE_IN_ALL
@@ -106,5 +95,7 @@ GFile                 *ide_runtime_translate_file           (IdeRuntime
                                                              GFile                *file);
 IDE_AVAILABLE_IN_3_28
 gchar                **ide_runtime_get_system_include_dirs  (IdeRuntime           *self);
+IDE_AVAILABLE_IN_3_28
+gchar                 *ide_runtime_get_arch                 (IdeRuntime           *self);
 
 G_END_DECLS


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]