[gnome-builder/wip/gtk4-port: 1660/1774] plugins/meson: attach introspection as a pipeline stage
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/gtk4-port: 1660/1774] plugins/meson: attach introspection as a pipeline stage
- Date: Mon, 11 Jul 2022 22:31:53 +0000 (UTC)
commit 1f10ab800e15b0b88d320f6fefb40533ec6be32d
Author: Christian Hergert <chergert redhat com>
Date: Fri Jun 24 16:52:00 2022 -0700
plugins/meson: attach introspection as a pipeline stage
src/plugins/meson/gbp-meson-pipeline-addin.c | 36 ++++++++++++++++++++++++++--
src/plugins/meson/gbp-meson-pipeline-addin.h | 4 ++++
2 files changed, 38 insertions(+), 2 deletions(-)
---
diff --git a/src/plugins/meson/gbp-meson-pipeline-addin.c b/src/plugins/meson/gbp-meson-pipeline-addin.c
index 281273016..361ccb536 100644
--- a/src/plugins/meson/gbp-meson-pipeline-addin.c
+++ b/src/plugins/meson/gbp-meson-pipeline-addin.c
@@ -29,11 +29,13 @@
#include "gbp-meson-build-stage-cross-file.h"
#include "gbp-meson-build-system.h"
#include "gbp-meson-build-target.h"
+#include "gbp-meson-introspection.h"
#include "gbp-meson-pipeline-addin.h"
struct _GbpMesonPipelineAddin
{
- IdeObject parent_instance;
+ IdeObject parent_instance;
+ GbpMesonIntrospection *introspection;
};
static const gchar *ninja_names[] = { "ninja", "ninja-build", NULL };
@@ -205,6 +207,7 @@ gbp_meson_pipeline_addin_load (IdePipelineAddin *addin,
const char *prefix;
const char *srcdir;
IdeConfig *config;
+ guint id;
int parallel;
IDE_ENTRY;
@@ -239,7 +242,7 @@ gbp_meson_pipeline_addin_load (IdePipelineAddin *addin,
else if (g_strcmp0 (ide_toolchain_get_id (toolchain), "default") != 0)
{
g_autoptr(GbpMesonBuildStageCrossFile) cross_file_stage = gbp_meson_build_stage_cross_file_new
(toolchain);
- guint id = ide_pipeline_attach (pipeline, IDE_PIPELINE_PHASE_PREPARE, 0, IDE_PIPELINE_STAGE
(cross_file_stage));
+ id = ide_pipeline_attach (pipeline, IDE_PIPELINE_PHASE_PREPARE, 0, IDE_PIPELINE_STAGE
(cross_file_stage));
crossbuild_file = gbp_meson_build_stage_cross_file_get_path (cross_file_stage, pipeline);
ide_pipeline_addin_track (addin, id);
}
@@ -271,6 +274,14 @@ gbp_meson_pipeline_addin_load (IdePipelineAddin *addin,
_("Install project"), IDE_PIPELINE_PHASE_INSTALL);
g_signal_connect (stage, "query", G_CALLBACK (on_install_stage_query), NULL);
+ /* Setup our introspection stage */
+ self->introspection = gbp_meson_introspection_new ();
+ id = ide_pipeline_attach (pipeline,
+ IDE_PIPELINE_PHASE_CONFIGURE | IDE_PIPELINE_PHASE_AFTER,
+ 0,
+ IDE_PIPELINE_STAGE (self->introspection));
+ ide_pipeline_addin_track (addin, id);
+
IDE_EXIT;
}
@@ -283,12 +294,33 @@ pipeline_addin_iface_init (IdePipelineAddinInterface *iface)
G_DEFINE_FINAL_TYPE_WITH_CODE (GbpMesonPipelineAddin, gbp_meson_pipeline_addin, IDE_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (IDE_TYPE_PIPELINE_ADDIN, pipeline_addin_iface_init))
+static void
+gbp_meson_pipeline_addin_dispose (GObject *object)
+{
+ GbpMesonPipelineAddin *self = (GbpMesonPipelineAddin *)object;
+
+ g_clear_object (&self->introspection);
+
+ G_OBJECT_CLASS (gbp_meson_pipeline_addin_parent_class)->dispose (object);
+}
+
static void
gbp_meson_pipeline_addin_class_init (GbpMesonPipelineAddinClass *klass)
{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->dispose = gbp_meson_pipeline_addin_dispose;
}
static void
gbp_meson_pipeline_addin_init (GbpMesonPipelineAddin *self)
{
}
+
+GbpMesonIntrospection *
+gbp_meson_pipeline_addin_get_introspection (GbpMesonPipelineAddin *self)
+{
+ g_return_val_if_fail (GBP_IS_MESON_PIPELINE_ADDIN (self), NULL);
+
+ return self->introspection;
+}
diff --git a/src/plugins/meson/gbp-meson-pipeline-addin.h b/src/plugins/meson/gbp-meson-pipeline-addin.h
index f2b24093e..cefda157d 100644
--- a/src/plugins/meson/gbp-meson-pipeline-addin.h
+++ b/src/plugins/meson/gbp-meson-pipeline-addin.h
@@ -22,10 +22,14 @@
#include <libide-foundry.h>
+#include "gbp-meson-introspection.h"
+
G_BEGIN_DECLS
#define GBP_TYPE_MESON_PIPELINE_ADDIN (gbp_meson_pipeline_addin_get_type())
G_DECLARE_FINAL_TYPE (GbpMesonPipelineAddin, gbp_meson_pipeline_addin, GBP, MESON_PIPELINE_ADDIN, IdeObject)
+GbpMesonIntrospection *gbp_meson_pipeline_addin_get_introspection (GbpMesonPipelineAddin *self);
+
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]