[geary/mjog/python-plugin-support: 3/3] Generate GI typelibs for the client and engine
- From: Michael Gratton <mjog src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary/mjog/python-plugin-support: 3/3] Generate GI typelibs for the client and engine
- Date: Fri, 27 Sep 2019 12:45:18 +0000 (UTC)
commit 4be75e33dee5719c7512b0b1f0ff3ef45d0e13ce
Author: Michael Gratton <mike vee net>
Date: Fri Sep 27 22:44:26 2019 +1000
Generate GI typelibs for the client and engine
.gitlab-ci.yml | 27 ++++++++++++++-------------
INSTALL | 12 ++++++------
meson.build | 5 +++++
src/client/meson.build | 19 ++++++++++++++++++-
src/engine/meson.build | 18 +++++++++++++++++-
5 files changed, 60 insertions(+), 21 deletions(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 61530bd6..a299ee94 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -23,23 +23,24 @@ variables:
# Fedora packages
FEDORA_DEPS:
meson vala desktop-file-utils enchant2-devel folks-devel gcr-devel
- glib2-devel gmime-devel gnome-online-accounts-devel gspell-devel
- gtk3-devel iso-codes-devel json-glib-devel itstool
- libappstream-glib-devel libgee-devel libhandy-devel libpeas-devel
- libsecret-devel libunwind-devel libxml2-devel libytnef-devel
- sqlite-devel webkitgtk4-devel
+ glib2-devel gmime-devel gnome-online-accounts-devel
+ gobject-introspection gspell-devel gtk3-devel iso-codes-devel
+ json-glib-devel itstool libappstream-glib-devel libgee-devel
+ libhandy-devel libpeas-devel libsecret-devel libunwind-devel
+ libxml2-devel libytnef-devel sqlite-devel webkitgtk4-devel
FEDORA_TEST_DEPS: Xvfb tar xz
# Ubuntu packages
UBUNTU_DEPS:
- meson build-essential valac desktop-file-utils gettext iso-codes
- itstool libappstream-glib-dev libenchant-dev libfolks-dev
- libgcr-3-dev libgee-0.8-dev libglib2.0-dev libgmime-2.6-dev
- libgoa-1.0-dev libgspell-1-dev libgtk-3-dev libhandy-0.0-dev
- libjson-glib-dev libmessaging-menu-dev libpeas-dev libsecret-1-dev
- libsqlite3-dev libunity-dev libunwind-dev libwebkit2gtk-4.0-dev
- libxml2-dev libytnef0-dev
- UBUNTU_TEST_DEPS: xauth xvfb
+ meson build-essential valac desktop-file-utils
+ gettext gobject-introspection iso-codes itstool
+ libappstream-glib-dev libenchant-dev libfolks-dev libgcr-3-dev
+ libgee-0.8-dev libglib2.0-dev libgmime-2.6-dev libgoa-1.0-dev
+ libgspell-1-dev libgtk-3-dev libhandy-0.0-dev libjson-glib-dev
+ libmessaging-menu-dev libpeas-dev libsecret-1-dev libsqlite3-dev
+ libunity-dev libunwind-dev libwebkit2gtk-4.0-dev libxml2-dev
+ libytnef0-dev
+ UBUNTU_TEST_DEPS: xauth xvfb
# fedora:
# stage: build
diff --git a/INSTALL b/INSTALL
index f77f3b52..28645ad4 100644
--- a/INSTALL
+++ b/INSTALL
@@ -41,11 +41,11 @@ Install them by running this command:
sudo yum install meson vala desktop-file-utils enchant2-devel \
folks-devel gcr-devel glib2-devel gmime-devel \
- gnome-online-accounts-devel gspell-devel gtk3-devel \
- iso-codes-devel json-glib-devel libappstream-glib-devel \
- libgee-devel libhandy-devel libpeas-devel libsecret-devel \
- libunwind-devel libxml2-devel libytnef-devel sqlite-devel \
- webkitgtk4-devel
+ gnome-online-accounts-devel gobject-introspection gspell-devel \
+ gtk3-devel iso-codes-devel json-glib-devel \
+ libappstream-glib-devel libgee-devel libhandy-devel \
+ libpeas-devel libsecret-devel libunwind-devel libxml2-devel \
+ libytnef-devel sqlite-devel webkitgtk4-devel
Installing dependencies on Ubuntu/Debian
----------------------------------------
@@ -53,7 +53,7 @@ Installing dependencies on Ubuntu/Debian
Install them by running this command:
sudo apt-get install meson build-essential valac \
- desktop-file-utils iso-codes gettext itstool \
+ desktop-file-utils iso-codes gettext gobject-introspection itstool \
libappstream-glib-dev libenchant-dev libfolks-dev libgcr-3-dev \
libgee-0.8-dev libglib2.0-dev libgmime-2.6-dev libgoa-1.0-dev \
libgspell-1-dev libgtk-3-dev libjson-glib-dev libhandy-0.0-dev \
diff --git a/meson.build b/meson.build
index 98d4527f..932def74 100644
--- a/meson.build
+++ b/meson.build
@@ -77,6 +77,7 @@ webkit2gtk = dependency('webkit2gtk-4.0', version: '>=' + target_webkit)
appstream_glib = dependency('appstream-glib', version: '>=0.7.10')
enchant = dependency('enchant-2', version: '>=2.1', required: false) # see below
folks = dependency('folks', version: '>=0.11')
+g_ir_compiler = find_program('g-ir-compiler')
gck = dependency('gck-1')
gcr = dependency('gcr-3', version: '>= 3.10.1')
gdk = dependency('gdk-3.0', version: '>=' + target_gtk)
@@ -201,6 +202,10 @@ configure_file(output: 'config.h', configuration: conf)
# Post-install scripts
meson.add_install_script(join_paths('build-aux', 'post_install.py'))
+# NB: Changing these will break API for plugins, etc
+geary_client_pkg = 'GearyClient-1.0'
+geary_engine_pkg = 'GearyEngine-1.0'
+
# Subfolders
subdir('desktop')
subdir('help')
diff --git a/src/client/meson.build b/src/client/meson.build
index 8b760907..36fe8e73 100644
--- a/src/client/meson.build
+++ b/src/client/meson.build
@@ -147,12 +147,29 @@ if webkit_version[0].to_int() <= 2 and webkit_version[1].to_int() <= 24
endif
# Main client application library
-geary_client_lib = static_library('geary-client',
+geary_client_lib = shared_library(
+ 'geary-client',
geary_client_sources,
dependencies: geary_client_dependencies,
include_directories: config_h_dir,
+ vala_gir: geary_client_pkg + '.gir',
vala_args: geary_client_vala_options,
c_args: geary_c_options,
+ install: true,
+ install_dir: [true, true, true, true]
+)
+
+custom_target(
+ 'client typelib',
+ command: [
+ g_ir_compiler,
+ '--output', '@OUTPUT@',
+ meson.current_build_dir() / geary_client_pkg + '.gir',
+ ],
+ output: geary_client_pkg + '.typelib',
+ depends: geary_client_lib,
+ install: true,
+ install_dir: libdir / 'girepository-1.0'
)
geary_client_dep = declare_dependency(
diff --git a/src/engine/meson.build b/src/engine/meson.build
index e9746fdb..9028ff95 100644
--- a/src/engine/meson.build
+++ b/src/engine/meson.build
@@ -362,12 +362,28 @@ if get_option('tnef-support')
]
endif
-geary_engine_lib = static_library('geary-engine',
+geary_engine_lib = shared_library('geary-engine',
geary_engine_sources,
dependencies: geary_engine_dependencies,
include_directories: config_h_dir,
vala_args: geary_engine_vala_options,
+ vala_gir: geary_engine_pkg + '.gir',
c_args: geary_c_options,
+ install: true,
+ install_dir: [true, true, true, true]
+)
+
+custom_target(
+ 'engine typelib',
+ command: [
+ g_ir_compiler,
+ '--output', '@OUTPUT@',
+ meson.current_build_dir() / geary_engine_pkg + '.gir'
+ ],
+ output: geary_engine_pkg + '.typelib',
+ depends: geary_engine_lib,
+ install: true,
+ install_dir: libdir / 'girepository-1.0'
)
# Dummy target to tell Meson about the internal VAPI given the
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]