summarylogtreecommitdiffstats
path: root/gir2.patch
blob: 8c49d0dc010e9349a7890f2e4cfdfa07ea091394 (plain)
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