[gimp/wip/nielsdg/vapi: 5/6] Split GIR into Gimp-3.0 and GimpUi-3.0
- From: Niels De Graef <nielsdg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/wip/nielsdg/vapi: 5/6] Split GIR into Gimp-3.0 and GimpUi-3.0
- Date: Fri, 8 May 2020 23:26:43 +0000 (UTC)
commit 2f844ef245eaf2d9b80c324ebc6cf3128b7fb2a3
Author: Niels De Graef <nielsdegraef gmail com>
Date: Fri May 8 21:41:00 2020 +0200
Split GIR into Gimp-3.0 and GimpUi-3.0
Fixes https://gitlab.gnome.org/GNOME/gimp/-/issues/4065
libgimp/Makefile.am | 73 ++++++++++++++++++++++++++++++++++++++-------
libgimp/meson.build | 86 +++++++++++++++++++++++++++++++----------------------
2 files changed, 113 insertions(+), 46 deletions(-)
---
diff --git a/libgimp/Makefile.am b/libgimp/Makefile.am
index d05f09d8aa..b65bff955c 100644
--- a/libgimp/Makefile.am
+++ b/libgimp/Makefile.am
@@ -253,7 +253,8 @@ include ../libgimpmodule/Makefile.gi
include ../libgimpthumb/Makefile.gi
include ../libgimpwidgets/Makefile.gi
-INTROSPECTION_GIRS =
+INTROSPECTION_GIRS = Gimp-@GIMP_API_VERSION@.gir GimpUi-@GIMP_API_VERSION@.gir
+
INTROSPECTION_SCANNER_ARGS = \
--warn-all \
--add-include-path="$(srcdir)" \
@@ -265,6 +266,7 @@ INTROSPECTION_COMPILER_ARGS = \
INTROSPECTION_SCANNER_ENV = CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CPPFLAGS="$(CPPFLAGS)"
CXXFLAGS="$(CXXFLAGS)"
+### First GIR: Gimp
Gimp-@GIMP_API_VERSION@.gir: \
libgimp-@GIMP_API_VERSION@.la \
libgimpui-@GIMP_API_VERSION@.la \
@@ -277,6 +279,8 @@ Gimp-@GIMP_API_VERSION@.gir: \
../libgimpwidgets/libgimpwidgets-@GIMP_API_VERSION@.la \
Makefile
+Gimp_@GIMP_API_MAJOR_VERSION@_@GIMP_API_MINOR_VERSION@_gir_EXPORT_PACKAGES = gimp-@GIMP_API_VERSION@
+
# The various other GObject-Introspected libraries our API references
# (i.e. types used in parameters or returned values).
Gimp_@GIMP_API_MAJOR_VERSION@_@GIMP_API_MINOR_VERSION@_gir_INCLUDES = \
@@ -310,31 +314,80 @@ Gimp_@GIMP_API_MAJOR_VERSION@_@GIMP_API_MINOR_VERSION@_gir_CFLAGS = \
Gimp_@GIMP_API_MAJOR_VERSION@_@GIMP_API_MINOR_VERSION@_gir_LIBS = \
../libgimp/libgimp-@GIMP_API_VERSION@.la \
- ../libgimp/libgimpui-@GIMP_API_VERSION@.la \
../libgimpbase/libgimpbase-@GIMP_API_VERSION@.la \
../libgimpcolor/libgimpcolor-@GIMP_API_VERSION@.la \
../libgimpconfig/libgimpconfig-@GIMP_API_VERSION@.la \
../libgimpmath/libgimpmath-@GIMP_API_VERSION@.la \
- ../libgimpmodule/libgimpmodule-@GIMP_API_VERSION@.la \
- ../libgimpthumb/libgimpthumb-@GIMP_API_VERSION@.la \
- ../libgimpwidgets/libgimpwidgets-@GIMP_API_VERSION@.la
+ ../libgimpmodule/libgimpmodule-@GIMP_API_VERSION@.la
Gimp_@GIMP_API_MAJOR_VERSION@_@GIMP_API_MINOR_VERSION@_gir_FILES = \
$(libgimp_introspectable) \
../libgimp/gimpparamspecs-body.c \
- $(libgimpui_introspectable) \
$(libgimpbase_introspectable) \
$(libgimpcolor_introspectable) \
$(libgimpconfig_introspectable) \
$(libgimpmath_introspectable) \
- $(libgimpmodule_introspectable) \
- $(libgimpthumb_introspectable) \
- $(libgimpwidgets_introspectable)
+ $(libgimpmodule_introspectable)
Gimp_@GIMP_API_MAJOR_VERSION@_@GIMP_API_MINOR_VERSION@_gir_SCANNERFLAGS = \
+ --identifier-prefix Gimp \
+ --symbol-prefix gimp \
--c-include="libgimp/gimp.h"
-INTROSPECTION_GIRS += Gimp-@GIMP_API_VERSION@.gir
+### Second GIR: GimpUi
+GimpUi-@GIMP_API_VERSION@.gir: \
+ Gimp-@GIMP_API_VERSION@.gir \
+ libgimpui-@GIMP_API_VERSION@.la \
+ ../libgimpwidgets/libgimpwidgets-@GIMP_API_VERSION@.la \
+ Makefile
+
+GimpUi_@GIMP_API_MAJOR_VERSION@_@GIMP_API_MINOR_VERSION@_gir_EXPORT_PACKAGES = gimp-ui-@GIMP_API_VERSION@
+
+# The various other GObject-Introspected libraries our API references
+# (i.e. types used in parameters or returned values).
+GimpUi_@GIMP_API_MAJOR_VERSION@_@GIMP_API_MINOR_VERSION@_gir_INCLUDES = \
+ Babl-0.1 \
+ cairo-1.0 \
+ GdkPixbuf-2.0 \
+ Gegl-0.4 \
+ Gio-2.0 \
+ GLib-2.0 \
+ GObject-2.0 \
+ Gtk-3.0
+
+GimpUi_@GIMP_API_MAJOR_VERSION@_@GIMP_API_MINOR_VERSION@_gir_CFLAGS = \
+ -DGIMP_COMPILATION \
+ -DGIMP_BASE_COMPILATION \
+ -DGIMP_COLOR_COMPILATION \
+ -DGIMP_CONFIG_COMPILATION \
+ -DGIMP_MATH_COMPILATION \
+ -DGIMP_MODULE_COMPILATION \
+ -DGIMP_THUMB_COMPILATION \
+ -DGIMP_WIDGETS_COMPILATION \
+ $(AM_CFLAGS) \
+ $(AM_CPPFLAGS) \
+ -I$(top_builddir) \
+ -I$(top_srcdir) \
+ $(CAIRO_CFLAGS) \
+ $(GDK_PIXBUF_CFLAGS) \
+ $(BABL_CFLAGS) \
+ $(GEGL_CFLAGS) \
+ $(GTK_CFLAGS)
+
+GimpUi_@GIMP_API_MAJOR_VERSION@_@GIMP_API_MINOR_VERSION@_gir_LIBS = \
+ ../libgimp/libgimpui-@GIMP_API_VERSION@.la \
+ ../libgimpwidgets/libgimpwidgets-@GIMP_API_VERSION@.la
+
+GimpUi_@GIMP_API_MAJOR_VERSION@_@GIMP_API_MINOR_VERSION@_gir_FILES = \
+ $(libgimpui_introspectable) \
+ $(libgimpwidgets_introspectable)
+
+GimpUi_@GIMP_API_MAJOR_VERSION@_@GIMP_API_MINOR_VERSION@_gir_SCANNERFLAGS = \
+ --identifier-prefix Gimp \
+ --symbol-prefix gimp \
+ --include-uninstalled=Gimp-@GIMP_API_VERSION@.gir \
+ --c-include="libgimp/gimpui.h"
+
girdir = $(datadir)/gir-1.0
gir_DATA = $(INTROSPECTION_GIRS)
diff --git a/libgimp/meson.build b/libgimp/meson.build
index 272578ec40..1caaa9c147 100644
--- a/libgimp/meson.build
+++ b/libgimp/meson.build
@@ -336,19 +336,21 @@ install_headers(
### GObject introspection
-introspectable_files = [
+libgimp_introspectable_files = [
libgimp_introspectable,
- libgimpui_introspectable,
libgimpbase_introspectable,
libgimpcolor_introspectable,
libgimpconfig_introspectable,
libgimpmath_introspectable,
libgimpmodule_introspectable,
- libgimpthumb_introspectable,
- libgimpwidgets_introspectable,
'gimpparamspecs-body.c',
]
+libgimpui_introspectable_files = [
+ libgimpui_introspectable,
+ libgimpwidgets_introspectable,
+]
+
if meson.is_cross_build()
gobject_introspection_warning = '\n '.join(['',
'GObject Introspection is disabled while cross-compiling because',
@@ -360,52 +362,64 @@ if meson.is_cross_build()
warning(gobject_introspection_warning)
warnings += gobject_introspection_warning
else
+ libgimp_gir_includes = [
+ 'Babl-0.1',
+ 'cairo-1.0',
+ 'GdkPixbuf-2.0',
+ 'Gegl-0.4',
+ 'Gio-2.0',
+ 'GLib-2.0',
+ 'GObject-2.0',
+ 'Gtk-3.0',
+ ]
+
+ gir_args = [
+ '-DGIMP_COMPILATION',
+ '-DGIMP_BASE_COMPILATION',
+ '-DGIMP_COLOR_COMPILATION',
+ '-DGIMP_CONFIG_COMPILATION',
+ '-DGIMP_MATH_COMPILATION',
+ '-DGIMP_MODULE_COMPILATION',
+ '-DGIMP_THUMB_COMPILATION',
+ '-DGIMP_WIDGETS_COMPILATION',
+ '-DGIMP_DISABLE_DEPRECATED',
+ '--quiet',
+ ]
+
libgimp_gir = gnome.generate_gir(
libgimp,
- libgimpui,
libgimpbase,
libgimpcolor,
libgimpconfig,
libgimpmath,
libgimpmodule,
- libgimpthumb,
- libgimpwidgets,
- sources: introspectable_files,
+ sources: libgimp_introspectable_files,
nsversion: gimp_api_version,
namespace: 'Gimp',
identifier_prefix: 'Gimp',
- # symbol_prefix: 'gimp',
+ symbol_prefix: 'gimp',
+ export_packages: 'gimp-' + gimp_api_version,
header: 'libgimp/gimp.h',
+ includes: libgimp_gir_includes,
+ extra_args: gir_args,
+ include_directories: rootInclude,
+ install: true,
+ )
- extra_args: [
- '-DGIMP_COMPILATION',
- '-DGIMP_BASE_COMPILATION',
- '-DGIMP_COLOR_COMPILATION',
- '-DGIMP_CONFIG_COMPILATION',
- '-DGIMP_MATH_COMPILATION',
- '-DGIMP_MODULE_COMPILATION',
- '-DGIMP_THUMB_COMPILATION',
- '-DGIMP_WIDGETS_COMPILATION',
- '-DGIMP_DISABLE_DEPRECATED',
- '--quiet',
- ],
-
- includes: [
- 'Babl-0.1',
- 'cairo-1.0',
- 'GdkPixbuf-2.0',
- 'Gegl-0.4',
- 'Gio-2.0',
- 'GLib-2.0',
- 'GObject-2.0',
- 'Gtk-3.0',
- ],
-
- link_with: [
- libgimpthumb,
- ],
+ libgimpui_gir = gnome.generate_gir(
+ libgimpui,
+ libgimpwidgets,
+ sources: libgimpui_introspectable_files,
+ nsversion: gimp_api_version,
+ namespace: 'GimpUi',
+ identifier_prefix: 'Gimp',
+ symbol_prefix: 'gimp',
+ export_packages: 'gimp-ui-' + gimp_api_version,
+ header: 'libgimp/gimpui.h',
+ includes: [ libgimp_gir_includes, libgimp_gir[0] ],
+ extra_args: gir_args,
include_directories: rootInclude,
install: true,
)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]