1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
diff --git a/gedit/gedit-plugins-engine.c b/gedit/gedit-plugins-engine.c
index 28e60960c..f428815bb 100644
--- a/gedit/gedit-plugins-engine.c
+++ b/gedit/gedit-plugins-engine.c
@@ -25,7 +25,12 @@
#include <string.h>
#include <glib/gi18n.h>
+#ifdef GEDIT_PEAS_USE_GIR2
+#include <girepository/girepository.h>
+#else
#include <girepository.h>
+#endif
+
#include "gedit-debug.h"
#include "gedit-dirs.h"
#include "gedit-settings.h"
@@ -46,6 +51,9 @@ gedit_plugins_engine_init (GeditPluginsEngine *engine)
{
gchar *typelib_dir;
GError *error = NULL;
+ #ifdef GEDIT_PEAS_USE_GIR2
+ GIRepository *repo = NULL;
+ #endif
gedit_debug (DEBUG_PLUGINS);
@@ -57,9 +65,17 @@ gedit_plugins_engine_init (GeditPluginsEngine *engine)
typelib_dir = g_build_filename (gedit_dirs_get_gedit_lib_dir (),
"girepository-1.0",
NULL);
+ #ifdef GEDIT_PEAS_USE_GIR2
+ repo = gi_repository_dup_default();
+ gi_repository_prepend_search_path(repo, typelib_dir);
+ #endif
+ #ifdef GEDIT_PEAS_USE_GIR2
+ if (!gi_repository_require_private (repo, typelib_dir, "Gedit", "3.0", 0, &error))
+ #else
if (!g_irepository_require_private (g_irepository_get_default (),
typelib_dir, "Gedit", "3.0", 0, &error))
+ #endif
{
g_warning ("Could not load Gedit repository: %s", error->message);
g_error_free (error);
@@ -69,16 +84,24 @@ gedit_plugins_engine_init (GeditPluginsEngine *engine)
g_free (typelib_dir);
/* This should be moved to libpeas */
+ #ifdef GEDIT_PEAS_USE_GIR2
+ if (!gi_repository_require (repo, "Peas", "1.0", 0, &error))
+ #else
if (!g_irepository_require (g_irepository_get_default (),
"Peas", "1.0", 0, &error))
+ #endif
{
g_warning ("Could not load Peas repository: %s", error->message);
g_error_free (error);
error = NULL;
}
+ #ifdef GEDIT_PEAS_USE_GIR2
+ if (!gi_repository_require (repo, "PeasGtk", "1.0", 0, &error))
+ #else
if (!g_irepository_require (g_irepository_get_default (),
"PeasGtk", "1.0", 0, &error))
+ #endif
{
g_warning ("Could not load PeasGtk repository: %s", error->message);
g_error_free (error);
diff --git a/meson.build b/meson.build
index 5d2168285..7bfce058b 100644
--- a/meson.build
+++ b/meson.build
@@ -101,6 +101,7 @@ libgd_dep = libgd_subproject.get_variable('libgd_dep')
# Dependencies
gio_dep = dependency('gio-2.0', version: '>= 2.76')
+peas_isgir2 = dependency('libpeas-1.0', version: '>=1.38', required: false).found()
libgedit_public_deps = [
gio_dep,
@@ -111,9 +112,14 @@ libgedit_public_deps = [
deps_basic_list = [
libgedit_public_deps,
- dependency('gobject-introspection-1.0'),
]
+if peas_isgir2
+ deps_basic_list += dependency('girepository-2.0')
+else
+ deps_basic_list += dependency('gobject-introspection-1.0')
+endif
+
gspell_dep = dependency('gspell-1', version: '>= 1.0')
python3 = python.find_installation('python3')
@@ -132,6 +138,8 @@ else
config_h.set10('GEDIT_HAS_HEADERBAR', get_option('headerbar') == 'yes')
endif
+config_h.set10('GEDIT_PEAS_USE_GIR2', peas_isgir2)
+
configure_file(
output: 'config.h',
configuration: config_h
|