[gnome-builder] versioning: fix broken versioning macros



commit 2bbdb50424189f16458e5f6b6671f9ad3781f74a
Author: Christian Hergert <chergert redhat com>
Date:   Thu Mar 22 01:56:18 2018 -0700

    versioning: fix broken versioning macros
    
    Once we start locking down symbol usage, these start breaking.
    So lets fix them so we can do do that.

 src/libide/application/ide-application-addin.h     |  1 +
 src/libide/application/ide-application-tool.c      |  4 ++++
 src/libide/application/ide-application-tool.h      |  1 +
 src/libide/buffers/ide-buffer-addin.h              |  1 +
 src/libide/buildconfig/meson.build                 |  3 +--
 src/libide/buildsystem/ide-build-pipeline-addin.h  |  1 +
 .../buildsystem/ide-build-system-discovery.h       |  1 +
 src/libide/buildsystem/ide-build-system.h          |  1 +
 src/libide/buildsystem/ide-build-target-provider.h |  1 +
 src/libide/buildsystem/ide-build-target.h          |  1 +
 src/libide/buildsystem/ide-dependency-updater.h    |  4 ++++
 src/libide/buildsystem/ide-environment-variable.c  |  4 ++++
 src/libide/buildsystem/ide-environment.c           |  4 ++++
 src/libide/buildsystem/ide-simple-build-target.h   | 11 ++++++++++-
 src/libide/config/ide-configuration-provider.h     |  1 +
 src/libide/devices/ide-deploy-strategy.h           |  6 ++++++
 src/libide/devices/ide-device-info.h               | 12 ++++++++++++
 src/libide/diagnostics/ide-diagnostic-provider.h   |  1 +
 src/libide/diagnostics/ide-fixit.c                 |  6 +++++-
 src/libide/diagnostics/ide-fixit.h                 |  8 ++++++++
 src/libide/directory/ide-directory-build-system.h  |  3 +++
 src/libide/directory/ide-directory-vcs.h           |  3 +++
 src/libide/doap/ide-doap-person.c                  |  4 ++++
 .../documentation/ide-documentation-provider.h     |  1 +
 src/libide/documentation/ide-documentation.c       |  4 ++++
 src/libide/documentation/ide-documentation.h       | 11 ++++-------
 src/libide/editor/ide-editor-addin.h               |  1 +
 src/libide/editor/ide-editor-utilities.h           |  1 +
 src/libide/editor/ide-editor-view-addin.h          |  1 +
 src/libide/files/ide-file-settings.h               | 12 ++++++------
 src/libide/formatting/ide-formatter-options.h      |  8 ++++++++
 src/libide/formatting/ide-formatter.h              |  7 +++++++
 src/libide/genesis/ide-genesis-addin.c             |  4 ++++
 src/libide/genesis/ide-genesis-addin.h             |  1 +
 src/libide/greeter/ide-greeter-section.h           |  1 +
 src/libide/highlighting/ide-highlighter.c          |  4 ++++
 src/libide/highlighting/ide-highlighter.h          |  4 ++--
 src/libide/ide-context.h                           |  3 +--
 src/libide/ide-enums.c.in                          |  1 -
 src/libide/ide-global.h                            |  4 +++-
 src/libide/ide-service.c                           |  4 ++++
 src/libide/ide-service.h                           |  1 +
 src/libide/ide.c                                   |  2 ++
 src/libide/ide.h                                   |  2 +-
 src/libide/langserv/ide-langserv-formatter.h       | 13 +++++++------
 src/libide/langserv/ide-langserv-highlighter.h     |  4 ++++
 src/libide/langserv/ide-langserv-symbol-node.h     |  5 +++++
 src/libide/langserv/ide-langserv-symbol-tree.h     |  3 +++
 src/libide/layout/ide-layout-pane.c                |  7 +++++--
 src/libide/layout/ide-layout-pane.h                | 10 ++--------
 src/libide/layout/ide-layout-stack-addin.h         |  1 +
 src/libide/layout/ide-layout.h                     | 10 ++--------
 src/libide/local/ide-local-device.h                |  2 ++
 src/libide/plugins/ide-extension-adapter.h         | 10 ++++++++++
 src/libide/plugins/ide-extension-set-adapter.h     | 12 ++++++++++++
 src/libide/preferences/ide-preferences-addin.h     |  1 +
 .../preferences/ide-preferences-perspective.h      |  1 +
 src/libide/preferences/ide-preferences-window.h    |  1 +
 src/libide/projects/ide-recent-projects.c          |  4 ++++
 src/libide/rename/ide-rename-provider.h            |  1 +
 src/libide/runner/ide-runner-addin.h               |  1 +
 src/libide/runner/meson.build                      |  3 +--
 src/libide/runtimes/ide-runtime-provider.h         |  1 +
 src/libide/search/ide-search-provider.h            |  1 +
 src/libide/search/ide-tagged-entry.c               | 18 ++++++++++--------
 src/libide/snippets/ide-source-snippet-chunk.c     |  4 ++++
 src/libide/snippets/ide-source-snippet-chunk.h     |  3 +--
 src/libide/snippets/ide-source-snippet.h           |  3 +--
 src/libide/snippets/ide-source-snippets.c          |  4 ++++
 src/libide/sourceview/ide-completion-provider.c    |  7 ++++++-
 src/libide/sourceview/ide-completion-provider.h    |  3 +--
 src/libide/sourceview/ide-cursor.h                 |  9 +--------
 src/libide/sourceview/ide-indenter.h               |  1 +
 src/libide/sourceview/ide-source-map.h             |  1 +
 src/libide/sourceview/ide-source-style-scheme.c    |  4 ++++
 src/libide/sourceview/ide-source-view.h            | 10 ++++++++--
 src/libide/sourceview/meson.build                  | 19 ++-----------------
 src/libide/subprocess/ide-subprocess-supervisor.h  | 10 ++++++++++
 src/libide/subprocess/ide-subprocess.h             |  1 +
 src/libide/symbols/ide-code-index-entries.h        |  3 +++
 src/libide/symbols/ide-code-index-entry.h          |  2 +-
 src/libide/symbols/ide-code-indexer.h              |  1 +
 src/libide/symbols/ide-symbol-node.c               |  4 ++++
 src/libide/symbols/ide-symbol-node.h               | 17 +++++++++--------
 src/libide/symbols/ide-symbol-resolver.h           |  1 +
 src/libide/symbols/ide-symbol-tree.c               |  4 ++++
 src/libide/symbols/ide-symbol-tree.h               |  5 +++++
 src/libide/symbols/ide-tags-builder.c              |  4 ++++
 src/libide/symbols/ide-tags-builder.h              |  1 +
 src/libide/template/ide-project-template.h         |  1 +
 src/libide/template/ide-template-base.c            |  4 ++++
 src/libide/template/ide-template-base.h            | 10 ++++++++++
 src/libide/template/ide-template-provider.c        |  4 ++++
 src/libide/template/ide-template-provider.h        |  1 +
 src/libide/terminal/ide-terminal-util.h            |  2 ++
 src/libide/terminal/ide-terminal.c                 |  4 ++++
 src/libide/transfers/ide-transfer-row.h            |  5 +++++
 src/libide/transfers/ide-transfers-button.h        |  4 ++++
 src/libide/transfers/ide-transfers-progress-icon.h |  6 ++++++
 src/libide/util/ide-flatpak.c                      |  2 ++
 src/libide/util/ide-posix.c                        |  4 ++++
 src/libide/util/ide-settings.h                     | 22 ++++++++++++++++++++++
 src/libide/util/ide-uri.c                          |  2 ++
 src/libide/vcs/ide-vcs-config.c                    |  4 ++++
 src/libide/vcs/ide-vcs-config.h                    |  1 +
 src/libide/vcs/ide-vcs-file-info.h                 |  9 ++++++++-
 src/libide/vcs/ide-vcs-initializer.c               |  4 ++++
 src/libide/vcs/ide-vcs-initializer.h               |  1 +
 src/libide/vcs/ide-vcs-monitor.h                   |  3 +++
 src/libide/vcs/ide-vcs-uri.c                       |  4 ++++
 src/libide/vcs/ide-vcs.h                           |  1 +
 src/libide/workbench/ide-omni-bar.h                |  3 +++
 src/libide/workbench/ide-perspective.c             |  4 ++++
 src/libide/workbench/ide-perspective.h             |  1 +
 src/libide/workbench/ide-workbench-addin.h         |  1 +
 src/libide/workers/ide-worker.h                    |  5 +++++
 116 files changed, 399 insertions(+), 102 deletions(-)
---
diff --git a/src/libide/application/ide-application-addin.h b/src/libide/application/ide-application-addin.h
index 6954fd1d4..9b90e92f7 100644
--- a/src/libide/application/ide-application-addin.h
+++ b/src/libide/application/ide-application-addin.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_APPLICATION_ADDIN (ide_application_addin_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeApplicationAddin, ide_application_addin, IDE, APPLICATION_ADDIN, GObject)
 
 /**
diff --git a/src/libide/application/ide-application-tool.c b/src/libide/application/ide-application-tool.c
index 202a06eb8..036a599d7 100644
--- a/src/libide/application/ide-application-tool.c
+++ b/src/libide/application/ide-application-tool.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-application-tool"
+
+#include "config.h"
+
 #include "application/ide-application-tool.h"
 
 G_DEFINE_INTERFACE (IdeApplicationTool, ide_application_tool, G_TYPE_OBJECT)
diff --git a/src/libide/application/ide-application-tool.h b/src/libide/application/ide-application-tool.h
index f78b7faab..71817ed2f 100644
--- a/src/libide/application/ide-application-tool.h
+++ b/src/libide/application/ide-application-tool.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_APPLICATION_TOOL (ide_application_tool_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeApplicationTool, ide_application_tool, IDE, APPLICATION_TOOL, GObject)
 
 /**
diff --git a/src/libide/buffers/ide-buffer-addin.h b/src/libide/buffers/ide-buffer-addin.h
index c554ae1e8..3dd2e0286 100644
--- a/src/libide/buffers/ide-buffer-addin.h
+++ b/src/libide/buffers/ide-buffer-addin.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_BUFFER_ADDIN (ide_buffer_addin_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeBufferAddin, ide_buffer_addin, IDE, BUFFER_ADDIN, GObject)
 
 struct _IdeBufferAddinInterface
diff --git a/src/libide/buildconfig/meson.build b/src/libide/buildconfig/meson.build
index 8451d3264..a76fb5b87 100644
--- a/src/libide/buildconfig/meson.build
+++ b/src/libide/buildconfig/meson.build
@@ -1,14 +1,13 @@
 buildconfig_headers = [
   'ide-buildconfig-configuration.h',
-  'ide-buildconfig-configuration-provider.h',
 ]
 
 buildconfig_sources = [
   'ide-buildconfig-configuration.c',
-  'ide-buildconfig-configuration-provider.c',
 ]
 
 buildconfig_private_sources = [
+  'ide-buildconfig-configuration-provider.c',
   'ide-buildconfig-plugin.c',
   'ide-buildconfig-pipeline-addin.c',
   'ide-buildconfig-pipeline-addin.h',
diff --git a/src/libide/buildsystem/ide-build-pipeline-addin.h 
b/src/libide/buildsystem/ide-build-pipeline-addin.h
index bc6f64e9a..0188e3f92 100644
--- a/src/libide/buildsystem/ide-build-pipeline-addin.h
+++ b/src/libide/buildsystem/ide-build-pipeline-addin.h
@@ -28,6 +28,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_BUILD_PIPELINE_ADDIN (ide_build_pipeline_addin_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeBuildPipelineAddin, ide_build_pipeline_addin, IDE, BUILD_PIPELINE_ADDIN, IdeObject)
 
 struct _IdeBuildPipelineAddinInterface
diff --git a/src/libide/buildsystem/ide-build-system-discovery.h 
b/src/libide/buildsystem/ide-build-system-discovery.h
index 0b3085c22..0c53a4e25 100644
--- a/src/libide/buildsystem/ide-build-system-discovery.h
+++ b/src/libide/buildsystem/ide-build-system-discovery.h
@@ -28,6 +28,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_BUILD_SYSTEM_DISCOVERY (ide_build_system_discovery_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeBuildSystemDiscovery, ide_build_system_discovery, IDE, BUILD_SYSTEM_DISCOVERY, 
GObject)
 
 struct _IdeBuildSystemDiscoveryInterface
diff --git a/src/libide/buildsystem/ide-build-system.h b/src/libide/buildsystem/ide-build-system.h
index 1e400bfff..0dca42a28 100644
--- a/src/libide/buildsystem/ide-build-system.h
+++ b/src/libide/buildsystem/ide-build-system.h
@@ -28,6 +28,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_BUILD_SYSTEM (ide_build_system_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeBuildSystem, ide_build_system, IDE, BUILD_SYSTEM, IdeObject)
 
 struct _IdeBuildSystemInterface
diff --git a/src/libide/buildsystem/ide-build-target-provider.h 
b/src/libide/buildsystem/ide-build-target-provider.h
index 21ffda459..77d0f8d85 100644
--- a/src/libide/buildsystem/ide-build-target-provider.h
+++ b/src/libide/buildsystem/ide-build-target-provider.h
@@ -25,6 +25,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_BUILD_TARGET_PROVIDER (ide_build_target_provider_get_type())
 
+IDE_AVAILABLE_IN_3_28
 G_DECLARE_INTERFACE (IdeBuildTargetProvider, ide_build_target_provider, IDE, BUILD_TARGET_PROVIDER, 
IdeObject)
 
 struct _IdeBuildTargetProviderInterface
diff --git a/src/libide/buildsystem/ide-build-target.h b/src/libide/buildsystem/ide-build-target.h
index 020bea69b..97967274c 100644
--- a/src/libide/buildsystem/ide-build-target.h
+++ b/src/libide/buildsystem/ide-build-target.h
@@ -28,6 +28,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_BUILD_TARGET (ide_build_target_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeBuildTarget, ide_build_target, IDE, BUILD_TARGET, IdeObject)
 
 struct _IdeBuildTargetInterface
diff --git a/src/libide/buildsystem/ide-dependency-updater.h b/src/libide/buildsystem/ide-dependency-updater.h
index 0c1ffeb86..f7fd73cc4 100644
--- a/src/libide/buildsystem/ide-dependency-updater.h
+++ b/src/libide/buildsystem/ide-dependency-updater.h
@@ -19,11 +19,13 @@
 #pragma once
 
 #include "ide-object.h"
+#include "ide-version-macros.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_DEPENDENCY_UPDATER (ide_dependency_updater_get_type ())
 
+IDE_AVAILABLE_IN_3_28
 G_DECLARE_INTERFACE (IdeDependencyUpdater, ide_dependency_updater, IDE, DEPENDENCY_UPDATER, IdeObject)
 
 struct _IdeDependencyUpdaterInterface
@@ -39,10 +41,12 @@ struct _IdeDependencyUpdaterInterface
                              GError               **error);
 };
 
+IDE_AVAILABLE_IN_3_28
 void     ide_dependency_updater_update_async  (IdeDependencyUpdater  *self,
                                                GCancellable          *cancellable,
                                                GAsyncReadyCallback    callback,
                                                gpointer               user_data);
+IDE_AVAILABLE_IN_3_28
 gboolean ide_dependency_updater_update_finish (IdeDependencyUpdater  *self,
                                                GAsyncResult          *result,
                                                GError               **error);
diff --git a/src/libide/buildsystem/ide-environment-variable.c 
b/src/libide/buildsystem/ide-environment-variable.c
index 942f3e8cc..6abcc7023 100644
--- a/src/libide/buildsystem/ide-environment-variable.c
+++ b/src/libide/buildsystem/ide-environment-variable.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-environment-variable"
+
+#include "config.h"
+
 #include "buildsystem/ide-environment-variable.h"
 
 struct _IdeEnvironmentVariable
diff --git a/src/libide/buildsystem/ide-environment.c b/src/libide/buildsystem/ide-environment.c
index bac40e33f..f8e308c3a 100644
--- a/src/libide/buildsystem/ide-environment.c
+++ b/src/libide/buildsystem/ide-environment.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-environment"
+
+#include "config.h"
+
 #include "buildsystem/ide-environment.h"
 #include "buildsystem/ide-environment-variable.h"
 
diff --git a/src/libide/buildsystem/ide-simple-build-target.h 
b/src/libide/buildsystem/ide-simple-build-target.h
index 0356f83ee..078a0feba 100644
--- a/src/libide/buildsystem/ide-simple-build-target.h
+++ b/src/libide/buildsystem/ide-simple-build-target.h
@@ -18,12 +18,14 @@
 
 #pragma once
 
-#include <ide.h>
+#include "ide-object.h"
+#include "ide-version-macros.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_SIMPLE_BUILD_TARGET (ide_simple_build_target_get_type())
 
+IDE_AVAILABLE_IN_3_30
 G_DECLARE_DERIVABLE_TYPE (IdeSimpleBuildTarget, ide_simple_build_target, IDE, SIMPLE_BUILD_TARGET, IdeObject)
 
 struct _IdeSimpleBuildTargetClass
@@ -34,17 +36,24 @@ struct _IdeSimpleBuildTargetClass
   gpointer _reserved[8];
 };
 
+IDE_AVAILABLE_IN_3_30
 IdeSimpleBuildTarget *ide_simple_build_target_new                   (IdeContext           *context);
+IDE_AVAILABLE_IN_3_30
 void                  ide_simple_build_target_set_install_directory (IdeSimpleBuildTarget *self,
                                                                      GFile                
*install_directory);
+IDE_AVAILABLE_IN_3_30
 void                  ide_simple_build_target_set_name              (IdeSimpleBuildTarget *self,
                                                                      const gchar          *name);
+IDE_AVAILABLE_IN_3_30
 void                  ide_simple_build_target_set_priority          (IdeSimpleBuildTarget *self,
                                                                      gint                  priority);
+IDE_AVAILABLE_IN_3_30
 void                  ide_simple_build_target_set_argv              (IdeSimpleBuildTarget *self,
                                                                      const gchar * const  *argv);
+IDE_AVAILABLE_IN_3_30
 void                  ide_simple_build_target_set_cwd               (IdeSimpleBuildTarget *self,
                                                                      const gchar          *cwd);
+IDE_AVAILABLE_IN_3_30
 void                  ide_simple_build_target_set_language          (IdeSimpleBuildTarget *self,
                                                                      const gchar          *language);
 
diff --git a/src/libide/config/ide-configuration-provider.h b/src/libide/config/ide-configuration-provider.h
index 9ae1039a8..d6de5254c 100644
--- a/src/libide/config/ide-configuration-provider.h
+++ b/src/libide/config/ide-configuration-provider.h
@@ -28,6 +28,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_CONFIGURATION_PROVIDER (ide_configuration_provider_get_type ())
 
+IDE_AVAILABLE_IN_3_28
 G_DECLARE_INTERFACE (IdeConfigurationProvider, ide_configuration_provider, IDE, CONFIGURATION_PROVIDER, 
IdeObject)
 
 struct _IdeConfigurationProviderInterface
diff --git a/src/libide/devices/ide-deploy-strategy.h b/src/libide/devices/ide-deploy-strategy.h
index cdff27f97..27c267e0c 100644
--- a/src/libide/devices/ide-deploy-strategy.h
+++ b/src/libide/devices/ide-deploy-strategy.h
@@ -21,11 +21,13 @@
 #pragma once
 
 #include "ide-object.h"
+#include "ide-version-macros.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_DEPLOY_STRATEGY (ide_deploy_strategy_get_type())
 
+IDE_AVAILABLE_IN_3_28
 G_DECLARE_DERIVABLE_TYPE (IdeDeployStrategy, ide_deploy_strategy, IDE, DEPLOY_STRATEGY, IdeObject)
 
 struct _IdeDeployStrategyClass
@@ -55,14 +57,17 @@ struct _IdeDeployStrategyClass
   gpointer _reserved[16];
 };
 
+IDE_AVAILABLE_IN_3_28
 void     ide_deploy_strategy_load_async    (IdeDeployStrategy      *self,
                                             IdeBuildPipeline       *pipeline,
                                             GCancellable           *cancellable,
                                             GAsyncReadyCallback     callback,
                                             gpointer                user_data);
+IDE_AVAILABLE_IN_3_28
 gboolean ide_deploy_strategy_load_finish   (IdeDeployStrategy      *self,
                                             GAsyncResult           *result,
                                             GError                **error);
+IDE_AVAILABLE_IN_3_28
 void     ide_deploy_strategy_deploy_async  (IdeDeployStrategy      *self,
                                             IdeBuildPipeline       *pipeline,
                                             GFileProgressCallback   progress,
@@ -71,6 +76,7 @@ void     ide_deploy_strategy_deploy_async  (IdeDeployStrategy      *self,
                                             GCancellable           *cancellable,
                                             GAsyncReadyCallback     callback,
                                             gpointer                user_data);
+IDE_AVAILABLE_IN_3_28
 gboolean ide_deploy_strategy_deploy_finish (IdeDeployStrategy      *self,
                                             GAsyncResult           *result,
                                             GError                **error);
diff --git a/src/libide/devices/ide-device-info.h b/src/libide/devices/ide-device-info.h
index 396ecf016..b9385d6f9 100644
--- a/src/libide/devices/ide-device-info.h
+++ b/src/libide/devices/ide-device-info.h
@@ -22,6 +22,8 @@
 
 #include <gio/gio.h>
 
+#include "ide-version-macros.h"
+
 G_BEGIN_DECLS
 
 typedef enum
@@ -34,19 +36,29 @@ typedef enum
 
 #define IDE_TYPE_DEVICE_INFO (ide_device_info_get_type())
 
+IDE_AVAILABLE_IN_3_28
 G_DECLARE_FINAL_TYPE (IdeDeviceInfo, ide_device_info, IDE, DEVICE_INFO, GObject)
 
+IDE_AVAILABLE_IN_3_28
 IdeDeviceInfo *ide_device_info_new        (void);
+IDE_AVAILABLE_IN_3_28
 IdeDeviceKind  ide_device_info_get_kind   (IdeDeviceInfo *self);
+IDE_AVAILABLE_IN_3_28
 void           ide_device_info_set_kind   (IdeDeviceInfo *self,
                                            IdeDeviceKind  kind);
+IDE_AVAILABLE_IN_3_28
 const gchar   *ide_device_info_get_kernel (IdeDeviceInfo *self);
+IDE_AVAILABLE_IN_3_28
 void           ide_device_info_set_kernel (IdeDeviceInfo *self,
                                            const gchar   *kernel);
+IDE_AVAILABLE_IN_3_28
 const gchar   *ide_device_info_get_arch   (IdeDeviceInfo *self);
+IDE_AVAILABLE_IN_3_28
 void           ide_device_info_set_arch   (IdeDeviceInfo *self,
                                            const gchar   *arch);
+IDE_AVAILABLE_IN_3_28
 const gchar   *ide_device_info_get_system (IdeDeviceInfo *self);
+IDE_AVAILABLE_IN_3_28
 void           ide_device_info_set_system (IdeDeviceInfo *self,
                                            const gchar   *system);
 
diff --git a/src/libide/diagnostics/ide-diagnostic-provider.h 
b/src/libide/diagnostics/ide-diagnostic-provider.h
index f1c04e02f..cb3bc945f 100644
--- a/src/libide/diagnostics/ide-diagnostic-provider.h
+++ b/src/libide/diagnostics/ide-diagnostic-provider.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_DIAGNOSTIC_PROVIDER (ide_diagnostic_provider_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeDiagnosticProvider, ide_diagnostic_provider, IDE, DIAGNOSTIC_PROVIDER, IdeObject)
 
 struct _IdeDiagnosticProviderInterface
diff --git a/src/libide/diagnostics/ide-fixit.c b/src/libide/diagnostics/ide-fixit.c
index 0ecccc5bb..7c1e93d30 100644
--- a/src/libide/diagnostics/ide-fixit.c
+++ b/src/libide/diagnostics/ide-fixit.c
@@ -16,7 +16,11 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "dazzle.h"
+#define G_LOG_DOMAIN "ide-fixit"
+
+#include "config.h"
+
+#include <dazzle.h>
 
 #include "diagnostics/ide-fixit.h"
 #include "diagnostics/ide-source-range.h"
diff --git a/src/libide/diagnostics/ide-fixit.h b/src/libide/diagnostics/ide-fixit.h
index 5c4661f59..a01b53c28 100644
--- a/src/libide/diagnostics/ide-fixit.h
+++ b/src/libide/diagnostics/ide-fixit.h
@@ -19,18 +19,26 @@
 #pragma once
 
 #include "ide-types.h"
+#include "ide-version-macros.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_FIXIT (ide_fixit_get_type())
 
+IDE_AVAILABLE_IN_ALL
 IdeFixit       *ide_fixit_new       (IdeSourceRange *source_range,
                                      const gchar    *replacement_text);
+IDE_AVAILABLE_IN_ALL
 GType           ide_fixit_get_type  (void);
+IDE_AVAILABLE_IN_ALL
 IdeFixit       *ide_fixit_ref       (IdeFixit       *self);
+IDE_AVAILABLE_IN_ALL
 void            ide_fixit_unref     (IdeFixit       *self);
+IDE_AVAILABLE_IN_ALL
 void            ide_fixit_apply     (IdeFixit       *self);
+IDE_AVAILABLE_IN_ALL
 const gchar    *ide_fixit_get_text  (IdeFixit       *self);
+IDE_AVAILABLE_IN_ALL
 IdeSourceRange *ide_fixit_get_range (IdeFixit       *self);
 
 G_DEFINE_AUTOPTR_CLEANUP_FUNC (IdeFixit, ide_fixit_unref)
diff --git a/src/libide/directory/ide-directory-build-system.h 
b/src/libide/directory/ide-directory-build-system.h
index e48e38060..0b12eeea6 100644
--- a/src/libide/directory/ide-directory-build-system.h
+++ b/src/libide/directory/ide-directory-build-system.h
@@ -18,12 +18,15 @@
 
 #pragma once
 
+#include "ide-version-macros.h"
+
 #include "buildsystem/ide-build-system.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_DIRECTORY_BUILD_SYSTEM (ide_directory_build_system_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeDirectoryBuildSystem, ide_directory_build_system, IDE, DIRECTORY_BUILD_SYSTEM, 
IdeObject)
 
 G_END_DECLS
diff --git a/src/libide/directory/ide-directory-vcs.h b/src/libide/directory/ide-directory-vcs.h
index 9c425312a..6a93101b2 100644
--- a/src/libide/directory/ide-directory-vcs.h
+++ b/src/libide/directory/ide-directory-vcs.h
@@ -18,12 +18,15 @@
 
 #pragma once
 
+#include "ide-version-macros.h"
+
 #include "vcs/ide-vcs.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_DIRECTORY_VCS (ide_directory_vcs_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeDirectoryVcs, ide_directory_vcs, IDE, DIRECTORY_VCS, IdeObject)
 
 G_END_DECLS
diff --git a/src/libide/doap/ide-doap-person.c b/src/libide/doap/ide-doap-person.c
index 804047e31..5f4a473b1 100644
--- a/src/libide/doap/ide-doap-person.c
+++ b/src/libide/doap/ide-doap-person.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-doap-person"
+
+#include "config.h"
+
 #include <glib/gi18n.h>
 
 #include "doap/ide-doap-person.h"
diff --git a/src/libide/documentation/ide-documentation-provider.h 
b/src/libide/documentation/ide-documentation-provider.h
index 8643117d0..693c9bd8e 100644
--- a/src/libide/documentation/ide-documentation-provider.h
+++ b/src/libide/documentation/ide-documentation-provider.h
@@ -28,6 +28,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_DOCUMENTATION_PROVIDER             (ide_documentation_provider_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeDocumentationProvider, ide_documentation_provider, IDE, DOCUMENTATION_PROVIDER, 
IdeObject)
 
 struct _IdeDocumentationProviderInterface
diff --git a/src/libide/documentation/ide-documentation.c b/src/libide/documentation/ide-documentation.c
index d45c3f769..4759a370d 100644
--- a/src/libide/documentation/ide-documentation.c
+++ b/src/libide/documentation/ide-documentation.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-documentation"
+
+#include "config.h"
+
 #include <glib/gi18n.h>
 #include <libpeas/peas.h>
 
diff --git a/src/libide/documentation/ide-documentation.h b/src/libide/documentation/ide-documentation.h
index 1122d15fc..7a7d4f25d 100644
--- a/src/libide/documentation/ide-documentation.h
+++ b/src/libide/documentation/ide-documentation.h
@@ -29,14 +29,11 @@ G_BEGIN_DECLS
 #define IDE_TYPE_DOCUMENTATION (ide_documentation_get_type())
 
 IDE_AVAILABLE_IN_ALL
-G_DECLARE_FINAL_TYPE (IdeDocumentation,
-                      ide_documentation,
-                      IDE, DOCUMENTATION,
-                      IdeObject)
+G_DECLARE_FINAL_TYPE (IdeDocumentation, ide_documentation, IDE, DOCUMENTATION, IdeObject)
 
 IDE_AVAILABLE_IN_ALL
-IdeDocumentationInfo    *ide_documentation_get_info    (IdeDocumentation        *self,
-                                                        const gchar             *input,
-                                                        IdeDocumentationContext  context);
+IdeDocumentationInfo *ide_documentation_get_info (IdeDocumentation        *self,
+                                                  const gchar             *input,
+                                                  IdeDocumentationContext  context);
 
 G_END_DECLS
diff --git a/src/libide/editor/ide-editor-addin.h b/src/libide/editor/ide-editor-addin.h
index e927c8c4a..2859705c8 100644
--- a/src/libide/editor/ide-editor-addin.h
+++ b/src/libide/editor/ide-editor-addin.h
@@ -27,6 +27,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_EDITOR_ADDIN (ide_editor_addin_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeEditorAddin, ide_editor_addin, IDE, EDITOR_ADDIN, GObject)
 
 struct _IdeEditorAddinInterface
diff --git a/src/libide/editor/ide-editor-utilities.h b/src/libide/editor/ide-editor-utilities.h
index c4a54aece..8723273d5 100644
--- a/src/libide/editor/ide-editor-utilities.h
+++ b/src/libide/editor/ide-editor-utilities.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_EDITOR_UTILITIES (ide_editor_utilities_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeEditorUtilities, ide_editor_utilities, IDE, EDITOR_UTILITIES, IdeLayoutPane)
 
 /* Use GtkContainer api to add your DzlDockWidget */
diff --git a/src/libide/editor/ide-editor-view-addin.h b/src/libide/editor/ide-editor-view-addin.h
index 259acbf2a..b049d84e3 100644
--- a/src/libide/editor/ide-editor-view-addin.h
+++ b/src/libide/editor/ide-editor-view-addin.h
@@ -27,6 +27,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_EDITOR_VIEW_ADDIN (ide_editor_view_addin_get_type ())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeEditorViewAddin, ide_editor_view_addin, IDE, EDITOR_VIEW_ADDIN, GObject)
 
 struct _IdeEditorViewAddinInterface
diff --git a/src/libide/files/ide-file-settings.h b/src/libide/files/ide-file-settings.h
index 640901611..b34547b21 100644
--- a/src/libide/files/ide-file-settings.h
+++ b/src/libide/files/ide-file-settings.h
@@ -48,24 +48,24 @@ IDE_AVAILABLE_IN_ALL
 gboolean         ide_file_settings_get_settled (IdeFileSettings *self);
 
 #define IDE_FILE_SETTINGS_PROPERTY(_1, name, _2, ret_type, _3, _4, _5, _6) \
-  ret_type ide_file_settings_get_##name (IdeFileSettings *self);
+  _IDE_EXTERN ret_type ide_file_settings_get_##name (IdeFileSettings *self);
 # include "ide-file-settings.defs"
 #undef IDE_FILE_SETTINGS_PROPERTY
 
 #define IDE_FILE_SETTINGS_PROPERTY(_1, name, _2, ret_type, _3, _4, _5, _6) \
-  void ide_file_settings_set_##name (IdeFileSettings *self, \
-                                     ret_type         name);
+  _IDE_EXTERN void ide_file_settings_set_##name (IdeFileSettings *self, \
+                                                 ret_type         name);
 # include "ide-file-settings.defs"
 #undef IDE_FILE_SETTINGS_PROPERTY
 
 #define IDE_FILE_SETTINGS_PROPERTY(_1, name, _2, _3, _4, _5, _6, _7) \
-  gboolean ide_file_settings_get_##name##_set (IdeFileSettings *self);
+  _IDE_EXTERN gboolean ide_file_settings_get_##name##_set (IdeFileSettings *self);
 # include "ide-file-settings.defs"
 #undef IDE_FILE_SETTINGS_PROPERTY
 
 #define IDE_FILE_SETTINGS_PROPERTY(_1, name, _2, _3, _4, _5, _6, _7) \
-  void ide_file_settings_set_##name##_set (IdeFileSettings *self, \
-                                           gboolean         name##_set);
+  _IDE_EXTERN void ide_file_settings_set_##name##_set (IdeFileSettings *self, \
+                                                       gboolean         name##_set);
 # include "ide-file-settings.defs"
 #undef IDE_FILE_SETTINGS_PROPERTY
 
diff --git a/src/libide/formatting/ide-formatter-options.h b/src/libide/formatting/ide-formatter-options.h
index 44b952543..464384364 100644
--- a/src/libide/formatting/ide-formatter-options.h
+++ b/src/libide/formatting/ide-formatter-options.h
@@ -20,17 +20,25 @@
 
 #include <glib-object.h>
 
+#include "ide-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define IDE_TYPE_FORMATTER_OPTIONS (ide_formatter_options_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeFormatterOptions, ide_formatter_options, IDE, FORMATTER_OPTIONS, GObject)
 
+IDE_AVAILABLE_IN_ALL
 IdeFormatterOptions *ide_formatter_options_new               (void);
+IDE_AVAILABLE_IN_ALL
 guint                ide_formatter_options_get_tab_width     (IdeFormatterOptions *self);
+IDE_AVAILABLE_IN_ALL
 void                 ide_formatter_options_set_tab_width     (IdeFormatterOptions *self,
                                                               guint                tab_width);
+IDE_AVAILABLE_IN_ALL
 gboolean             ide_formatter_options_get_insert_spaces (IdeFormatterOptions *self);
+IDE_AVAILABLE_IN_ALL
 void                 ide_formatter_options_set_insert_spaces (IdeFormatterOptions *self,
                                                               gboolean             insert_spaces);
 
diff --git a/src/libide/formatting/ide-formatter.h b/src/libide/formatting/ide-formatter.h
index c6fc23491..c1a71dea1 100644
--- a/src/libide/formatting/ide-formatter.h
+++ b/src/libide/formatting/ide-formatter.h
@@ -21,6 +21,7 @@
 #include <gtk/gtk.h>
 
 #include "ide-object.h"
+#include "ide-version-macros.h"
 
 #include "formatting/ide-formatter-options.h"
 
@@ -28,6 +29,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_FORMATTER (ide_formatter_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeFormatter, ide_formatter, IDE, FORMATTER, IdeObject)
 
 struct _IdeFormatterInterface
@@ -57,16 +59,20 @@ struct _IdeFormatterInterface
                                    GError              **error);
 };
 
+IDE_AVAILABLE_IN_ALL
 void     ide_formatter_load                (IdeFormatter         *self);
+IDE_AVAILABLE_IN_ALL
 void     ide_formatter_format_async        (IdeFormatter         *self,
                                             IdeBuffer            *buffer,
                                             IdeFormatterOptions  *options,
                                             GCancellable         *cancellable,
                                             GAsyncReadyCallback   callback,
                                             gpointer              user_data);
+IDE_AVAILABLE_IN_ALL
 gboolean ide_formatter_format_finish       (IdeFormatter         *self,
                                             GAsyncResult         *result,
                                             GError              **error);
+IDE_AVAILABLE_IN_ALL
 void     ide_formatter_format_range_async  (IdeFormatter         *self,
                                             IdeBuffer            *buffer,
                                             IdeFormatterOptions  *options,
@@ -75,6 +81,7 @@ void     ide_formatter_format_range_async  (IdeFormatter         *self,
                                             GCancellable         *cancellable,
                                             GAsyncReadyCallback   callback,
                                             gpointer              user_data);
+IDE_AVAILABLE_IN_ALL
 gboolean ide_formatter_format_range_finish (IdeFormatter         *self,
                                             GAsyncResult         *result,
                                             GError              **error);
diff --git a/src/libide/genesis/ide-genesis-addin.c b/src/libide/genesis/ide-genesis-addin.c
index 04c25cd94..464924da0 100644
--- a/src/libide/genesis/ide-genesis-addin.c
+++ b/src/libide/genesis/ide-genesis-addin.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-genesis-addin"
+
+#include "config.h"
+
 #include "genesis/ide-genesis-addin.h"
 
 G_DEFINE_INTERFACE (IdeGenesisAddin, ide_genesis_addin, G_TYPE_OBJECT)
diff --git a/src/libide/genesis/ide-genesis-addin.h b/src/libide/genesis/ide-genesis-addin.h
index 521c3eb0a..5993c8ef7 100644
--- a/src/libide/genesis/ide-genesis-addin.h
+++ b/src/libide/genesis/ide-genesis-addin.h
@@ -28,6 +28,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_GENESIS_ADDIN (ide_genesis_addin_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeGenesisAddin, ide_genesis_addin, IDE, GENESIS_ADDIN, GObject)
 
 struct _IdeGenesisAddinInterface
diff --git a/src/libide/greeter/ide-greeter-section.h b/src/libide/greeter/ide-greeter-section.h
index 4c097db33..8950a3c93 100644
--- a/src/libide/greeter/ide-greeter-section.h
+++ b/src/libide/greeter/ide-greeter-section.h
@@ -28,6 +28,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_GREETER_SECTION (ide_greeter_section_get_type ())
 
+IDE_AVAILABLE_IN_3_28
 G_DECLARE_INTERFACE (IdeGreeterSection, ide_greeter_section, IDE, GREETER_SECTION, GtkWidget)
 
 struct _IdeGreeterSectionInterface
diff --git a/src/libide/highlighting/ide-highlighter.c b/src/libide/highlighting/ide-highlighter.c
index fe7c7031c..ae44b4667 100644
--- a/src/libide/highlighting/ide-highlighter.c
+++ b/src/libide/highlighting/ide-highlighter.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-highlighter"
+
+#include "config.h"
+
 #include <glib/gi18n.h>
 
 #include "ide-context.h"
diff --git a/src/libide/highlighting/ide-highlighter.h b/src/libide/highlighting/ide-highlighter.h
index fa4501800..dbee9e3f8 100644
--- a/src/libide/highlighting/ide-highlighter.h
+++ b/src/libide/highlighting/ide-highlighter.h
@@ -20,10 +20,9 @@
 
 #include <gtk/gtk.h>
 
-#include "ide-version-macros.h"
-
 #include "ide-object.h"
 #include "ide-types.h"
+#include "ide-version-macros.h"
 
 #include "buffers/ide-buffer.h"
 #include "sourceview/ide-source-view.h"
@@ -32,6 +31,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_HIGHLIGHTER (ide_highlighter_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeHighlighter, ide_highlighter, IDE, HIGHLIGHTER, IdeObject)
 
 typedef enum
diff --git a/src/libide/ide-context.h b/src/libide/ide-context.h
index cb1a8bb49..d61d65ec8 100644
--- a/src/libide/ide-context.h
+++ b/src/libide/ide-context.h
@@ -22,9 +22,8 @@
 #include <gio/gio.h>
 #include <gtk/gtk.h>
 
-#include "ide-version-macros.h"
-
 #include "ide-types.h"
+#include "ide-version-macros.h"
 
 G_BEGIN_DECLS
 
diff --git a/src/libide/ide-enums.c.in b/src/libide/ide-enums.c.in
index 8aad2d4a6..0441f2434 100644
--- a/src/libide/ide-enums.c.in
+++ b/src/libide/ide-enums.c.in
@@ -16,7 +16,6 @@
 #include "files/ide-spaces-style.h"
 #include "highlighting/ide-highlighter.h"
 #include "runtimes/ide-runtime.h"
-#include "sourceview/ide-cursor.h"
 #include "sourceview/ide-source-view.h"
 #include "symbols/ide-symbol.h"
 #include "testing/ide-test.h"
diff --git a/src/libide/ide-global.h b/src/libide/ide-global.h
index 6662f3505..adb900b57 100644
--- a/src/libide/ide-global.h
+++ b/src/libide/ide-global.h
@@ -18,11 +18,13 @@
 
 #pragma once
 
-#include <glib.h>
+#include "ide-version-macros.h"
 
 G_BEGIN_DECLS
 
+IDE_AVAILABLE_IN_ALL
 const gchar *ide_get_program_name (void);
+IDE_AVAILABLE_IN_ALL
 void         ide_set_program_name (const gchar *program_name);
 
 G_END_DECLS
diff --git a/src/libide/ide-service.c b/src/libide/ide-service.c
index d0fde7dcb..6f0a70c6a 100644
--- a/src/libide/ide-service.c
+++ b/src/libide/ide-service.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-service"
+
+#include "config.h"
+
 #include <glib/gi18n.h>
 
 #include "ide-context.h"
diff --git a/src/libide/ide-service.h b/src/libide/ide-service.h
index bd420387f..736abd91a 100644
--- a/src/libide/ide-service.h
+++ b/src/libide/ide-service.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_SERVICE (ide_service_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeService, ide_service, IDE, SERVICE, IdeObject)
 
 /**
diff --git a/src/libide/ide.c b/src/libide/ide.c
index 508de30dd..00df40d21 100644
--- a/src/libide/ide.c
+++ b/src/libide/ide.c
@@ -16,6 +16,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include "config.h"
+
 #include <girepository.h>
 #include <glib/gi18n.h>
 #include <stdlib.h>
diff --git a/src/libide/ide.h b/src/libide/ide.h
index 660a53d9a..3d2686913 100644
--- a/src/libide/ide.h
+++ b/src/libide/ide.h
@@ -46,7 +46,6 @@ G_BEGIN_DECLS
 #include "buffers/ide-unsaved-file.h"
 #include "buffers/ide-unsaved-files.h"
 #include "buildconfig/ide-buildconfig-configuration.h"
-#include "buildconfig/ide-buildconfig-configuration-provider.h"
 #include "buildsystem/ide-build-manager.h"
 #include "buildsystem/ide-build-pipeline.h"
 #include "buildsystem/ide-build-pipeline-addin.h"
@@ -193,6 +192,7 @@ G_BEGIN_DECLS
 #include "util/ide-posix.h"
 #include "util/ide-progress.h"
 #include "util/ide-ref-ptr.h"
+#include "util/ide-settings.h"
 #include "util/ide-uri.h"
 #include "vcs/ide-vcs-config.h"
 #include "vcs/ide-vcs-file-info.h"
diff --git a/src/libide/langserv/ide-langserv-formatter.h b/src/libide/langserv/ide-langserv-formatter.h
index 31e51caa4..38bcc8917 100644
--- a/src/libide/langserv/ide-langserv-formatter.h
+++ b/src/libide/langserv/ide-langserv-formatter.h
@@ -19,6 +19,7 @@
 #pragma once
 
 #include "ide-object.h"
+#include "ide-version-macros.h"
 
 #include "formatting/ide-formatter.h"
 #include "langserv/ide-langserv-client.h"
@@ -27,21 +28,21 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_LANGSERV_FORMATTER (ide_langserv_formatter_get_type())
 
+IDE_AVAILABLE_IN_ALL
+G_DECLARE_FINAL_TYPE (IdeLangservFormatter, ide_langserv_formatter, IDE, LANGSERV_FORMATTER, IdeObject)
+
 struct _IdeLangservFormatter
 {
   IdeObject parent_class;
 
   /*< private >*/
-  gpointer _reserved1;
-  gpointer _reserved2;
-  gpointer _reserved3;
-  gpointer _reserved4;
+  gpointer _reserved[4];
 };
 
-G_DECLARE_FINAL_TYPE (IdeLangservFormatter, ide_langserv_formatter, IDE, LANGSERV_FORMATTER, IdeObject)
-
+IDE_AVAILABLE_IN_ALL
 void                  ide_langserv_formatter_set_client (IdeLangservFormatter *self,
                                                          IdeLangservClient    *client);
+IDE_AVAILABLE_IN_ALL
 IdeLangservClient    *ide_langserv_formatter_get_client (IdeLangservFormatter *self);
 
 G_END_DECLS
diff --git a/src/libide/langserv/ide-langserv-highlighter.h b/src/libide/langserv/ide-langserv-highlighter.h
index 55c3cd2db..e1f6a82f4 100644
--- a/src/libide/langserv/ide-langserv-highlighter.h
+++ b/src/libide/langserv/ide-langserv-highlighter.h
@@ -19,6 +19,7 @@
 #pragma once
 
 #include "ide-object.h"
+#include "ide-version-macros.h"
 
 #include "highlighting/ide-highlighter.h"
 #include "langserv/ide-langserv-client.h"
@@ -27,6 +28,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_LANGSERV_HIGHLIGHTER (ide_langserv_highlighter_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_DERIVABLE_TYPE (IdeLangservHighlighter, ide_langserv_highlighter, IDE, LANGSERV_HIGHLIGHTER, 
IdeObject)
 
 struct _IdeLangservHighlighterClass
@@ -40,7 +42,9 @@ struct _IdeLangservHighlighterClass
   gpointer _reserved4;
 };
 
+IDE_AVAILABLE_IN_ALL
 IdeLangservClient *ide_langserv_highlighter_get_client (IdeLangservHighlighter *self);
+IDE_AVAILABLE_IN_ALL
 void               ide_langserv_highlighter_set_client (IdeLangservHighlighter *self,
                                                         IdeLangservClient      *client);
 
diff --git a/src/libide/langserv/ide-langserv-symbol-node.h b/src/libide/langserv/ide-langserv-symbol-node.h
index 04296e788..208ba6c52 100644
--- a/src/libide/langserv/ide-langserv-symbol-node.h
+++ b/src/libide/langserv/ide-langserv-symbol-node.h
@@ -18,15 +18,20 @@
 
 #pragma once
 
+#include "ide-version-macros.h"
+
 #include "symbols/ide-symbol-node.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_LANGSERV_SYMBOL_NODE (ide_langserv_symbol_node_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeLangservSymbolNode, ide_langserv_symbol_node, IDE, LANGSERV_SYMBOL_NODE, 
IdeSymbolNode)
 
+IDE_AVAILABLE_IN_ALL
 const gchar *ide_langserv_symbol_node_get_parent_name (IdeLangservSymbolNode *self);
+IDE_AVAILABLE_IN_ALL
 gboolean     ide_langserv_symbol_node_is_parent_of    (IdeLangservSymbolNode *self,
                                                        IdeLangservSymbolNode *other);
 
diff --git a/src/libide/langserv/ide-langserv-symbol-tree.h b/src/libide/langserv/ide-langserv-symbol-tree.h
index 6d209517a..5f109bb90 100644
--- a/src/libide/langserv/ide-langserv-symbol-tree.h
+++ b/src/libide/langserv/ide-langserv-symbol-tree.h
@@ -20,10 +20,13 @@
 
 #include "symbols/ide-symbol-tree.h"
 
+#include "ide-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define IDE_TYPE_LANGSERV_SYMBOL_TREE (ide_langserv_symbol_tree_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeLangservSymbolTree, ide_langserv_symbol_tree, IDE, LANGSERV_SYMBOL_TREE, GObject)
 
 G_END_DECLS
diff --git a/src/libide/layout/ide-layout-pane.c b/src/libide/layout/ide-layout-pane.c
index 8aa2cd7ae..995b90591 100644
--- a/src/libide/layout/ide-layout-pane.c
+++ b/src/libide/layout/ide-layout-pane.c
@@ -16,9 +16,12 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include <glib/gi18n.h>
+#define G_LOG_DOMAIN "ide-layout-pane"
+
+#include "config.h"
 
-#include "dazzle.h"
+#include <dazzle.h>
+#include <glib/gi18n.h>
 
 #include "layout/ide-layout-pane.h"
 
diff --git a/src/libide/layout/ide-layout-pane.h b/src/libide/layout/ide-layout-pane.h
index 680f1ff73..dc49979fc 100644
--- a/src/libide/layout/ide-layout-pane.h
+++ b/src/libide/layout/ide-layout-pane.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_LAYOUT_PANE (ide_layout_pane_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_DERIVABLE_TYPE (IdeLayoutPane, ide_layout_pane, IDE, LAYOUT_PANE, DzlDockBinEdge)
 
 struct _IdeLayoutPaneClass
@@ -33,14 +34,7 @@ struct _IdeLayoutPaneClass
   DzlDockBinEdgeClass parent_class;
 
   /*< private >*/
-  gpointer _reserved1;
-  gpointer _reserved2;
-  gpointer _reserved3;
-  gpointer _reserved4;
-  gpointer _reserved5;
-  gpointer _reserved6;
-  gpointer _reserved7;
-  gpointer _reserved8;
+  gpointer _reserved[8];
 };
 
 G_END_DECLS
diff --git a/src/libide/layout/ide-layout-stack-addin.h b/src/libide/layout/ide-layout-stack-addin.h
index bd054c6aa..faefafa65 100644
--- a/src/libide/layout/ide-layout-stack-addin.h
+++ b/src/libide/layout/ide-layout-stack-addin.h
@@ -29,6 +29,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_LAYOUT_STACK_ADDIN (ide_layout_stack_addin_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeLayoutStackAddin, ide_layout_stack_addin, IDE, LAYOUT_STACK_ADDIN, GObject)
 
 struct _IdeLayoutStackAddinInterface
diff --git a/src/libide/layout/ide-layout.h b/src/libide/layout/ide-layout.h
index fe41bd2e6..b7166c0ab 100644
--- a/src/libide/layout/ide-layout.h
+++ b/src/libide/layout/ide-layout.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_LAYOUT (ide_layout_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_DERIVABLE_TYPE (IdeLayout, ide_layout, IDE, LAYOUT, DzlDockBin)
 
 struct _IdeLayoutClass
@@ -33,14 +34,7 @@ struct _IdeLayoutClass
   DzlDockBinClass parent_class;
 
   /*< private >*/
-  gpointer _reserved1;
-  gpointer _reserved2;
-  gpointer _reserved3;
-  gpointer _reserved4;
-  gpointer _reserved5;
-  gpointer _reserved6;
-  gpointer _reserved7;
-  gpointer _reserved8;
+  gpointer _reserved[8];
 };
 
 G_END_DECLS
diff --git a/src/libide/local/ide-local-device.h b/src/libide/local/ide-local-device.h
index aa240ea0c..df5b26db0 100644
--- a/src/libide/local/ide-local-device.h
+++ b/src/libide/local/ide-local-device.h
@@ -26,12 +26,14 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_LOCAL_DEVICE (ide_local_device_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_DERIVABLE_TYPE (IdeLocalDevice, ide_local_device, IDE, LOCAL_DEVICE, IdeDevice)
 
 struct _IdeLocalDeviceClass
 {
   IdeDeviceClass parent;
 
+  /*< private >*/
   gpointer _reserved[8];
 };
 
diff --git a/src/libide/plugins/ide-extension-adapter.h b/src/libide/plugins/ide-extension-adapter.h
index 97b9ab78b..5e5d8aea7 100644
--- a/src/libide/plugins/ide-extension-adapter.h
+++ b/src/libide/plugins/ide-extension-adapter.h
@@ -21,25 +21,35 @@
 #include <libpeas/peas.h>
 
 #include "ide-object.h"
+#include "ide-version-macros.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_EXTENSION_ADAPTER (ide_extension_adapter_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeExtensionAdapter, ide_extension_adapter, IDE, EXTENSION_ADAPTER, IdeObject)
 
+IDE_AVAILABLE_IN_ALL
 IdeExtensionAdapter *ide_extension_adapter_new                (IdeContext          *context,
                                                                PeasEngine          *engine,
                                                                GType                interface_type,
                                                                const gchar         *key,
                                                                const gchar         *value);
+IDE_AVAILABLE_IN_ALL
 PeasEngine          *ide_extension_adapter_get_engine         (IdeExtensionAdapter *self);
+IDE_AVAILABLE_IN_ALL
 gpointer             ide_extension_adapter_get_extension      (IdeExtensionAdapter *self);
+IDE_AVAILABLE_IN_ALL
 GType                ide_extension_adapter_get_interface_type (IdeExtensionAdapter *self);
+IDE_AVAILABLE_IN_ALL
 const gchar         *ide_extension_adapter_get_key            (IdeExtensionAdapter *self);
+IDE_AVAILABLE_IN_ALL
 void                 ide_extension_adapter_set_key            (IdeExtensionAdapter *self,
                                                                const gchar         *key);
+IDE_AVAILABLE_IN_ALL
 const gchar         *ide_extension_adapter_get_value          (IdeExtensionAdapter *self);
+IDE_AVAILABLE_IN_ALL
 void                 ide_extension_adapter_set_value          (IdeExtensionAdapter *self,
                                                                const gchar         *value);
 
diff --git a/src/libide/plugins/ide-extension-set-adapter.h b/src/libide/plugins/ide-extension-set-adapter.h
index 681a34409..ce5d2c179 100644
--- a/src/libide/plugins/ide-extension-set-adapter.h
+++ b/src/libide/plugins/ide-extension-set-adapter.h
@@ -21,11 +21,13 @@
 #include <libpeas/peas.h>
 
 #include "ide-object.h"
+#include "ide-version-macros.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_EXTENSION_SET_ADAPTER (ide_extension_set_adapter_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeExtensionSetAdapter, ide_extension_set_adapter, IDE, EXTENSION_SET_ADAPTER, 
IdeObject)
 
 typedef void (*IdeExtensionSetAdapterForeachFunc) (IdeExtensionSetAdapter *set,
@@ -33,23 +35,33 @@ typedef void (*IdeExtensionSetAdapterForeachFunc) (IdeExtensionSetAdapter *set,
                                                    PeasExtension          *extension,
                                                    gpointer                user_data);
 
+IDE_AVAILABLE_IN_ALL
 IdeExtensionSetAdapter *ide_extension_set_adapter_new                (IdeContext                        
*context,
                                                                       PeasEngine                        
*engine,
                                                                       GType                              
interface_type,
                                                                       const gchar                       *key,
                                                                       const gchar                       
*value);
+IDE_AVAILABLE_IN_ALL
 PeasEngine             *ide_extension_set_adapter_get_engine         (IdeExtensionSetAdapter            
*self);
+IDE_AVAILABLE_IN_ALL
 GType                   ide_extension_set_adapter_get_interface_type (IdeExtensionSetAdapter            
*self);
+IDE_AVAILABLE_IN_ALL
 const gchar            *ide_extension_set_adapter_get_key            (IdeExtensionSetAdapter            
*self);
+IDE_AVAILABLE_IN_ALL
 void                    ide_extension_set_adapter_set_key            (IdeExtensionSetAdapter            
*self,
                                                                       const gchar                       
*key);
+IDE_AVAILABLE_IN_ALL
 const gchar            *ide_extension_set_adapter_get_value          (IdeExtensionSetAdapter            
*self);
+IDE_AVAILABLE_IN_ALL
 void                    ide_extension_set_adapter_set_value          (IdeExtensionSetAdapter            
*self,
                                                                       const gchar                       
*value);
+IDE_AVAILABLE_IN_ALL
 guint                   ide_extension_set_adapter_get_n_extensions   (IdeExtensionSetAdapter            
*self);
+IDE_AVAILABLE_IN_ALL
 void                    ide_extension_set_adapter_foreach            (IdeExtensionSetAdapter            
*self,
                                                                       IdeExtensionSetAdapterForeachFunc  
foreach_func,
                                                                       gpointer                           
user_data);
+IDE_AVAILABLE_IN_ALL
 PeasExtension          *ide_extension_set_adapter_get_extension      (IdeExtensionSetAdapter            
*self,
                                                                       PeasPluginInfo                    
*plugin_info);
 
diff --git a/src/libide/preferences/ide-preferences-addin.h b/src/libide/preferences/ide-preferences-addin.h
index 8eeda330d..516d4984d 100644
--- a/src/libide/preferences/ide-preferences-addin.h
+++ b/src/libide/preferences/ide-preferences-addin.h
@@ -27,6 +27,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_PREFERENCES_ADDIN (ide_preferences_addin_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdePreferencesAddin, ide_preferences_addin, IDE, PREFERENCES_ADDIN, GObject)
 
 struct _IdePreferencesAddinInterface
diff --git a/src/libide/preferences/ide-preferences-perspective.h 
b/src/libide/preferences/ide-preferences-perspective.h
index 7433c9501..9a79369b2 100644
--- a/src/libide/preferences/ide-preferences-perspective.h
+++ b/src/libide/preferences/ide-preferences-perspective.h
@@ -27,6 +27,7 @@ G_BEGIN_DECLS
 #define IDE_TYPE_PREFERENCES_PERSPECTIVE     (ide_preferences_perspective_get_type())
 #define IDE_PREFERENCES_PERSPECTIVE_PRIORITY 1000000
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdePreferencesPerspective, ide_preferences_perspective, IDE, PREFERENCES_PERSPECTIVE, 
DzlPreferencesView)
 
 G_END_DECLS
diff --git a/src/libide/preferences/ide-preferences-window.h b/src/libide/preferences/ide-preferences-window.h
index 26d5e6682..91d172e58 100644
--- a/src/libide/preferences/ide-preferences-window.h
+++ b/src/libide/preferences/ide-preferences-window.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_PREFERENCES_WINDOW (ide_preferences_window_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdePreferencesWindow, ide_preferences_window, IDE, PREFERENCES_WINDOW, GtkWindow)
 
 G_END_DECLS
diff --git a/src/libide/projects/ide-recent-projects.c b/src/libide/projects/ide-recent-projects.c
index d07344377..27cc8fae8 100644
--- a/src/libide/projects/ide-recent-projects.c
+++ b/src/libide/projects/ide-recent-projects.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-recent-projects"
+
+#include "config.h"
+
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
diff --git a/src/libide/rename/ide-rename-provider.h b/src/libide/rename/ide-rename-provider.h
index 9266c58ff..2da18f18f 100644
--- a/src/libide/rename/ide-rename-provider.h
+++ b/src/libide/rename/ide-rename-provider.h
@@ -28,6 +28,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_RENAME_PROVIDER (ide_rename_provider_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeRenameProvider, ide_rename_provider, IDE, RENAME_PROVIDER, IdeObject)
 
 struct _IdeRenameProviderInterface
diff --git a/src/libide/runner/ide-runner-addin.h b/src/libide/runner/ide-runner-addin.h
index 5814dec1c..870ff44c6 100644
--- a/src/libide/runner/ide-runner-addin.h
+++ b/src/libide/runner/ide-runner-addin.h
@@ -29,6 +29,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_RUNNER_ADDIN (ide_runner_addin_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeRunnerAddin, ide_runner_addin, IDE, RUNNER_ADDIN, GObject)
 
 struct _IdeRunnerAddinInterface
diff --git a/src/libide/runner/meson.build b/src/libide/runner/meson.build
index 0e16c9058..6ec982bf9 100644
--- a/src/libide/runner/meson.build
+++ b/src/libide/runner/meson.build
@@ -1,18 +1,17 @@
 runner_headers = [
-  'ide-run-button.h',
   'ide-run-manager.h',
   'ide-runner.h',
   'ide-runner-addin.h',
 ]
 
 runner_sources = [
-  'ide-run-button.c',
   'ide-run-manager.c',
   'ide-runner.c',
   'ide-runner-addin.c',
 ]
 
 runner_private_sources = [
+  'ide-run-button.c',
   'ide-run-manager-private.h',
 ]
 
diff --git a/src/libide/runtimes/ide-runtime-provider.h b/src/libide/runtimes/ide-runtime-provider.h
index 3f8a0f7ca..b6a5a9bff 100644
--- a/src/libide/runtimes/ide-runtime-provider.h
+++ b/src/libide/runtimes/ide-runtime-provider.h
@@ -28,6 +28,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_RUNTIME_PROVIDER (ide_runtime_provider_get_type ())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeRuntimeProvider, ide_runtime_provider, IDE, RUNTIME_PROVIDER, GObject)
 
 struct _IdeRuntimeProviderInterface
diff --git a/src/libide/search/ide-search-provider.h b/src/libide/search/ide-search-provider.h
index 9d88bdab2..c2cce3176 100644
--- a/src/libide/search/ide-search-provider.h
+++ b/src/libide/search/ide-search-provider.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_SEARCH_PROVIDER (ide_search_provider_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeSearchProvider, ide_search_provider, IDE, SEARCH_PROVIDER, IdeObject)
 
 struct _IdeSearchProviderInterface
diff --git a/src/libide/search/ide-tagged-entry.c b/src/libide/search/ide-tagged-entry.c
index 607b034c8..e19345b95 100644
--- a/src/libide/search/ide-tagged-entry.c
+++ b/src/libide/search/ide-tagged-entry.c
@@ -3,16 +3,16 @@
  * Copyright 2013 Ignacio Casal Quinteiro
  *
  * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by 
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation; either version 2 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 Lesser General Public 
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
  * License for more details.
  *
- * You should have received a copy of the GNU Lesser General Public License 
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  *
@@ -20,10 +20,12 @@
  *
  */
 
-#include "ide-tagged-entry.h"
+#include "config.h"
 
 #include <math.h>
 
+#include "ide-tagged-entry.h"
+
 #define BUTTON_INTERNAL_SPACING 6
 
 struct _IdeTaggedEntryTagPrivate {
@@ -153,7 +155,7 @@ ide_tagged_entry_tag_panel_get_height (IdeTaggedEntryTag *tag,
 
 static void
 ide_tagged_entry_tag_panel_get_position (IdeTaggedEntry *self,
-                                        gint *x_out, 
+                                        gint *x_out,
                                         gint *y_out)
 {
   GtkWidget *widget = GTK_WIDGET (self);
@@ -416,7 +418,7 @@ ide_tagged_entry_tag_event_is_button (IdeTaggedEntryTag *tag,
   gtk_style_context_restore (context);
 
   /* see if the event falls into the button allocation */
-  if ((event_x >= button_allocation.x && 
+  if ((event_x >= button_allocation.x &&
        event_x <= button_allocation.x + button_allocation.width) &&
       (event_y >= button_allocation.y &&
        event_y <= button_allocation.y + button_allocation.height))
@@ -477,10 +479,10 @@ ide_tagged_entry_tag_draw (IdeTaggedEntryTag *tag,
   gtk_style_context_set_state (context, state);
   gtk_render_background (context, cr,
                          background_allocation.x, background_allocation.y,
-                         background_allocation.width, background_allocation.height); 
+                         background_allocation.width, background_allocation.height);
   gtk_render_frame (context, cr,
                     background_allocation.x, background_allocation.y,
-                    background_allocation.width, background_allocation.height); 
+                    background_allocation.width, background_allocation.height);
 
   gtk_render_layout (context, cr,
                      layout_allocation.x, layout_allocation.y,
diff --git a/src/libide/snippets/ide-source-snippet-chunk.c b/src/libide/snippets/ide-source-snippet-chunk.c
index bf2edf155..d3da32064 100644
--- a/src/libide/snippets/ide-source-snippet-chunk.c
+++ b/src/libide/snippets/ide-source-snippet-chunk.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-source-snippet"
+
+#include "config.h"
+
 #include <glib/gi18n.h>
 
 #include "snippets/ide-source-snippet-chunk.h"
diff --git a/src/libide/snippets/ide-source-snippet-chunk.h b/src/libide/snippets/ide-source-snippet-chunk.h
index 01926daee..d9b65b86c 100644
--- a/src/libide/snippets/ide-source-snippet-chunk.h
+++ b/src/libide/snippets/ide-source-snippet-chunk.h
@@ -18,9 +18,8 @@
 
 #pragma once
 
-#include "ide-version-macros.h"
-
 #include "ide-types.h"
+#include "ide-version-macros.h"
 
 G_BEGIN_DECLS
 
diff --git a/src/libide/snippets/ide-source-snippet.h b/src/libide/snippets/ide-source-snippet.h
index bb7cb0b15..19dd3f87a 100644
--- a/src/libide/snippets/ide-source-snippet.h
+++ b/src/libide/snippets/ide-source-snippet.h
@@ -20,9 +20,8 @@
 
 #include <gtk/gtk.h>
 
-#include "ide-version-macros.h"
-
 #include "ide-object.h"
+#include "ide-version-macros.h"
 
 G_BEGIN_DECLS
 
diff --git a/src/libide/snippets/ide-source-snippets.c b/src/libide/snippets/ide-source-snippets.c
index ae5f3299f..0c69e289e 100644
--- a/src/libide/snippets/ide-source-snippets.c
+++ b/src/libide/snippets/ide-source-snippets.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-source-snippets"
+
+#include "config.h"
+
 #include <dazzle.h>
 #include <glib/gi18n.h>
 #include <string.h>
diff --git a/src/libide/sourceview/ide-completion-provider.c b/src/libide/sourceview/ide-completion-provider.c
index 2267380ef..a97ca2432 100644
--- a/src/libide/sourceview/ide-completion-provider.c
+++ b/src/libide/sourceview/ide-completion-provider.c
@@ -16,9 +16,14 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "sourceview/ide-completion-provider.h"
+#define G_LOG_DOMAIN "ide-completion-provider"
+
+#include "config.h"
+
 #include "ide-context.h"
 
+#include "sourceview/ide-completion-provider.h"
+
 G_DEFINE_INTERFACE (IdeCompletionProvider, ide_completion_provider, GTK_SOURCE_TYPE_COMPLETION_PROVIDER)
 
 static void
diff --git a/src/libide/sourceview/ide-completion-provider.h b/src/libide/sourceview/ide-completion-provider.h
index 0522336d4..a6918defa 100644
--- a/src/libide/sourceview/ide-completion-provider.h
+++ b/src/libide/sourceview/ide-completion-provider.h
@@ -20,9 +20,8 @@
 
 #include <gtksourceview/gtksource.h>
 
-#include "ide-version-macros.h"
-
 #include "ide-types.h"
+#include "ide-version-macros.h"
 
 G_BEGIN_DECLS
 
diff --git a/src/libide/sourceview/ide-cursor.h b/src/libide/sourceview/ide-cursor.h
index 2b1928939..f2d0e237c 100644
--- a/src/libide/sourceview/ide-cursor.h
+++ b/src/libide/sourceview/ide-cursor.h
@@ -18,7 +18,7 @@
 
 #pragma once
 
-#include <glib-object.h>
+#include "ide-source-view.h"
 
 G_BEGIN_DECLS
 
@@ -26,13 +26,6 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (IdeCursor, ide_cursor, IDE, CURSOR, GObject)
 
-typedef enum
-{
-  IDE_CURSOR_COLUMN,
-  IDE_CURSOR_SELECT,
-  IDE_CURSOR_MATCH
-} IdeCursorType;
-
 void         ide_cursor_add_cursor            (IdeCursor *self,
                                                guint      type);
 void         ide_cursor_remove_cursors        (IdeCursor *self);
diff --git a/src/libide/sourceview/ide-indenter.h b/src/libide/sourceview/ide-indenter.h
index cd4e0666e..56c907cdb 100644
--- a/src/libide/sourceview/ide-indenter.h
+++ b/src/libide/sourceview/ide-indenter.h
@@ -28,6 +28,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_INDENTER (ide_indenter_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeIndenter, ide_indenter, IDE, INDENTER, IdeObject)
 
 struct _IdeIndenterInterface
diff --git a/src/libide/sourceview/ide-source-map.h b/src/libide/sourceview/ide-source-map.h
index 116341397..708c12258 100644
--- a/src/libide/sourceview/ide-source-map.h
+++ b/src/libide/sourceview/ide-source-map.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_SOURCE_MAP (ide_source_map_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeSourceMap, ide_source_map, IDE, SOURCE_MAP, GtkSourceMap)
 
 G_END_DECLS
diff --git a/src/libide/sourceview/ide-source-style-scheme.c b/src/libide/sourceview/ide-source-style-scheme.c
index 07f771d30..aacf827b9 100644
--- a/src/libide/sourceview/ide-source-style-scheme.c
+++ b/src/libide/sourceview/ide-source-style-scheme.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-source-style-scheme"
+
+#include "config.h"
+
 #include <string.h>
 
 #include "sourceview/ide-source-style-scheme.h"
diff --git a/src/libide/sourceview/ide-source-view.h b/src/libide/sourceview/ide-source-view.h
index 4a89e94f5..2f13fdefb 100644
--- a/src/libide/sourceview/ide-source-view.h
+++ b/src/libide/sourceview/ide-source-view.h
@@ -20,9 +20,8 @@
 
 #include <gtksourceview/gtksource.h>
 
-#include "ide-version-macros.h"
-
 #include "ide-types.h"
+#include "ide-version-macros.h"
 
 G_BEGIN_DECLS
 
@@ -31,6 +30,13 @@ G_BEGIN_DECLS
 IDE_AVAILABLE_IN_ALL
 G_DECLARE_DERIVABLE_TYPE (IdeSourceView, ide_source_view, IDE, SOURCE_VIEW, GtkSourceView)
 
+typedef enum
+{
+  IDE_CURSOR_COLUMN,
+  IDE_CURSOR_SELECT,
+  IDE_CURSOR_MATCH
+} IdeCursorType;
+
 /**
  * IdeSourceViewModeType:
  * @IDE_SOURCE_VIEW_MODE_TRANSIENT: Transient
diff --git a/src/libide/sourceview/meson.build b/src/libide/sourceview/meson.build
index e77a2c2bc..4ece5600d 100644
--- a/src/libide/sourceview/meson.build
+++ b/src/libide/sourceview/meson.build
@@ -2,12 +2,10 @@ sourceview_headers = [
   'ide-completion-item.h',
   'ide-completion-provider.h',
   'ide-completion-results.h',
-  'ide-cursor.h',
   'ide-indenter.h',
   'ide-language.h',
   'ide-source-map.h',
   'ide-source-style-scheme.h',
-  'ide-source-view-mode.h',
   'ide-source-view.h',
 ]
 
@@ -15,44 +13,31 @@ sourceview_sources = [
   'ide-completion-item.c',
   'ide-completion-provider.c',
   'ide-completion-results.c',
-  'ide-cursor.c',
   'ide-indenter.c',
   'ide-language.c',
   'ide-source-map.c',
   'ide-source-style-scheme.c',
-  'ide-source-view-mode.c',
   'ide-source-view.c',
 ]
 
 sourceview_private_sources = [
   'ide-completion-words.c',
-  'ide-completion-words.h',
+  'ide-cursor.c',
   'ide-omni-gutter-renderer.c',
-  'ide-omni-gutter-renderer.h',
   'ide-line-change-gutter-renderer.c',
-  'ide-line-change-gutter-renderer.h',
   'ide-source-iter.c',
-  'ide-source-iter.h',
   'ide-source-view-capture.c',
-  'ide-source-view-capture.h',
+  'ide-source-view-mode.c',
   'ide-source-view-movements.c',
-  'ide-source-view-movements.h',
-  'ide-source-view-private.h',
   'ide-source-view-shortcuts.c',
   'ide-text-iter.c',
-  'ide-text-iter.h',
   'ide-text-util.c',
-  'ide-text-util.h',
   'ide-word-completion-provider.c',
-  'ide-word-completion-provider.h',
   'ide-word-completion-results.c',
-  'ide-word-completion-results.h',
   'ide-word-completion-item.c',
-  'ide-word-completion-item.h',
 ]
 
 sourceview_enums = [
-  'ide-cursor.h',
   'ide-source-view.h',
 ]
 
diff --git a/src/libide/subprocess/ide-subprocess-supervisor.h 
b/src/libide/subprocess/ide-subprocess-supervisor.h
index 3d8fe069b..802dd880c 100644
--- a/src/libide/subprocess/ide-subprocess-supervisor.h
+++ b/src/libide/subprocess/ide-subprocess-supervisor.h
@@ -18,6 +18,8 @@
 
 #pragma once
 
+#include "ide-version-macros.h"
+
 #include "subprocess/ide-subprocess.h"
 #include "subprocess/ide-subprocess-launcher.h"
 
@@ -25,6 +27,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_SUBPROCESS_SUPERVISOR (ide_subprocess_supervisor_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_DERIVABLE_TYPE (IdeSubprocessSupervisor, ide_subprocess_supervisor, IDE, SUBPROCESS_SUPERVISOR, 
GObject)
 
 struct _IdeSubprocessSupervisorClass
@@ -45,13 +48,20 @@ struct _IdeSubprocessSupervisorClass
   gpointer _reserved8;
 };
 
+IDE_AVAILABLE_IN_ALL
 IdeSubprocessSupervisor *ide_subprocess_supervisor_new            (void);
+IDE_AVAILABLE_IN_ALL
 IdeSubprocessLauncher   *ide_subprocess_supervisor_get_launcher   (IdeSubprocessSupervisor *self);
+IDE_AVAILABLE_IN_ALL
 void                     ide_subprocess_supervisor_set_launcher   (IdeSubprocessSupervisor *self,
                                                                    IdeSubprocessLauncher   *launcher);
+IDE_AVAILABLE_IN_ALL
 void                     ide_subprocess_supervisor_start          (IdeSubprocessSupervisor *self);
+IDE_AVAILABLE_IN_ALL
 void                     ide_subprocess_supervisor_stop           (IdeSubprocessSupervisor *self);
+IDE_AVAILABLE_IN_ALL
 IdeSubprocess           *ide_subprocess_supervisor_get_subprocess (IdeSubprocessSupervisor *self);
+IDE_AVAILABLE_IN_ALL
 void                     ide_subprocess_supervisor_set_subprocess (IdeSubprocessSupervisor *self,
                                                                    IdeSubprocess           *subprocess);
 
diff --git a/src/libide/subprocess/ide-subprocess.h b/src/libide/subprocess/ide-subprocess.h
index 319c62220..b38c1dfd6 100644
--- a/src/libide/subprocess/ide-subprocess.h
+++ b/src/libide/subprocess/ide-subprocess.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_SUBPROCESS (ide_subprocess_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeSubprocess, ide_subprocess, IDE, SUBPROCESS, GObject)
 
 struct _IdeSubprocessInterface
diff --git a/src/libide/symbols/ide-code-index-entries.h b/src/libide/symbols/ide-code-index-entries.h
index 7beeff25f..4fdd64e18 100644
--- a/src/libide/symbols/ide-code-index-entries.h
+++ b/src/libide/symbols/ide-code-index-entries.h
@@ -27,6 +27,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_CODE_INDEX_ENTRIES (ide_code_index_entries_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeCodeIndexEntries, ide_code_index_entries, IDE, CODE_INDEX_ENTRIES, GObject)
 
 struct _IdeCodeIndexEntriesInterface
@@ -37,7 +38,9 @@ struct _IdeCodeIndexEntriesInterface
   IdeCodeIndexEntry *(*get_next_entry) (IdeCodeIndexEntries *self);
 };
 
+IDE_AVAILABLE_IN_ALL
 IdeCodeIndexEntry *ide_code_index_entries_get_next_entry (IdeCodeIndexEntries *self);
+IDE_AVAILABLE_IN_ALL
 GFile             *ide_code_index_entries_get_file       (IdeCodeIndexEntries *self);
 
 G_END_DECLS
diff --git a/src/libide/symbols/ide-code-index-entry.h b/src/libide/symbols/ide-code-index-entry.h
index bd1d84dec..ecca68528 100644
--- a/src/libide/symbols/ide-code-index-entry.h
+++ b/src/libide/symbols/ide-code-index-entry.h
@@ -18,9 +18,9 @@
 
 #pragma once
 
+#include "ide-object.h"
 #include "ide-version-macros.h"
 
-#include "ide-object.h"
 #include "symbols/ide-symbol.h"
 
 G_BEGIN_DECLS
diff --git a/src/libide/symbols/ide-code-indexer.h b/src/libide/symbols/ide-code-indexer.h
index 6900a489b..5cb03dbec 100644
--- a/src/libide/symbols/ide-code-indexer.h
+++ b/src/libide/symbols/ide-code-indexer.h
@@ -27,6 +27,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_CODE_INDEXER (ide_code_indexer_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeCodeIndexer, ide_code_indexer, IDE, CODE_INDEXER, IdeObject)
 
 struct _IdeCodeIndexerInterface
diff --git a/src/libide/symbols/ide-symbol-node.c b/src/libide/symbols/ide-symbol-node.c
index 1be7b6729..82ae21734 100644
--- a/src/libide/symbols/ide-symbol-node.c
+++ b/src/libide/symbols/ide-symbol-node.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-symbol-node"
+
+#include "config.h"
+
 #include <glib/gi18n.h>
 
 #include "ide-enums.h"
diff --git a/src/libide/symbols/ide-symbol-node.h b/src/libide/symbols/ide-symbol-node.h
index a314d0c61..79aa71a00 100644
--- a/src/libide/symbols/ide-symbol-node.h
+++ b/src/libide/symbols/ide-symbol-node.h
@@ -19,6 +19,7 @@
 #pragma once
 
 #include "ide-object.h"
+#include "ide-version-macros.h"
 
 #include "symbols/ide-symbol.h"
 #include "diagnostics/ide-source-location.h"
@@ -27,6 +28,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_SYMBOL_NODE (ide_symbol_node_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_DERIVABLE_TYPE (IdeSymbolNode, ide_symbol_node, IDE, SYMBOL_NODE, IdeObject)
 
 struct _IdeSymbolNodeClass
@@ -42,24 +44,23 @@ struct _IdeSymbolNodeClass
                                              GError             **error);
 
   /*< private >*/
-  gpointer _reserved1;
-  gpointer _reserved2;
-  gpointer _reserved3;
-  gpointer _reserved4;
-  gpointer _reserved5;
-  gpointer _reserved6;
-  gpointer _reserved7;
-  gpointer _reserved8;
+  gpointer _reserved[8];
 };
 
+IDE_AVAILABLE_IN_ALL
 IdeSymbolKind      ide_symbol_node_get_kind            (IdeSymbolNode        *self);
+IDE_AVAILABLE_IN_ALL
 IdeSymbolFlags     ide_symbol_node_get_flags           (IdeSymbolNode        *self);
+IDE_AVAILABLE_IN_ALL
 const gchar       *ide_symbol_node_get_name            (IdeSymbolNode        *self);
+IDE_AVAILABLE_IN_ALL
 gboolean           ide_symbol_node_get_use_markup      (IdeSymbolNode        *self);
+IDE_AVAILABLE_IN_ALL
 void               ide_symbol_node_get_location_async  (IdeSymbolNode        *self,
                                                         GCancellable         *cancellable,
                                                         GAsyncReadyCallback   callback,
                                                         gpointer              user_data);
+IDE_AVAILABLE_IN_ALL
 IdeSourceLocation *ide_symbol_node_get_location_finish (IdeSymbolNode        *self,
                                                         GAsyncResult         *result,
                                                         GError              **error);
diff --git a/src/libide/symbols/ide-symbol-resolver.h b/src/libide/symbols/ide-symbol-resolver.h
index 5a328cc13..988e679dd 100644
--- a/src/libide/symbols/ide-symbol-resolver.h
+++ b/src/libide/symbols/ide-symbol-resolver.h
@@ -27,6 +27,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_SYMBOL_RESOLVER (ide_symbol_resolver_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeSymbolResolver, ide_symbol_resolver, IDE, SYMBOL_RESOLVER, IdeObject)
 
 struct _IdeSymbolResolverInterface
diff --git a/src/libide/symbols/ide-symbol-tree.c b/src/libide/symbols/ide-symbol-tree.c
index c4e38f316..ea22146fa 100644
--- a/src/libide/symbols/ide-symbol-tree.c
+++ b/src/libide/symbols/ide-symbol-tree.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-symbol-tree"
+
+#include "config.h"
+
 #include "symbols/ide-symbol-tree.h"
 
 G_DEFINE_INTERFACE (IdeSymbolTree, ide_symbol_tree, G_TYPE_OBJECT)
diff --git a/src/libide/symbols/ide-symbol-tree.h b/src/libide/symbols/ide-symbol-tree.h
index 5b5468701..2c5ffd7de 100644
--- a/src/libide/symbols/ide-symbol-tree.h
+++ b/src/libide/symbols/ide-symbol-tree.h
@@ -20,12 +20,15 @@
 
 #include <glib-object.h>
 
+#include "ide-version-macros.h"
+
 #include "symbols/ide-symbol-node.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_SYMBOL_TREE (ide_symbol_tree_get_type ())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeSymbolTree, ide_symbol_tree, IDE, SYMBOL_TREE, GObject)
 
 struct _IdeSymbolTreeInterface
@@ -39,8 +42,10 @@ struct _IdeSymbolTreeInterface
                                     guint          nth);
 };
 
+IDE_AVAILABLE_IN_ALL
 guint          ide_symbol_tree_get_n_children (IdeSymbolTree *self,
                                                IdeSymbolNode *node);
+IDE_AVAILABLE_IN_ALL
 IdeSymbolNode *ide_symbol_tree_get_nth_child  (IdeSymbolTree *self,
                                                IdeSymbolNode *node,
                                                guint          nth);
diff --git a/src/libide/symbols/ide-tags-builder.c b/src/libide/symbols/ide-tags-builder.c
index bd3cf8fde..20e9eb5ac 100644
--- a/src/libide/symbols/ide-tags-builder.c
+++ b/src/libide/symbols/ide-tags-builder.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-tags-builder"
+
+#include "config.h"
+
 #include "symbols/ide-tags-builder.h"
 
 G_DEFINE_INTERFACE (IdeTagsBuilder, ide_tags_builder, G_TYPE_OBJECT)
diff --git a/src/libide/symbols/ide-tags-builder.h b/src/libide/symbols/ide-tags-builder.h
index d39c8c813..b9d66619b 100644
--- a/src/libide/symbols/ide-tags-builder.h
+++ b/src/libide/symbols/ide-tags-builder.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_TAGS_BUILDER (ide_tags_builder_get_type ())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeTagsBuilder, ide_tags_builder, IDE, TAGS_BUILDER, GObject)
 
 struct _IdeTagsBuilderInterface
diff --git a/src/libide/template/ide-project-template.h b/src/libide/template/ide-project-template.h
index 134f1c186..2980634a9 100644
--- a/src/libide/template/ide-project-template.h
+++ b/src/libide/template/ide-project-template.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_PROJECT_TEMPLATE (ide_project_template_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeProjectTemplate, ide_project_template, IDE, PROJECT_TEMPLATE, GObject)
 
 struct _IdeProjectTemplateInterface
diff --git a/src/libide/template/ide-template-base.c b/src/libide/template/ide-template-base.c
index d8ce1a03e..81597b928 100644
--- a/src/libide/template/ide-template-base.c
+++ b/src/libide/template/ide-template-base.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-template-base"
+
+#include "config.h"
+
 #include <glib/gstdio.h>
 #include <errno.h>
 #include <string.h>
diff --git a/src/libide/template/ide-template-base.h b/src/libide/template/ide-template-base.h
index f9068e210..bddf20473 100644
--- a/src/libide/template/ide-template-base.h
+++ b/src/libide/template/ide-template-base.h
@@ -20,10 +20,13 @@
 
 #include <tmpl-glib.h>
 
+#include "ide-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define IDE_TYPE_TEMPLATE_BASE (ide_template_base_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_DERIVABLE_TYPE (IdeTemplateBase, ide_template_base, IDE, TEMPLATE_BASE, GObject)
 
 struct _IdeTemplateBaseClass
@@ -31,26 +34,33 @@ struct _IdeTemplateBaseClass
   GObjectClass parent_class;
 };
 
+IDE_AVAILABLE_IN_ALL
 TmplTemplateLocator *ide_template_base_get_locator       (IdeTemplateBase       *self);
+IDE_AVAILABLE_IN_ALL
 void                 ide_template_base_set_locator       (IdeTemplateBase       *self,
                                                           TmplTemplateLocator   *locator);
+IDE_AVAILABLE_IN_ALL
 void                 ide_template_base_add_resource      (IdeTemplateBase       *self,
                                                           const gchar           *resource_path,
                                                           GFile                 *destination,
                                                           TmplScope             *scope,
                                                           gint                   mode);
+IDE_AVAILABLE_IN_ALL
 void                 ide_template_base_add_path          (IdeTemplateBase       *self,
                                                           const gchar           *path,
                                                           GFile                 *destination,
                                                           TmplScope             *scope,
                                                           gint                   mode);
+IDE_AVAILABLE_IN_ALL
 void                 ide_template_base_expand_all_async  (IdeTemplateBase       *self,
                                                           GCancellable          *cancellable,
                                                           GAsyncReadyCallback    callback,
                                                           gpointer               user_data);
+IDE_AVAILABLE_IN_ALL
 gboolean             ide_template_base_expand_all_finish (IdeTemplateBase       *self,
                                                           GAsyncResult          *result,
                                                           GError               **error);
+IDE_AVAILABLE_IN_ALL
 void                 ide_template_base_reset             (IdeTemplateBase       *self);
 
 G_END_DECLS
diff --git a/src/libide/template/ide-template-provider.c b/src/libide/template/ide-template-provider.c
index 88d3d4dab..ef30da8ad 100644
--- a/src/libide/template/ide-template-provider.c
+++ b/src/libide/template/ide-template-provider.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-template-provider"
+
+#include "config.h"
+
 #include "template/ide-template-provider.h"
 
 G_DEFINE_INTERFACE (IdeTemplateProvider, ide_template_provider, G_TYPE_OBJECT)
diff --git a/src/libide/template/ide-template-provider.h b/src/libide/template/ide-template-provider.h
index 79e17a751..0114ed431 100644
--- a/src/libide/template/ide-template-provider.h
+++ b/src/libide/template/ide-template-provider.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_TEMPLATE_PROVIDER (ide_template_provider_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeTemplateProvider, ide_template_provider, IDE, TEMPLATE_PROVIDER, GObject)
 
 struct _IdeTemplateProviderInterface
diff --git a/src/libide/terminal/ide-terminal-util.h b/src/libide/terminal/ide-terminal-util.h
index 8c862cdf5..4a9d9c11d 100644
--- a/src/libide/terminal/ide-terminal-util.h
+++ b/src/libide/terminal/ide-terminal-util.h
@@ -24,7 +24,9 @@
 
 G_BEGIN_DECLS
 
+IDE_AVAILABLE_IN_3_28
 int          ide_vte_pty_create_slave (VtePty *pty);
+IDE_AVAILABLE_IN_3_30
 const gchar *ide_get_user_shell       (void);
 
 G_END_DECLS
diff --git a/src/libide/terminal/ide-terminal.c b/src/libide/terminal/ide-terminal.c
index 28c3b6f34..b18e9ea6d 100644
--- a/src/libide/terminal/ide-terminal.c
+++ b/src/libide/terminal/ide-terminal.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-terminal"
+
+#include "config.h"
+
 #include <dazzle.h>
 #include <glib/gi18n.h>
 #include <ide.h>
diff --git a/src/libide/transfers/ide-transfer-row.h b/src/libide/transfers/ide-transfer-row.h
index 494aacb2f..1ac01cf6c 100644
--- a/src/libide/transfers/ide-transfer-row.h
+++ b/src/libide/transfers/ide-transfer-row.h
@@ -20,15 +20,20 @@
 
 #include <gtk/gtk.h>
 
+#include "ide-version-macros.h"
+
 #include "transfers/ide-transfer.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_TRANSFER_ROW (ide_transfer_row_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeTransferRow, ide_transfer_row, IDE, TRANSFER_ROW, GtkListBoxRow)
 
+IDE_AVAILABLE_IN_ALL
 IdeTransfer *ide_transfer_row_get_transfer (IdeTransferRow *self);
+IDE_AVAILABLE_IN_ALL
 void         ide_transfer_row_set_transfer (IdeTransferRow *self,
                                             IdeTransfer    *transfer);
 
diff --git a/src/libide/transfers/ide-transfers-button.h b/src/libide/transfers/ide-transfers-button.h
index 885b352b9..b495e778b 100644
--- a/src/libide/transfers/ide-transfers-button.h
+++ b/src/libide/transfers/ide-transfers-button.h
@@ -20,12 +20,16 @@
 
 #include <gtk/gtk.h>
 
+#include "ide-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define IDE_TYPE_TRANSFERS_BUTTON (ide_transfers_button_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeTransfersButton, ide_transfers_button, IDE, TRANSFERS_BUTTON, DzlProgressMenuButton)
 
+IDE_AVAILABLE_IN_ALL
 GtkWidget *ide_transfers_button_new (void);
 
 G_END_DECLS
diff --git a/src/libide/transfers/ide-transfers-progress-icon.h 
b/src/libide/transfers/ide-transfers-progress-icon.h
index 9fcfa3b16..0ab1129e2 100644
--- a/src/libide/transfers/ide-transfers-progress-icon.h
+++ b/src/libide/transfers/ide-transfers-progress-icon.h
@@ -20,14 +20,20 @@
 
 #include <gtk/gtk.h>
 
+#include "ide-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define IDE_TYPE_TRANSFERS_PROGRESS_ICON (ide_transfers_progress_icon_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeTransfersProgressIcon, ide_transfers_progress_icon, IDE, TRANSFERS_PROGRESS_ICON, 
GtkDrawingArea)
 
+IDE_AVAILABLE_IN_ALL
 GtkWidget *ide_transfers_progress_icon_new          (void);
+IDE_AVAILABLE_IN_ALL
 gdouble    ide_transfers_progress_icon_get_progress (IdeTransfersProgressIcon *self);
+IDE_AVAILABLE_IN_ALL
 void       ide_transfers_progress_icon_set_progress (IdeTransfersProgressIcon *self,
                                                      gdouble                   progress);
 
diff --git a/src/libide/util/ide-flatpak.c b/src/libide/util/ide-flatpak.c
index 58b24f7d2..d100df7da 100644
--- a/src/libide/util/ide-flatpak.c
+++ b/src/libide/util/ide-flatpak.c
@@ -16,6 +16,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include "config.h"
+
 #include "util/ide-flatpak.h"
 
 /**
diff --git a/src/libide/util/ide-posix.c b/src/libide/util/ide-posix.c
index a4b1ed689..ed654a4d3 100644
--- a/src/libide/util/ide-posix.c
+++ b/src/libide/util/ide-posix.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-posix"
+
+#include "config.h"
+
 #include <string.h>
 #include <sys/types.h>
 #include <sys/user.h>
diff --git a/src/libide/util/ide-settings.h b/src/libide/util/ide-settings.h
index c635c87f9..f9aee6124 100644
--- a/src/libide/util/ide-settings.h
+++ b/src/libide/util/ide-settings.h
@@ -19,59 +19,80 @@
 #pragma once
 
 #include "ide-object.h"
+#include "ide-version-macros.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_SETTINGS (ide_settings_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeSettings, ide_settings, IDE, SETTINGS, IdeObject)
 
 IdeSettings *_ide_settings_new                        (IdeContext              *context,
                                                        const gchar             *schema_id,
                                                        const gchar             *relative_path,
                                                        gboolean                 ignore_project_settings) 
G_GNUC_INTERNAL;
+IDE_AVAILABLE_IN_ALL
 const gchar *ide_settings_get_relative_path           (IdeSettings             *self);
+IDE_AVAILABLE_IN_ALL
 const gchar *ide_settings_get_schema_id               (IdeSettings             *self);
+IDE_AVAILABLE_IN_ALL
 gboolean     ide_settings_get_ignore_project_settings (IdeSettings             *self);
+IDE_AVAILABLE_IN_ALL
 GVariant    *ide_settings_get_default_value           (IdeSettings             *self,
                                                        const gchar             *key);
+IDE_AVAILABLE_IN_ALL
 GVariant    *ide_settings_get_user_value              (IdeSettings             *self,
                                                        const gchar             *key);
+IDE_AVAILABLE_IN_ALL
 GVariant    *ide_settings_get_value                   (IdeSettings             *self,
                                                        const gchar             *key);
+IDE_AVAILABLE_IN_ALL
 void         ide_settings_set_value                   (IdeSettings             *self,
                                                        const gchar             *key,
                                                        GVariant                *value);
+IDE_AVAILABLE_IN_ALL
 gboolean     ide_settings_get_boolean                 (IdeSettings             *self,
                                                        const gchar             *key);
+IDE_AVAILABLE_IN_ALL
 gdouble      ide_settings_get_double                  (IdeSettings             *self,
                                                        const gchar             *key);
+IDE_AVAILABLE_IN_ALL
 gint         ide_settings_get_int                     (IdeSettings             *self,
                                                        const gchar             *key);
+IDE_AVAILABLE_IN_ALL
 gchar       *ide_settings_get_string                  (IdeSettings             *self,
                                                        const gchar             *key);
+IDE_AVAILABLE_IN_ALL
 guint        ide_settings_get_uint                    (IdeSettings             *self,
                                                        const gchar             *key);
+IDE_AVAILABLE_IN_ALL
 void         ide_settings_set_boolean                 (IdeSettings             *self,
                                                        const gchar             *key,
                                                        gboolean                 val);
+IDE_AVAILABLE_IN_ALL
 void         ide_settings_set_double                  (IdeSettings             *self,
                                                        const gchar             *key,
                                                        gdouble                  val);
+IDE_AVAILABLE_IN_ALL
 void         ide_settings_set_int                     (IdeSettings             *self,
                                                        const gchar             *key,
                                                        gint                     val);
+IDE_AVAILABLE_IN_ALL
 void         ide_settings_set_string                  (IdeSettings             *self,
                                                        const gchar             *key,
                                                        const gchar             *val);
+IDE_AVAILABLE_IN_ALL
 void         ide_settings_set_uint                    (IdeSettings             *self,
                                                        const gchar             *key,
                                                        guint                    val);
+IDE_AVAILABLE_IN_ALL
 void         ide_settings_bind                        (IdeSettings             *self,
                                                        const gchar             *key,
                                                        gpointer                 object,
                                                        const gchar             *property,
                                                        GSettingsBindFlags       flags);
+IDE_AVAILABLE_IN_ALL
 void         ide_settings_bind_with_mapping           (IdeSettings             *self,
                                                        const gchar             *key,
                                                        gpointer                 object,
@@ -81,6 +102,7 @@ void         ide_settings_bind_with_mapping           (IdeSettings             *
                                                        GSettingsBindSetMapping  set_mapping,
                                                        gpointer                 user_data,
                                                        GDestroyNotify           destroy);
+IDE_AVAILABLE_IN_ALL
 void         ide_settings_unbind                      (IdeSettings             *self,
                                                        const gchar             *property);
 
diff --git a/src/libide/util/ide-uri.c b/src/libide/util/ide-uri.c
index 59dae9a92..ee67bd1cf 100644
--- a/src/libide/util/ide-uri.c
+++ b/src/libide/util/ide-uri.c
@@ -17,6 +17,8 @@
  * Boston, MA 02111-1307, USA.
  */
 
+#include "config.h"
+
 #include <glib.h>
 #include <glib/gi18n.h>
 
diff --git a/src/libide/vcs/ide-vcs-config.c b/src/libide/vcs/ide-vcs-config.c
index 35dbb137d..2c0085b3a 100644
--- a/src/libide/vcs/ide-vcs-config.c
+++ b/src/libide/vcs/ide-vcs-config.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-vcs-config"
+
+#include "config.h"
+
 #include "vcs/ide-vcs-config.h"
 
 G_DEFINE_INTERFACE (IdeVcsConfig, ide_vcs_config, G_TYPE_OBJECT)
diff --git a/src/libide/vcs/ide-vcs-config.h b/src/libide/vcs/ide-vcs-config.h
index 79ffc5ea8..e882112a2 100644
--- a/src/libide/vcs/ide-vcs-config.h
+++ b/src/libide/vcs/ide-vcs-config.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_VCS_CONFIG (ide_vcs_config_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeVcsConfig, ide_vcs_config, IDE, VCS_CONFIG, GObject)
 
 typedef enum
diff --git a/src/libide/vcs/ide-vcs-file-info.h b/src/libide/vcs/ide-vcs-file-info.h
index 43785862b..94306f586 100644
--- a/src/libide/vcs/ide-vcs-file-info.h
+++ b/src/libide/vcs/ide-vcs-file-info.h
@@ -20,10 +20,13 @@
 
 #include <gio/gio.h>
 
+#include "ide-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define IDE_TYPE_VCS_FILE_INFO (ide_vcs_file_info_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_DERIVABLE_TYPE (IdeVcsFileInfo, ide_vcs_file_info, IDE, VCS_FILE_INFO, GObject)
 
 typedef enum
@@ -42,12 +45,16 @@ struct _IdeVcsFileInfoClass
   GObjectClass parent_class;
 
   /*< private >*/
-  gpointer padding[16];
+  gpointer _reserved[16];
 };
 
+IDE_AVAILABLE_IN_ALL
 IdeVcsFileInfo   *ide_vcs_file_info_new        (GFile            *file);
+IDE_AVAILABLE_IN_ALL
 GFile            *ide_vcs_file_info_get_file   (IdeVcsFileInfo   *self);
+IDE_AVAILABLE_IN_ALL
 IdeVcsFileStatus  ide_vcs_file_info_get_status (IdeVcsFileInfo   *self);
+IDE_AVAILABLE_IN_ALL
 void              ide_vcs_file_info_set_status (IdeVcsFileInfo   *self,
                                                 IdeVcsFileStatus  status);
 
diff --git a/src/libide/vcs/ide-vcs-initializer.c b/src/libide/vcs/ide-vcs-initializer.c
index c4decb98c..75a39b0aa 100644
--- a/src/libide/vcs/ide-vcs-initializer.c
+++ b/src/libide/vcs/ide-vcs-initializer.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-vcs-initializer"
+
+#include "config.h"
+
 #include "vcs/ide-vcs-initializer.h"
 
 G_DEFINE_INTERFACE (IdeVcsInitializer, ide_vcs_initializer, G_TYPE_OBJECT)
diff --git a/src/libide/vcs/ide-vcs-initializer.h b/src/libide/vcs/ide-vcs-initializer.h
index 955043513..674cd1e1c 100644
--- a/src/libide/vcs/ide-vcs-initializer.h
+++ b/src/libide/vcs/ide-vcs-initializer.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_VCS_INITIALIZER (ide_vcs_initializer_get_type ())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeVcsInitializer, ide_vcs_initializer, IDE, VCS_INITIALIZER, GObject)
 
 struct _IdeVcsInitializerInterface
diff --git a/src/libide/vcs/ide-vcs-monitor.h b/src/libide/vcs/ide-vcs-monitor.h
index 243ddca12..da19f1bbd 100644
--- a/src/libide/vcs/ide-vcs-monitor.h
+++ b/src/libide/vcs/ide-vcs-monitor.h
@@ -19,6 +19,7 @@
 #pragma once
 
 #include "ide-object.h"
+#include "ide-version-macros.h"
 
 #include "vcs/ide-vcs-file-info.h"
 
@@ -26,8 +27,10 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_VCS_MONITOR (ide_vcs_monitor_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeVcsMonitor, ide_vcs_monitor, IDE, VCS_MONITOR, IdeObject)
 
+IDE_AVAILABLE_IN_ALL
 IdeVcsFileInfo *ide_vcs_monitor_get_info (IdeVcsMonitor *self,
                                           GFile         *file);
 
diff --git a/src/libide/vcs/ide-vcs-uri.c b/src/libide/vcs/ide-vcs-uri.c
index d62e190f5..272421afa 100644
--- a/src/libide/vcs/ide-vcs-uri.c
+++ b/src/libide/vcs/ide-vcs-uri.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-vcs-uri"
+
+#include "config.h"
+
 #include <dazzle.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/libide/vcs/ide-vcs.h b/src/libide/vcs/ide-vcs.h
index 339fee9fd..e40a3e4fe 100644
--- a/src/libide/vcs/ide-vcs.h
+++ b/src/libide/vcs/ide-vcs.h
@@ -29,6 +29,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_VCS (ide_vcs_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeVcs, ide_vcs, IDE, VCS, IdeObject)
 
 struct _IdeVcsInterface
diff --git a/src/libide/workbench/ide-omni-bar.h b/src/libide/workbench/ide-omni-bar.h
index 2c0015d5b..da1926265 100644
--- a/src/libide/workbench/ide-omni-bar.h
+++ b/src/libide/workbench/ide-omni-bar.h
@@ -21,13 +21,16 @@
 #include <gtk/gtk.h>
 
 #include "ide-types.h"
+#include "ide-version-macros.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_OMNI_BAR (ide_omni_bar_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeOmniBar, ide_omni_bar, IDE, OMNI_BAR, GtkBox)
 
+IDE_AVAILABLE_IN_ALL
 GtkWidget *ide_omni_bar_new (void);
 
 G_END_DECLS
diff --git a/src/libide/workbench/ide-perspective.c b/src/libide/workbench/ide-perspective.c
index 541d54230..ccaf1131f 100644
--- a/src/libide/workbench/ide-perspective.c
+++ b/src/libide/workbench/ide-perspective.c
@@ -16,6 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "ide-perspective"
+
+#include "config.h"
+
 #include "workbench/ide-perspective.h"
 
 G_DEFINE_INTERFACE (IdePerspective, ide_perspective, G_TYPE_OBJECT)
diff --git a/src/libide/workbench/ide-perspective.h b/src/libide/workbench/ide-perspective.h
index 6ae434982..2160be312 100644
--- a/src/libide/workbench/ide-perspective.h
+++ b/src/libide/workbench/ide-perspective.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_PERSPECTIVE (ide_perspective_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdePerspective, ide_perspective, IDE, PERSPECTIVE, GtkWidget)
 
 struct _IdePerspectiveInterface
diff --git a/src/libide/workbench/ide-workbench-addin.h b/src/libide/workbench/ide-workbench-addin.h
index ad1368dce..4e1b7d626 100644
--- a/src/libide/workbench/ide-workbench-addin.h
+++ b/src/libide/workbench/ide-workbench-addin.h
@@ -28,6 +28,7 @@ G_BEGIN_DECLS
 
 #define IDE_TYPE_WORKBENCH_ADDIN (ide_workbench_addin_get_type())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeWorkbenchAddin, ide_workbench_addin, IDE, WORKBENCH_ADDIN, GObject)
 
 struct _IdeWorkbenchAddinInterface
diff --git a/src/libide/workers/ide-worker.h b/src/libide/workers/ide-worker.h
index 1910d27cc..34f87b0be 100644
--- a/src/libide/workers/ide-worker.h
+++ b/src/libide/workers/ide-worker.h
@@ -20,10 +20,13 @@
 
 #include <gio/gio.h>
 
+#include "ide-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define IDE_TYPE_WORKER (ide_worker_get_type ())
 
+IDE_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (IdeWorker, ide_worker, IDE, WORKER, GObject)
 
 struct _IdeWorkerInterface
@@ -37,9 +40,11 @@ struct _IdeWorkerInterface
                                    GDBusConnection  *connection);
 };
 
+IDE_AVAILABLE_IN_ALL
 GDBusProxy *ide_worker_create_proxy     (IdeWorker        *self,
                                          GDBusConnection  *connection,
                                          GError          **error);
+IDE_AVAILABLE_IN_ALL
 void        ide_worker_register_service (IdeWorker        *self,
                                          GDBusConnection  *connection);
 


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