[gnome-builder/wip/gtk4-port: 90/343] libide/commands: move commands to separate library




commit 80092e85e1e4238df6fa84f84a17b949a61b8ed6
Author: Christian Hergert <chergert redhat com>
Date:   Mon Mar 28 14:34:53 2022 -0700

    libide/commands: move commands to separate library
    
    It's nice to have some of these small and contained to make porting easier
    to GTK 4.
    
    Still some work to do to de-workspace-ify the command manager.

 src/libide/{gui => commands}/ide-command-manager.c | 74 ++++++++++----------
 src/libide/{gui => commands}/ide-command-manager.h | 25 ++++---
 .../{gui => commands}/ide-command-provider.c       |  0
 .../{gui => commands}/ide-command-provider.h       | 41 ++++++------
 src/libide/{gui => commands}/ide-command.c         | 16 +----
 src/libide/{gui => commands}/ide-command.h         | 28 ++++----
 src/libide/commands/libide-commands.h              | 29 ++++++++
 src/libide/commands/meson.build                    | 78 ++++++++++++++++++++++
 src/libide/gui/libide-gui.h                        |  6 --
 src/libide/gui/meson.build                         |  6 --
 src/libide/meson.build                             |  3 +-
 11 files changed, 199 insertions(+), 107 deletions(-)
---
diff --git a/src/libide/gui/ide-command-manager.c b/src/libide/commands/ide-command-manager.c
similarity index 91%
rename from src/libide/gui/ide-command-manager.c
rename to src/libide/commands/ide-command-manager.c
index 11ff23be3..b608d5f62 100644
--- a/src/libide/gui/ide-command-manager.c
+++ b/src/libide/commands/ide-command-manager.c
@@ -23,12 +23,12 @@
 #include "config.h"
 
 #include <glib/gi18n.h>
+
 #include <libpeas/peas.h>
+
 #include <libide-plugins.h>
 #include <libide-threading.h>
 
-#include "ide-gui-private.h"
-
 #include "ide-command.h"
 #include "ide-command-manager.h"
 #include "ide-command-provider.h"
@@ -41,17 +41,17 @@ struct _IdeCommandManager
 
 typedef struct
 {
-  IdeWorkspace *workspace;
-  const gchar  *command_id;
+  GtkWidget    *widget;
+  const char   *command_id;
   IdeCommand   *command;
 } FindById;
 
 typedef struct
 {
-  gchar        *typed_text;
-  GPtrArray    *results;
-  IdeWorkspace *workspace;
-  gint          n_active;
+  char      *typed_text;
+  GPtrArray *results;
+  GtkWidget *widget;
+  gint       n_active;
 } Query;
 
 G_DEFINE_FINAL_TYPE (IdeCommandManager, ide_command_manager, IDE_TYPE_OBJECT)
@@ -61,22 +61,22 @@ query_free (Query *q)
 {
   g_assert (q->n_active == 0);
 
-  g_clear_object (&q->workspace);
+  g_clear_object (&q->widget);
   g_clear_pointer (&q->typed_text, g_free);
   g_clear_pointer (&q->results, g_ptr_array_unref);
   g_slice_free (Query, q);
 }
 
 static void
-ide_command_manager_load_shortcuts_cb (GtkWidget *workspace,
+ide_command_manager_load_shortcuts_cb (GtkWidget *native,
                                        gpointer   user_data)
 {
   IdeCommandProvider *provider = user_data;
 
-  g_assert (IDE_IS_WORKSPACE (workspace));
+  g_assert (GTK_IS_NATIVE (native));
   g_assert (IDE_IS_COMMAND_PROVIDER (provider));
 
-  ide_command_provider_load_shortcuts (provider, IDE_WORKSPACE (workspace));
+  ide_command_provider_load_shortcuts (provider, GTK_NATIVE (native));
 }
 
 static void
@@ -88,7 +88,7 @@ ide_command_manager_provider_added_cb (IdeExtensionSetAdapter *set,
   IdeCommandProvider *provider = (IdeCommandProvider *)exten;
   IdeCommandManager *self = user_data;
   g_autoptr(IdeContext) context = NULL;
-  IdeWorkbench *workbench;
+  const GList *windows;
 
   g_assert (IDE_IS_MAIN_THREAD ());
   g_assert (IDE_IS_EXTENSION_SET_ADAPTER (set));
@@ -99,23 +99,31 @@ ide_command_manager_provider_added_cb (IdeExtensionSetAdapter *set,
   g_debug ("Adding command provider %s", G_OBJECT_TYPE_NAME (exten));
 
   context = ide_object_ref_context (IDE_OBJECT (self));
-  workbench = ide_workbench_from_context (context);
+  windows = gtk_application_get_windows (GTK_APPLICATION (g_application_get_default ()));
 
-  ide_workbench_foreach_workspace (workbench,
-                                   ide_command_manager_load_shortcuts_cb,
-                                   provider);
+  for (const GList *iter = windows; iter; iter = iter->next)
+    {
+      GtkNative *window = iter->data;
+      g_autoptr(IdeContext) window_context = NULL;
+      GObjectClass *klass = G_OBJECT_GET_CLASS (window);
+
+      /* TODO: Find IdeContext, check if matches, if so ... */
+
+      if (FALSE)
+        ide_command_manager_load_shortcuts_cb (window, provider);
+    }
 }
 
 static void
-ide_command_manager_unload_shortcuts_cb (GtkWidget *workspace,
+ide_command_manager_unload_shortcuts_cb (GtkWidget *native,
                                          gpointer   user_data)
 {
   IdeCommandProvider *provider = user_data;
 
-  g_assert (IDE_IS_WORKSPACE (workspace));
+  g_assert (GTK_IS_NATIVE (native));
   g_assert (IDE_IS_COMMAND_PROVIDER (provider));
 
-  ide_command_provider_unload_shortcuts (provider, IDE_WORKSPACE (workspace));
+  ide_command_provider_unload_shortcuts (provider, GTK_NATIVE (native));
 }
 
 static void
@@ -212,8 +220,6 @@ ide_command_manager_init (IdeCommandManager *self)
  * This may only be called on the main thread.
  *
  * Returns: (transfer none): an #IdeCommandManager
- *
- * Since: 3.34
  */
 IdeCommandManager *
 ide_command_manager_from_context (IdeContext *context)
@@ -287,12 +293,12 @@ ide_command_manager_query_foreach_cb (IdeExtensionSetAdapter *set,
 
   g_assert (q != NULL);
   g_assert (q->typed_text != NULL);
-  g_assert (IDE_IS_WORKSPACE (q->workspace));
+  g_assert (GTK_IS_WIDGET (q->widget));
 
   q->n_active++;
 
   ide_command_provider_query_async (provider,
-                                    q->workspace,
+                                    q->widget,
                                     q->typed_text,
                                     ide_task_get_cancellable (task),
                                     ide_command_manager_query_cb,
@@ -301,8 +307,8 @@ ide_command_manager_query_foreach_cb (IdeExtensionSetAdapter *set,
 
 void
 ide_command_manager_query_async  (IdeCommandManager   *self,
-                                  IdeWorkspace        *workspace,
-                                  const gchar         *typed_text,
+                                  GtkWidget           *widget,
+                                  const char          *typed_text,
                                   GCancellable        *cancellable,
                                   GAsyncReadyCallback  callback,
                                   gpointer             user_data)
@@ -311,7 +317,7 @@ ide_command_manager_query_async  (IdeCommandManager   *self,
   Query *q;
 
   g_return_if_fail (IDE_IS_COMMAND_MANAGER (self));
-  g_return_if_fail (IDE_IS_WORKSPACE (workspace));
+  g_return_if_fail (GTK_IS_WIDGET (widget));
   g_return_if_fail (typed_text != NULL);
   g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable));
 
@@ -321,7 +327,7 @@ ide_command_manager_query_async  (IdeCommandManager   *self,
   q = g_slice_new0 (Query);
   q->typed_text = g_strdup (typed_text);
   q->results = g_ptr_array_new_with_free_func ((GDestroyNotify)ide_object_unref_and_destroy);
-  q->workspace = g_object_ref (workspace);
+  q->widget = g_object_ref (widget);
   q->n_active = 0;
   ide_task_set_task_data (task, q, query_free);
 
@@ -340,8 +346,6 @@ ide_command_manager_query_async  (IdeCommandManager   *self,
  *
  * Returns: (transfer full) (element-type IdeCommand): an array of
  *   #IdeCommand instances created by providers.
- *
- * Since: 3.34
  */
 GPtrArray *
 ide_command_manager_query_finish (IdeCommandManager  *self,
@@ -434,12 +438,12 @@ ide_command_manager_get_command_by_id_cb (IdeExtensionSetAdapter *set,
   g_assert (IDE_IS_COMMAND_PROVIDER (provider));
   g_assert (state != NULL);
   g_assert (state->command_id != NULL);
-  g_assert (IDE_IS_WORKSPACE (state->workspace));
+  g_assert (GTK_IS_WIDGET (state->widget));
   g_assert (!state->command || IDE_IS_COMMAND (state->command));
 
   if (state->command == NULL)
     state->command = ide_command_provider_get_command_by_id (provider,
-                                                             state->workspace,
+                                                             state->widget,
                                                              state->command_id);
 }
 
@@ -452,13 +456,11 @@ ide_command_manager_get_command_by_id_cb (IdeExtensionSetAdapter *set,
  * Gets a command from one of the loaded command providers if any.
  *
  * Returns: (transfer full) (nullable): an #IdeCommand or %NULL
- *
- * Since: 3.34
  */
 IdeCommand *
 ide_command_manager_get_command_by_id (IdeCommandManager *self,
                                        IdeWorkspace      *workspace,
-                                       const gchar       *command_id)
+                                       const char        *command_id)
 {
   FindById state = { workspace, command_id, NULL };
 
@@ -496,7 +498,7 @@ ide_command_manager_execute_cb (GObject      *object,
 void
 _ide_command_manager_execute (IdeCommandManager *self,
                               IdeWorkspace      *workspace,
-                              const gchar       *command_id)
+                              const char        *command_id)
 {
   g_autoptr(IdeCommand) command = NULL;
 
diff --git a/src/libide/gui/ide-command-manager.h b/src/libide/commands/ide-command-manager.h
similarity index 79%
rename from src/libide/gui/ide-command-manager.h
rename to src/libide/commands/ide-command-manager.h
index 8c26469ac..2eacbad13 100644
--- a/src/libide/gui/ide-command-manager.h
+++ b/src/libide/commands/ide-command-manager.h
@@ -20,32 +20,37 @@
 
 #pragma once
 
+#if !defined (IDE_COMMANDS_INSIDE) && !defined (IDE_COMMANDS_COMPILATION)
+# error "Only <libide-commands.h> can be included directly."
+#endif
+
+#include <gtk/gtk.h>
+
 #include <libide-core.h>
 
 #include "ide-command.h"
-#include "ide-workspace.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_COMMAND_MANAGER (ide_command_manager_get_type())
 
-IDE_AVAILABLE_IN_3_34
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeCommandManager, ide_command_manager, IDE, COMMAND_MANAGER, IdeObject)
 
-IDE_AVAILABLE_IN_3_34
+IDE_AVAILABLE_IN_ALL
 IdeCommandManager *ide_command_manager_from_context      (IdeContext           *context);
-IDE_AVAILABLE_IN_3_34
+IDE_AVAILABLE_IN_ALL
 IdeCommand        *ide_command_manager_get_command_by_id (IdeCommandManager    *self,
-                                                          IdeWorkspace         *workspace,
-                                                          const gchar          *command_id);
-IDE_AVAILABLE_IN_3_34
+                                                          GtkWidget            *widget,
+                                                          const char           *command_id);
+IDE_AVAILABLE_IN_ALL
 void               ide_command_manager_query_async       (IdeCommandManager    *self,
-                                                          IdeWorkspace         *workspace,
-                                                          const gchar          *typed_text,
+                                                          GtkWidget            *widget,
+                                                          const char           *typed_text,
                                                           GCancellable         *cancellable,
                                                           GAsyncReadyCallback   callback,
                                                           gpointer              user_data);
-IDE_AVAILABLE_IN_3_34
+IDE_AVAILABLE_IN_ALL
 GPtrArray         *ide_command_manager_query_finish      (IdeCommandManager    *self,
                                                           GAsyncResult         *result,
                                                           GError              **error);
diff --git a/src/libide/gui/ide-command-provider.c b/src/libide/commands/ide-command-provider.c
similarity index 100%
rename from src/libide/gui/ide-command-provider.c
rename to src/libide/commands/ide-command-provider.c
diff --git a/src/libide/gui/ide-command-provider.h b/src/libide/commands/ide-command-provider.h
similarity index 72%
rename from src/libide/gui/ide-command-provider.h
rename to src/libide/commands/ide-command-provider.h
index a3d3a56e9..d25bcf643 100644
--- a/src/libide/gui/ide-command-provider.h
+++ b/src/libide/commands/ide-command-provider.h
@@ -20,29 +20,30 @@
 
 #pragma once
 
-#if !defined (IDE_GUI_INSIDE) && !defined (IDE_GUI_COMPILATION)
-# error "Only <libide-gui.h> can be included directly."
+#if !defined (IDE_COMMANDS_INSIDE) && !defined (IDE_COMMANDS_COMPILATION)
+# error "Only <libide-commands.h> can be included directly."
 #endif
 
+#include <gtk/gtk.h>
+
 #include <libide-core.h>
 
 #include "ide-command.h"
-#include "ide-workspace.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_COMMAND_PROVIDER (ide_command_provider_get_type())
 
-IDE_AVAILABLE_IN_3_32
-G_DECLARE_INTERFACE (IdeCommandProvider, ide_command_provider, IDE, COMMAND_PROVIDER, GObject)
+IDE_AVAILABLE_IN_ALL
+G_DECLARE_INTERFACE (IdeCommandProvider, ide_command_provider, IDE, COMMAND_PROVIDER, IdeObject)
 
 struct _IdeCommandProviderInterface
 {
   GTypeInterface parent_iface;
 
   void        (*query_async)       (IdeCommandProvider   *self,
-                                    IdeWorkspace         *workspace,
-                                    const gchar          *typed_text,
+                                    GtkWidget            *widget,
+                                    const char           *typed_text,
                                     GCancellable         *cancellable,
                                     GAsyncReadyCallback   callback,
                                     gpointer              user_data);
@@ -50,34 +51,34 @@ struct _IdeCommandProviderInterface
                                     GAsyncResult         *result,
                                     GError              **error);
   IdeCommand *(*get_command_by_id) (IdeCommandProvider   *self,
-                                    IdeWorkspace         *workspace,
+                                    GtkWidget            *widget,
                                     const gchar          *command_id);
   void        (*load_shortcuts)    (IdeCommandProvider   *self,
-                                    IdeWorkspace         *workspace);
+                                    GtkNative            *native);
   void        (*unload_shortcuts)  (IdeCommandProvider   *self,
-                                    IdeWorkspace         *workspace);
+                                    GtkNative            *native);
 };
 
-IDE_AVAILABLE_IN_3_34
+IDE_AVAILABLE_IN_ALL
 void        ide_command_provider_load_shortcuts    (IdeCommandProvider   *self,
-                                                    IdeWorkspace         *workspace);
-IDE_AVAILABLE_IN_3_34
+                                                    GtkNative            *native);
+IDE_AVAILABLE_IN_ALL
 void        ide_command_provider_unload_shortcuts  (IdeCommandProvider   *self,
-                                                    IdeWorkspace         *workspace);
-IDE_AVAILABLE_IN_3_32
+                                                    GtkNative            *native);
+IDE_AVAILABLE_IN_ALL
 void        ide_command_provider_query_async       (IdeCommandProvider   *self,
-                                                    IdeWorkspace         *workspace,
+                                                    GtkWidget            *widget,
                                                     const gchar          *typed_text,
                                                     GCancellable         *cancellable,
                                                     GAsyncReadyCallback   callback,
                                                     gpointer              user_data);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_IN_ALL
 GPtrArray  *ide_command_provider_query_finish      (IdeCommandProvider   *self,
                                                     GAsyncResult         *result,
                                                     GError              **error);
-IDE_AVAILABLE_IN_3_34
+IDE_AVAILABLE_IN_ALL
 IdeCommand *ide_command_provider_get_command_by_id (IdeCommandProvider   *self,
-                                                    IdeWorkspace         *workspace,
-                                                    const gchar          *command_id);
+                                                    GtkWidget            *widget,
+                                                    const char           *command_id);
 
 G_END_DECLS
diff --git a/src/libide/gui/ide-command.c b/src/libide/commands/ide-command.c
similarity index 97%
rename from src/libide/gui/ide-command.c
rename to src/libide/commands/ide-command.c
index 36975b6c7..ac5511e6d 100644
--- a/src/libide/gui/ide-command.c
+++ b/src/libide/commands/ide-command.c
@@ -73,8 +73,6 @@ ide_command_default_init (IdeCommandInterface *iface)
  * Runs the command, asynchronously.
  *
  * Use ide_command_run_finish() to get the result of the operation.
- *
- * Since: 3.32
  */
 void
 ide_command_run_async (IdeCommand          *self,
@@ -96,8 +94,6 @@ ide_command_run_async (IdeCommand          *self,
  *
  * Returns: %TRUE if the command was successful; otherwise %FALSE
  *   and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_command_run_finish (IdeCommand    *self,
@@ -117,10 +113,8 @@ ide_command_run_finish (IdeCommand    *self,
  * Gets the title for the command.
  *
  * Returns: a string containing the title
- *
- * Since: 3.32
  */
-gchar *
+char *
 ide_command_get_title (IdeCommand *self)
 {
   g_return_val_if_fail (IDE_IS_COMMAND (self), NULL);
@@ -138,10 +132,8 @@ ide_command_get_title (IdeCommand *self)
  * Gets the subtitle for the command.
  *
  * Returns: a string containing the subtitle
- *
- * Since: 3.32
  */
-gchar *
+char *
 ide_command_get_subtitle (IdeCommand *self)
 {
   g_return_val_if_fail (IDE_IS_COMMAND (self), NULL);
@@ -167,8 +159,6 @@ ide_command_get_subtitle (IdeCommand *self)
  * The lower the value, the higher priority.
  *
  * Returns: an integer with the sort priority
- *
- * Since: 3.34
  */
 gint
 ide_command_get_priority (IdeCommand *self)
@@ -188,8 +178,6 @@ ide_command_get_priority (IdeCommand *self)
  * Gets the icon for the command to be displayed in UI if necessary.
  *
  * Returns: (transfer full) (nullable): a #GIcon or %NULL
- *
- * Since: 3.34
  */
 GIcon *
 ide_command_get_icon (IdeCommand *self)
diff --git a/src/libide/gui/ide-command.h b/src/libide/commands/ide-command.h
similarity index 78%
rename from src/libide/gui/ide-command.h
rename to src/libide/commands/ide-command.h
index 432916eb5..6898685cd 100644
--- a/src/libide/gui/ide-command.h
+++ b/src/libide/commands/ide-command.h
@@ -20,8 +20,8 @@
 
 #pragma once
 
-#if !defined (IDE_GUI_INSIDE) && !defined (IDE_GUI_COMPILATION)
-# error "Only <libide-gui.h> can be included directly."
+#if !defined (IDE_COMMANDS_INSIDE) && !defined (IDE_COMMANDS_COMPILATION)
+# error "Only <libide-commands.h> can be included directly."
 #endif
 
 #include <libide-core.h>
@@ -30,15 +30,15 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_COMMAND (ide_command_get_type())
 
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeCommand, ide_command, IDE, COMMAND, IdeObject)
 
 struct _IdeCommandInterface
 {
   GTypeInterface parent_iface;
 
-  gchar    *(*get_title)     (IdeCommand           *self);
-  gchar    *(*get_subtitle)  (IdeCommand           *self);
+  char     *(*get_title)     (IdeCommand           *self);
+  char     *(*get_subtitle)  (IdeCommand           *self);
   void      (*run_async)     (IdeCommand           *self,
                               GCancellable         *cancellable,
                               GAsyncReadyCallback   callback,
@@ -46,24 +46,24 @@ struct _IdeCommandInterface
   gboolean  (*run_finish)    (IdeCommand           *self,
                               GAsyncResult         *result,
                               GError              **error);
-  gint      (*get_priority)  (IdeCommand           *self);
+  int       (*get_priority)  (IdeCommand           *self);
   GIcon    *(*get_icon)      (IdeCommand           *self);
 };
 
-IDE_AVAILABLE_IN_3_34
+IDE_AVAILABLE_IN_ALL
 GIcon    *ide_command_get_icon     (IdeCommand           *self);
-IDE_AVAILABLE_IN_3_34
+IDE_AVAILABLE_IN_ALL
 gint      ide_command_get_priority (IdeCommand           *self);
-IDE_AVAILABLE_IN_3_32
-gchar    *ide_command_get_title    (IdeCommand           *self);
-IDE_AVAILABLE_IN_3_32
-gchar    *ide_command_get_subtitle (IdeCommand           *self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_IN_ALL
+char     *ide_command_get_title    (IdeCommand           *self);
+IDE_AVAILABLE_IN_ALL
+char     *ide_command_get_subtitle (IdeCommand           *self);
+IDE_AVAILABLE_IN_ALL
 void      ide_command_run_async    (IdeCommand           *self,
                                     GCancellable         *cancellable,
                                     GAsyncReadyCallback   callback,
                                     gpointer              user_data);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_IN_ALL
 gboolean  ide_command_run_finish   (IdeCommand           *self,
                                     GAsyncResult         *result,
                                     GError              **error);
diff --git a/src/libide/commands/libide-commands.h b/src/libide/commands/libide-commands.h
new file mode 100644
index 000000000..ee5fa54b4
--- /dev/null
+++ b/src/libide/commands/libide-commands.h
@@ -0,0 +1,29 @@
+/* libide-commands.h
+ *
+ * Copyright 2022 Christian Hergert <chergert redhat com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+#pragma once
+
+#include <libide-core.h>
+
+#define IDE_COMMANDS_INSIDE
+# include "ide-command.h"
+# include "ide-command-manager.h"
+# include "ide-command-provider.h"
+#undef IDE_COMMANDS_INSIDE
diff --git a/src/libide/commands/meson.build b/src/libide/commands/meson.build
new file mode 100644
index 000000000..e27831f13
--- /dev/null
+++ b/src/libide/commands/meson.build
@@ -0,0 +1,78 @@
+libide_commands_header_dir = join_paths(libide_header_dir, 'commands')
+libide_commands_header_subdir = join_paths(libide_header_subdir, 'commands')
+libide_include_directories += include_directories('.')
+
+libide_commands_sources = []
+libide_commands_public_headers = []
+libide_commands_generated_headers = []
+
+#
+# Public API Headers
+#
+
+libide_commands_public_headers = [
+  'ide-command.h',
+  'ide-command-manager.h',
+  'ide-command-provider.h',
+  'libide-commands.h',
+]
+
+libide_commands_private_headers = [
+]
+
+install_headers(libide_commands_public_headers, subdir: libide_commands_header_subdir)
+
+#
+# Sources
+#
+
+libide_commands_public_sources = [
+  'ide-command.c',
+  'ide-command-manager.c',
+  'ide-command-provider.c',
+]
+
+
+libide_commands_private_sources = [
+]
+
+libide_commands_sources += libide_commands_public_sources
+libide_commands_sources += libide_commands_private_sources
+
+#
+# Dependencies
+#
+
+libide_commands_deps = [
+  libgtk_dep,
+
+  libide_core_dep,
+  libide_io_dep,
+  libide_threading_dep,
+  libide_plugins_dep,
+]
+
+#
+# Library Definitions
+#
+
+libide_commands = static_library('ide-commands-' + libide_api_version,
+  libide_commands_sources, libide_commands_generated_headers,
+   dependencies: libide_commands_deps,
+         c_args: libide_args + release_args + ['-DIDE_COMMANDS_COMPILATION'],
+)
+
+libide_commands_dep = declare_dependency(
+         dependencies: libide_commands_deps,
+            link_with: libide_commands,
+  include_directories: include_directories('.'),
+              sources: libide_commands_generated_headers,
+)
+
+gnome_builder_public_sources += files(libide_commands_public_sources)
+gnome_builder_public_headers += files(libide_commands_public_headers)
+gnome_builder_private_sources += files(libide_commands_private_sources)
+gnome_builder_private_headers += files(libide_commands_private_headers)
+gnome_builder_generated_headers += libide_commands_generated_headers
+gnome_builder_include_subdirs += libide_commands_header_subdir
+gnome_builder_gir_extra_args += ['--c-include=libide-commands.h', '-DIDE_COMMANDS_COMPILATION']
diff --git a/src/libide/gui/libide-gui.h b/src/libide/gui/libide-gui.h
index 892f0a046..8cdb796da 100644
--- a/src/libide/gui/libide-gui.h
+++ b/src/libide/gui/libide-gui.h
@@ -30,16 +30,11 @@
 
 #include "ide-application.h"
 #include "ide-application-addin.h"
-#include "ide-cell-renderer-fancy.h"
-#include "ide-command.h"
-#include "ide-command-manager.h"
-#include "ide-command-provider.h"
 #include "ide-config-view-addin.h"
 #include "ide-environment-editor.h"
 #include "ide-frame.h"
 #include "ide-frame-addin.h"
 #include "ide-header-bar.h"
-#include "ide-fancy-tree-view.h"
 #include "ide-gui-global.h"
 #include "ide-header-bar.h"
 #include "ide-marked-view.h"
@@ -58,7 +53,6 @@
 #include "ide-session-addin.h"
 #include "ide-surface.h"
 #include "ide-surfaces-button.h"
-#include "ide-tagged-entry.h"
 #include "ide-transfer-button.h"
 #include "ide-transient-sidebar.h"
 #include "ide-workbench.h"
diff --git a/src/libide/gui/meson.build b/src/libide/gui/meson.build
index e11d9de13..4a8983056 100644
--- a/src/libide/gui/meson.build
+++ b/src/libide/gui/meson.build
@@ -10,9 +10,6 @@ libide_gui_generated_headers = []
 libide_gui_public_headers = [
   'ide-application.h',
   'ide-application-addin.h',
-  'ide-command.h',
-  'ide-command-manager.h',
-  'ide-command-provider.h',
   'ide-config-view-addin.h',
   'ide-environment-editor.h',
   'ide-frame-addin.h',
@@ -87,9 +84,6 @@ libide_gui_public_sources = [
   'ide-application-addin.c',
   'ide-application-command-line.c',
   'ide-application-open.c',
-  'ide-command.c',
-  'ide-command-manager.c',
-  'ide-command-provider.c',
   'ide-config-view-addin.c',
   'ide-environment-editor.c',
   'ide-frame-addin.c',
diff --git a/src/libide/meson.build b/src/libide/meson.build
index 4ee4643d7..090dcedbc 100644
--- a/src/libide/meson.build
+++ b/src/libide/meson.build
@@ -6,6 +6,8 @@ subdir('core')
 subdir('plugins')
 subdir('threading')
 subdir('io')
+subdir('gtk')
+subdir('commands')
 subdir('code')
 subdir('vcs')
 subdir('tree')
@@ -13,7 +15,6 @@ subdir('search')
 subdir('projects')
 subdir('foundry')
 subdir('debugger')
-subdir('gtk')
 subdir('themes')
 subdir('gui')
 subdir('terminal')


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