Port build system to Meson. Bug 777044.
Some remarks: * Note that Meson adds a hard dependency on Python 3. * All dependencies and defines are now listed together. * Some build files were put in their respective subdirectories, e.g. the Geary engine library will be built from the Meson file in `src/engine`. * `--fatal-warnings` is no longer an explicit flag, as Meson provides `-Dwerror=true` for this. * An explicit resource file needs to be used. The issue to support this from Meson itself can be found at https://github.com/mesonbuild/meson/issues/706 . * The `gnome.yelp()` function parses a LINGUAS file so we no longer need to keep track of all languages in our build system. * There are no Debian scripts defined in the meson.build files to keep them clean, but they can be kept as separate scripts in `build-aux`. * Left out the `dist` target as there is now `ninja dist` * `geary-docs` is disabled by default, as valadoc-0.38.3 returns errors. https://bugzilla.gnome.org/show_bug.cgi?id=777044
This commit is contained in:
parent
b627fd4fc6
commit
01c13f726f
19 changed files with 1137 additions and 0 deletions
62
bindings/meson.build
Normal file
62
bindings/meson.build
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
# Custom VAPIs
|
||||||
|
# NOTE: We can't directly use the dependencies returned by dependency() for
|
||||||
|
# webkit2gtk (and the web extensions), since Meson then adds the packages from
|
||||||
|
# the system directories. Since there might be conflicts with our custom VAPI's,
|
||||||
|
# we need to glue pieces together. We satisfy GCC by looking up the relevant
|
||||||
|
# include directories and we please the linker by using cc.find_library()
|
||||||
|
|
||||||
|
|
||||||
|
girdir = gobject_introspection.get_pkgconfig_variable('girdir')
|
||||||
|
|
||||||
|
webkit2gtk_vapi = gnome.generate_vapi('webkit2gtk-4.8',
|
||||||
|
sources: join_paths(girdir, 'WebKit2-4.0.gir'),
|
||||||
|
vapi_dirs: vapi_dir,
|
||||||
|
metadata_dirs: metadata_dir,
|
||||||
|
packages: [
|
||||||
|
'gtk+-3.0',
|
||||||
|
'libsoup-2.4',
|
||||||
|
'javascriptcore-4.0',
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
webkit2gtk = declare_dependency(
|
||||||
|
dependencies: [
|
||||||
|
webkit2gtk_vapi,
|
||||||
|
javascriptcore,
|
||||||
|
javascriptcoregtk,
|
||||||
|
libsoup,
|
||||||
|
gdk,
|
||||||
|
gtk,
|
||||||
|
cc.find_library('webkit2gtk-4.0'),
|
||||||
|
],
|
||||||
|
include_directories: include_directories(webkit2gtk_dep.get_pkgconfig_variable('includedir')+'/webkitgtk-4.0/'),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
webkit2gtk_web_extension_vapi = gnome.generate_vapi('webkit2gtk-web-extension-4.0',
|
||||||
|
sources: [
|
||||||
|
join_paths(girdir, 'WebKit2WebExtension-4.0.gir'),
|
||||||
|
join_paths('metadata', 'WebKit2WebExtension-4.0-custom.vala'),
|
||||||
|
],
|
||||||
|
vapi_dirs: [vapi_dir, meson.current_build_dir()],
|
||||||
|
metadata_dirs: metadata_dir,
|
||||||
|
packages: [
|
||||||
|
'gtk+-3.0',
|
||||||
|
'libsoup-2.4',
|
||||||
|
'javascriptcore-4.0',
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
webkit2gtk_web_extension = declare_dependency(
|
||||||
|
dependencies: [
|
||||||
|
webkit2gtk_web_extension_vapi,
|
||||||
|
glib,
|
||||||
|
gio,
|
||||||
|
gtk,
|
||||||
|
libsoup,
|
||||||
|
javascriptcore,
|
||||||
|
javascriptcoregtk,
|
||||||
|
cc.find_library('webkit2gtk-4.0'),
|
||||||
|
],
|
||||||
|
include_directories: include_directories(webkit2gtk_web_extension_dep.get_pkgconfig_variable('includedir')+'/webkitgtk-4.0/'),
|
||||||
|
)
|
||||||
15
build-aux/post_install.py
Normal file
15
build-aux/post_install.py
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
install_prefix = os.environ['MESON_INSTALL_PREFIX']
|
||||||
|
icondir = os.path.join(install_prefix, 'share', 'icons', 'hicolor')
|
||||||
|
schemadir = os.path.join(install_prefix, 'share', 'glib-2.0', 'schemas')
|
||||||
|
|
||||||
|
if not os.environ.get('DESTDIR'):
|
||||||
|
print('Update icon cache...')
|
||||||
|
subprocess.call(['gtk-update-icon-cache', '-f', '-t', icondir])
|
||||||
|
|
||||||
|
print('Compiling gsettings schemas...')
|
||||||
|
subprocess.call(['glib-compile-schemas', schemadir])
|
||||||
42
desktop/meson.build
Normal file
42
desktop/meson.build
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
foreach desktop_file: [ 'org.gnome.Geary.desktop', 'geary-autostart.desktop' ]
|
||||||
|
i18n.merge_file(
|
||||||
|
input: desktop_file + '.in',
|
||||||
|
output: desktop_file,
|
||||||
|
type: 'desktop',
|
||||||
|
po_dir: po_dir,
|
||||||
|
install: true,
|
||||||
|
install_dir: join_paths(datadir, 'applications')
|
||||||
|
)
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
# The appdata file
|
||||||
|
i18n.merge_file(
|
||||||
|
input: 'org.gnome.Geary.appdata.xml.in',
|
||||||
|
output: 'org.gnome.Geary.appdata.xml',
|
||||||
|
type: 'xml',
|
||||||
|
po_dir: po_dir,
|
||||||
|
install: true,
|
||||||
|
install_dir: join_paths(datadir, 'metainfo')
|
||||||
|
)
|
||||||
|
|
||||||
|
# Contractor file (Elementary OS)
|
||||||
|
if install_contractor_file
|
||||||
|
i18n.merge_file(
|
||||||
|
input: 'geary-attach.contract.desktop.in',
|
||||||
|
output: 'geary-attach.contract',
|
||||||
|
type: 'desktop',
|
||||||
|
po_dir: po_dir,
|
||||||
|
install: true,
|
||||||
|
install_dir: join_paths(datadir, 'contractor')
|
||||||
|
)
|
||||||
|
|
||||||
|
install_data('geary-attach',
|
||||||
|
install_dir: bindir,
|
||||||
|
)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# GSettings schemas
|
||||||
|
geary_compiled_schema = gnome.compile_schemas() # Always compile, even if necessary. Makes sure it's valid.
|
||||||
|
install_data('org.gnome.Geary.gschema.xml',
|
||||||
|
install_dir: join_paths(datadir, 'glib-2.0', 'schemas'),
|
||||||
|
)
|
||||||
11
help/LINGUAS
Normal file
11
help/LINGUAS
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
# please keep this list sorted alphabetically
|
||||||
|
#
|
||||||
|
cs
|
||||||
|
de
|
||||||
|
el
|
||||||
|
es
|
||||||
|
fr
|
||||||
|
it
|
||||||
|
pl
|
||||||
|
pt_BR
|
||||||
|
sv
|
||||||
18
help/meson.build
Normal file
18
help/meson.build
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
geary_help_pages = [
|
||||||
|
'accounts.page',
|
||||||
|
'archive.page',
|
||||||
|
'bugs.page',
|
||||||
|
'index.page',
|
||||||
|
'label.page',
|
||||||
|
'limits.page',
|
||||||
|
'overview.page',
|
||||||
|
'preferences.page',
|
||||||
|
'search.page',
|
||||||
|
'shortcuts.page',
|
||||||
|
'star.page',
|
||||||
|
'write.page',
|
||||||
|
]
|
||||||
|
|
||||||
|
gnome.yelp(meson.project_name(),
|
||||||
|
sources: geary_help_pages,
|
||||||
|
)
|
||||||
33
icons/meson.build
Normal file
33
icons/meson.build
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
system_icons_dir = join_paths(datadir, 'icons', 'hicolor')
|
||||||
|
|
||||||
|
icon_files = files(
|
||||||
|
'mail-archive-symbolic.svg',
|
||||||
|
'close-symbolic.svg',
|
||||||
|
'detach-symbolic.svg',
|
||||||
|
'text-x-generic-symbolic.svg',
|
||||||
|
'edit-symbolic.svg',
|
||||||
|
'format-text-remove-symbolic.svg',
|
||||||
|
'mail-drafts-symbolic.svg',
|
||||||
|
'mail-drafts-symbolic-rtl.svg',
|
||||||
|
'mail-forward-symbolic.svg',
|
||||||
|
'mail-forward-symbolic-rtl.svg',
|
||||||
|
'mail-inbox-symbolic.svg',
|
||||||
|
'mail-outbox-symbolic.svg',
|
||||||
|
'mail-reply-all-symbolic.svg',
|
||||||
|
'mail-reply-all-symbolic-rtl.svg',
|
||||||
|
'mail-reply-sender-symbolic.svg',
|
||||||
|
'mail-reply-sender-symbolic-rtl.svg',
|
||||||
|
'mail-sent-symbolic.svg',
|
||||||
|
'mail-sent-symbolic-rtl.svg',
|
||||||
|
'marker-symbolic.svg',
|
||||||
|
'tag-symbolic.svg',
|
||||||
|
'tag-symbolic-rtl.svg',
|
||||||
|
)
|
||||||
|
|
||||||
|
install_data(icon_files,
|
||||||
|
install_dir: join_paths(system_icons_dir, 'scalable', 'actions'),
|
||||||
|
)
|
||||||
|
|
||||||
|
install_subdir('hicolor',
|
||||||
|
install_dir: system_icons_dir,
|
||||||
|
)
|
||||||
154
meson.build
Normal file
154
meson.build
Normal file
|
|
@ -0,0 +1,154 @@
|
||||||
|
project('geary', [ 'vala', 'c' ],
|
||||||
|
version: '0.13-dev',
|
||||||
|
license: 'LGPL2.1+',
|
||||||
|
meson_version: '>= 0.41',
|
||||||
|
)
|
||||||
|
|
||||||
|
gnome = import('gnome')
|
||||||
|
i18n = import('i18n')
|
||||||
|
|
||||||
|
# Option
|
||||||
|
install_contractor_file = get_option('contractor')
|
||||||
|
iso_639_xml = get_option('iso_639_xml')
|
||||||
|
iso_3166_xml = get_option('iso_3166_xml')
|
||||||
|
reference_tracking = get_option('ref_tracking')
|
||||||
|
poodle = get_option('poodle')
|
||||||
|
local_gsettings = get_option('local_gsettings')
|
||||||
|
enable_valadoc = get_option('valadoc')
|
||||||
|
|
||||||
|
# Some variables
|
||||||
|
cc = meson.get_compiler('c')
|
||||||
|
valac = meson.get_compiler('vala')
|
||||||
|
config_h_dir = include_directories('.')
|
||||||
|
geary_prefix = get_option('prefix')
|
||||||
|
datadir = join_paths(geary_prefix, get_option('datadir'))
|
||||||
|
libdir = join_paths(geary_prefix, get_option('libdir'))
|
||||||
|
locale_dir = join_paths(geary_prefix, get_option('localedir'))
|
||||||
|
po_dir = join_paths(meson.source_root(), 'po')
|
||||||
|
vapi_dir = join_paths(meson.source_root(), 'bindings', 'vapi')
|
||||||
|
metadata_dir = join_paths(meson.source_root(), 'bindings', 'metadata')
|
||||||
|
|
||||||
|
# Make sure Meson can find our custom VAPI's
|
||||||
|
add_project_arguments([
|
||||||
|
'--vapidir', vapi_dir,
|
||||||
|
'--metadatadir', metadata_dir,
|
||||||
|
],
|
||||||
|
language: 'vala'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Dependencies
|
||||||
|
target_glib = '2.44' # Also passed to valac, so don't include a point rev
|
||||||
|
target_gtk = '3.22.0'
|
||||||
|
target_webkit = '2.16'
|
||||||
|
|
||||||
|
posix = valac.find_library('posix')
|
||||||
|
libmath = cc.find_library('m')
|
||||||
|
glib = dependency('glib-2.0', version: '>=' + target_glib)
|
||||||
|
gthread = dependency('gthread-2.0', version: '>=' + target_glib)
|
||||||
|
gio = dependency('gio-2.0', version: '>=' + target_glib)
|
||||||
|
gtk = dependency('gtk+-3.0', version: '>=' + target_gtk)
|
||||||
|
gdk = dependency('gdk-3.0', version: '>=' + target_gtk)
|
||||||
|
libsoup = dependency('libsoup-2.4', version: '>= 2.48')
|
||||||
|
gee = dependency('gee-0.8', version: '>= 0.8.5')
|
||||||
|
libnotify = dependency('libnotify', version: '>= 0.7.5')
|
||||||
|
libcanberra = dependency('libcanberra', version: '>= 0.28')
|
||||||
|
sqlite = dependency('sqlite3', version: '>= 3.7.4')
|
||||||
|
gmime = dependency('gmime-2.6', version: '>= 2.6.17')
|
||||||
|
libsecret = dependency('libsecret-1', version: '>= 0.11')
|
||||||
|
libxml = dependency('libxml-2.0', version: '>= 2.7.8')
|
||||||
|
gcr = dependency('gcr-3', version: '>= 3.10.1')
|
||||||
|
gobject_introspection = dependency('gobject-introspection-1.0')
|
||||||
|
webkit2gtk_dep = dependency('webkit2gtk-4.0', version: '>=' + target_webkit)
|
||||||
|
webkit2gtk_web_extension_dep = dependency('webkit2gtk-web-extension-4.0', version: '>=' + target_webkit)
|
||||||
|
javascriptcore = valac.find_library('javascriptcore-4.0', dirs: vapi_dir)
|
||||||
|
javascriptcoregtk = cc.find_library('javascriptcoregtk-4.0', version: '>=' + target_webkit)
|
||||||
|
enchant = dependency('enchant', version: '>= 1.6')
|
||||||
|
libunwind = declare_dependency(
|
||||||
|
dependencies: [
|
||||||
|
dependency('libunwind', version: '>= 1.1'),
|
||||||
|
cc.find_library('libunwind-' + target_machine.cpu_family()),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
libunity = dependency('unity', version: '>= 5.12.0', required: false)
|
||||||
|
libmessagingmenu = dependency('messaging-menu', version: '>= 12.10.2', required: false)
|
||||||
|
sqlite = dependency('sqlite3')
|
||||||
|
if sqlite.version().version_compare('>= 3.12')
|
||||||
|
if not cc.has_header_symbol('sqlite3.h', 'SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER')
|
||||||
|
error('SQLite3 is missing FTS3 tokenizer support. Please compile it with -DSQLITE_ENABLE_FTS3.\n'
|
||||||
|
+ 'See https://bugzilla.gnome.org/show_bug.cgi?id=763203 for details.')
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
# detect that the current sqlite3 library has FTS3 support (at run time)
|
||||||
|
runtime_fts3_check = cc.compiles('''
|
||||||
|
#include <sqlite3.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
int main() {
|
||||||
|
sqlite3 *db;
|
||||||
|
char tmpfile[] = "sqliteXXXXXX";
|
||||||
|
mkstemp(tmpfile);
|
||||||
|
if (sqlite3_open(tmpfile, &db) == SQLITE_OK) {
|
||||||
|
return sqlite3_exec(db, "CREATE VIRTUAL TABLE mail USING fts3(subject, body);", 0, 0, 0);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
''', dependencies: sqlite)
|
||||||
|
if not runtime_fts3_check
|
||||||
|
if sqlite.version().version_compare('< 3.11')
|
||||||
|
error('SQLite3 is missing FTS3 support. Please compile it with -DSQLITE_ENABLE_FTS3.')
|
||||||
|
else
|
||||||
|
error('SQLite3 is missing FTS3 tokenizer support. Please compile it with -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_TOKENIZER.')
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
if enable_valadoc
|
||||||
|
valadoc = find_program('valadoc')
|
||||||
|
endif
|
||||||
|
|
||||||
|
# This will provide our custom dependencies, such as webkit2gtk
|
||||||
|
subdir('bindings')
|
||||||
|
|
||||||
|
# Language detection
|
||||||
|
iso_codes_dir = join_paths('/', 'usr', 'share', 'xml', 'iso-codes')
|
||||||
|
if iso_639_xml == ''
|
||||||
|
iso_639_xml = join_paths(iso_codes_dir, 'iso_639.xml')
|
||||||
|
endif
|
||||||
|
if iso_3166_xml == ''
|
||||||
|
iso_3166_xml = join_paths(iso_codes_dir, 'iso_3166.xml')
|
||||||
|
endif
|
||||||
|
files(iso_639_xml, iso_3166_xml) # Check to make sure these exist
|
||||||
|
|
||||||
|
# Configuration
|
||||||
|
conf = configuration_data()
|
||||||
|
conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
|
||||||
|
conf.set_quoted('G_LOG_DOMAIN', meson.project_name())
|
||||||
|
conf.set_quoted('PACKAGE_NAME', meson.project_name())
|
||||||
|
conf.set_quoted('PACKAGE_STRING', '@0@-@1@'.format(meson.project_name(), meson.project_version()))
|
||||||
|
conf.set_quoted('PACKAGE_VERSION', meson.project_version())
|
||||||
|
conf.set_quoted('_BUILD_ROOT_DIR', meson.build_root())
|
||||||
|
conf.set_quoted('_SOURCE_ROOT_DIR', meson.source_root())
|
||||||
|
conf.set_quoted('_GSETTINGS_DIR', join_paths(meson.source_root(), 'desktop'))
|
||||||
|
conf.set_quoted('_INSTALL_PREFIX', geary_prefix)
|
||||||
|
conf.set_quoted('LANGUAGE_SUPPORT_DIRECTORY', locale_dir)
|
||||||
|
conf.set_quoted('ISO_CODE_639_XML', iso_639_xml)
|
||||||
|
conf.set_quoted('ISO_CODE_3166_XML', iso_3166_xml)
|
||||||
|
conf.set('HAVE_LIBMESSAGINGMENU', libmessagingmenu.found())
|
||||||
|
conf.set('HAVE_LIBUNITY', libunity.found())
|
||||||
|
conf.set('HAVE_FTS3_TOKENIZE', true)
|
||||||
|
conf.set('VERSION', meson.project_version())
|
||||||
|
conf.set('GCR_API_SUBJECT_TO_CHANGE', true)
|
||||||
|
configure_file(output: 'config.h', configuration: conf)
|
||||||
|
|
||||||
|
# Post-install scripts
|
||||||
|
meson.add_install_script(join_paths('build-aux', 'post_install.py'))
|
||||||
|
|
||||||
|
# Subfolders
|
||||||
|
subdir('desktop')
|
||||||
|
subdir('help')
|
||||||
|
subdir('icons')
|
||||||
|
subdir('po')
|
||||||
|
subdir('sql')
|
||||||
|
subdir('ui')
|
||||||
|
subdir('src')
|
||||||
|
subdir('test')
|
||||||
7
meson_options.txt
Normal file
7
meson_options.txt
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
option('valadoc', type: 'boolean', value: false, description: 'Whether to build the documentaton (requires valadoc).')
|
||||||
|
option('contractor', type: 'boolean', value: false, description: 'Whether to install the contractor file (Elementary OS-specific).')
|
||||||
|
option('local_gsettings', type: 'boolean', value: false, description: 'Whether to compile GSettings schema inside the build folder.')
|
||||||
|
option('poodle', type: 'boolean', value: true, description: 'Whether to apply the POODLE SSLv3 fix.')
|
||||||
|
option('ref_tracking', type: 'boolean', value: false, description: 'Whether to use explicit reference tracking.')
|
||||||
|
option('iso_639_xml', type: 'string', value: '', description: 'Full path to the ISO 639 XML file.')
|
||||||
|
option('iso_3166_xml', type: 'string', value: '', description: 'Full path to the ISO 3166 XML file.')
|
||||||
3
po/meson.build
Normal file
3
po/meson.build
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
i18n.gettext(meson.project_name(),
|
||||||
|
preset: 'glib'
|
||||||
|
)
|
||||||
31
sql/meson.build
Normal file
31
sql/meson.build
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
sql_files = [
|
||||||
|
'version-001.sql',
|
||||||
|
'version-002.sql',
|
||||||
|
'version-003.sql',
|
||||||
|
'version-004.sql',
|
||||||
|
'version-005.sql',
|
||||||
|
'version-006.sql',
|
||||||
|
'version-007.sql',
|
||||||
|
'version-008.sql',
|
||||||
|
'version-009.sql',
|
||||||
|
'version-010.sql',
|
||||||
|
'version-011.sql',
|
||||||
|
'version-012.sql',
|
||||||
|
'version-013.sql',
|
||||||
|
'version-014.sql',
|
||||||
|
'version-015.sql',
|
||||||
|
'version-016.sql',
|
||||||
|
'version-017.sql',
|
||||||
|
'version-018.sql',
|
||||||
|
'version-019.sql',
|
||||||
|
'version-020.sql',
|
||||||
|
'version-021.sql',
|
||||||
|
'version-022.sql',
|
||||||
|
'version-023.sql',
|
||||||
|
'version-024.sql',
|
||||||
|
'version-025.sql',
|
||||||
|
]
|
||||||
|
|
||||||
|
install_data(sql_files,
|
||||||
|
install_dir: join_paths(datadir, meson.project_name(), 'sql')
|
||||||
|
)
|
||||||
142
src/client/meson.build
Normal file
142
src/client/meson.build
Normal file
|
|
@ -0,0 +1,142 @@
|
||||||
|
# Geary client
|
||||||
|
geary_client_vala_sources = files(
|
||||||
|
'application/autostart-manager.vala',
|
||||||
|
'application/geary-application.vala',
|
||||||
|
'application/geary-args.vala',
|
||||||
|
'application/geary-config.vala',
|
||||||
|
'application/geary-controller.vala',
|
||||||
|
'application/secret-mediator.vala',
|
||||||
|
|
||||||
|
'accounts/account-dialog.vala',
|
||||||
|
'accounts/account-dialog-account-list-pane.vala',
|
||||||
|
'accounts/account-dialog-add-edit-pane.vala',
|
||||||
|
'accounts/account-dialog-edit-alternate-emails-pane.vala',
|
||||||
|
'accounts/account-dialog-pane.vala',
|
||||||
|
'accounts/account-dialog-remove-confirm-pane.vala',
|
||||||
|
'accounts/account-dialog-remove-fail-pane.vala',
|
||||||
|
'accounts/account-dialog-spinner-pane.vala',
|
||||||
|
'accounts/account-spinner-page.vala',
|
||||||
|
'accounts/add-edit-page.vala',
|
||||||
|
'accounts/login-dialog.vala',
|
||||||
|
|
||||||
|
'components/client-web-view.vala',
|
||||||
|
'components/count-badge.vala',
|
||||||
|
'components/empty-placeholder.vala',
|
||||||
|
'components/folder-popover.vala',
|
||||||
|
'components/icon-factory.vala',
|
||||||
|
'components/main-toolbar.vala',
|
||||||
|
'components/main-window.vala',
|
||||||
|
'components/main-window-info-bar.vala',
|
||||||
|
'components/monitored-progress-bar.vala',
|
||||||
|
'components/monitored-spinner.vala',
|
||||||
|
'components/search-bar.vala',
|
||||||
|
'components/status-bar.vala',
|
||||||
|
'components/stock.vala',
|
||||||
|
|
||||||
|
'composer/composer-box.vala',
|
||||||
|
'composer/composer-container.vala',
|
||||||
|
'composer/composer-embed.vala',
|
||||||
|
'composer/composer-headerbar.vala',
|
||||||
|
'composer/composer-link-popover.vala',
|
||||||
|
'composer/composer-web-view.vala',
|
||||||
|
'composer/composer-widget.vala',
|
||||||
|
'composer/composer-window.vala',
|
||||||
|
'composer/contact-entry-completion.vala',
|
||||||
|
'composer/contact-list-store.vala',
|
||||||
|
'composer/contact-list-store-cache.vala',
|
||||||
|
'composer/email-entry.vala',
|
||||||
|
'composer/spell-check-popover.vala',
|
||||||
|
|
||||||
|
'conversation-list/conversation-list-cell-renderer.vala',
|
||||||
|
'conversation-list/conversation-list-store.vala',
|
||||||
|
'conversation-list/conversation-list-view.vala',
|
||||||
|
'conversation-list/formatted-conversation-data.vala',
|
||||||
|
|
||||||
|
'conversation-viewer/conversation-email.vala',
|
||||||
|
'conversation-viewer/conversation-list-box.vala',
|
||||||
|
'conversation-viewer/conversation-message.vala',
|
||||||
|
'conversation-viewer/conversation-viewer.vala',
|
||||||
|
'conversation-viewer/conversation-web-view.vala',
|
||||||
|
|
||||||
|
'dialogs/alert-dialog.vala',
|
||||||
|
'dialogs/attachment-dialog.vala',
|
||||||
|
'dialogs/certificate-warning-dialog.vala',
|
||||||
|
'dialogs/password-dialog.vala',
|
||||||
|
'dialogs/preferences-dialog.vala',
|
||||||
|
'dialogs/upgrade-dialog.vala',
|
||||||
|
|
||||||
|
'folder-list/folder-list-abstract-folder-entry.vala',
|
||||||
|
'folder-list/folder-list-account-branch.vala',
|
||||||
|
'folder-list/folder-list-folder-entry.vala',
|
||||||
|
'folder-list/folder-list-tree.vala',
|
||||||
|
'folder-list/folder-list-inboxes-branch.vala',
|
||||||
|
'folder-list/folder-list-inbox-folder-entry.vala',
|
||||||
|
'folder-list/folder-list-search-branch.vala',
|
||||||
|
'folder-list/folder-list-special-grouping.vala',
|
||||||
|
|
||||||
|
'notification/libmessagingmenu.vala',
|
||||||
|
'notification/libnotify.vala',
|
||||||
|
'notification/new-messages-indicator.vala',
|
||||||
|
'notification/new-messages-monitor.vala',
|
||||||
|
'notification/null-indicator.vala',
|
||||||
|
'notification/unity-launcher.vala',
|
||||||
|
|
||||||
|
'sidebar/sidebar-branch.vala',
|
||||||
|
'sidebar/sidebar-common.vala',
|
||||||
|
'sidebar/sidebar-count-cell-renderer.vala',
|
||||||
|
'sidebar/sidebar-entry.vala',
|
||||||
|
'sidebar/sidebar-tree.vala',
|
||||||
|
|
||||||
|
'util/util-date.vala',
|
||||||
|
'util/util-email.vala',
|
||||||
|
'util/util-files.vala',
|
||||||
|
'util/util-gio.vala',
|
||||||
|
'util/util-gravatar.vala',
|
||||||
|
'util/util-gtk.vala',
|
||||||
|
'util/util-international.vala',
|
||||||
|
'util/util-migrate.vala',
|
||||||
|
'util/util-webkit.vala',
|
||||||
|
)
|
||||||
|
|
||||||
|
geary_client_sources = [
|
||||||
|
geary_client_vala_sources,
|
||||||
|
geary_resources[0],
|
||||||
|
]
|
||||||
|
|
||||||
|
geary_client_dependencies = [
|
||||||
|
libmath,
|
||||||
|
enchant,
|
||||||
|
gcr,
|
||||||
|
gee,
|
||||||
|
gio,
|
||||||
|
gtk,
|
||||||
|
libcanberra,
|
||||||
|
libnotify,
|
||||||
|
libsecret,
|
||||||
|
libsoup,
|
||||||
|
gmime,
|
||||||
|
libxml,
|
||||||
|
posix,
|
||||||
|
webkit2gtk,
|
||||||
|
geary_engine_dep,
|
||||||
|
]
|
||||||
|
|
||||||
|
if libmessagingmenu.found()
|
||||||
|
geary_client_dependencies += libmessagingmenu
|
||||||
|
endif
|
||||||
|
if libunity.found()
|
||||||
|
geary_client_dependencies += libunity
|
||||||
|
endif
|
||||||
|
|
||||||
|
geary_client_lib = library('geary-client',
|
||||||
|
geary_client_sources,
|
||||||
|
dependencies: geary_client_dependencies,
|
||||||
|
include_directories: config_h_dir,
|
||||||
|
vala_args: geary_vala_options,
|
||||||
|
c_args: geary_c_options,
|
||||||
|
)
|
||||||
|
|
||||||
|
geary_client_dep = declare_dependency(
|
||||||
|
link_with: geary_client_lib,
|
||||||
|
include_directories: include_directories('.'),
|
||||||
|
)
|
||||||
16
src/console/meson.build
Normal file
16
src/console/meson.build
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
geary_console_sources = files(
|
||||||
|
'main.vala',
|
||||||
|
)
|
||||||
|
|
||||||
|
geary_console_dependencies = [
|
||||||
|
gtk,
|
||||||
|
gee,
|
||||||
|
gmime,
|
||||||
|
webkit2gtk,
|
||||||
|
geary_engine_dep,
|
||||||
|
]
|
||||||
|
|
||||||
|
geary_console = executable('geary-console',
|
||||||
|
geary_console_sources,
|
||||||
|
dependencies: geary_console_dependencies,
|
||||||
|
)
|
||||||
349
src/engine/meson.build
Normal file
349
src/engine/meson.build
Normal file
|
|
@ -0,0 +1,349 @@
|
||||||
|
# Geary engine
|
||||||
|
geary_engine_vala_sources = files(
|
||||||
|
'api/geary.vala',
|
||||||
|
'api/geary-abstract-local-folder.vala',
|
||||||
|
'api/geary-account.vala',
|
||||||
|
'api/geary-account-information.vala',
|
||||||
|
'api/geary-aggregated-folder-properties.vala',
|
||||||
|
'api/geary-attachment.vala',
|
||||||
|
'api/geary-base-object.vala',
|
||||||
|
'api/geary-composed-email.vala',
|
||||||
|
'api/geary-contact.vala',
|
||||||
|
'api/geary-contact-flags.vala',
|
||||||
|
'api/geary-contact-importance.vala',
|
||||||
|
'api/geary-contact-store.vala',
|
||||||
|
'api/geary-credentials.vala',
|
||||||
|
'api/geary-credentials-mediator.vala',
|
||||||
|
'api/geary-email-flags.vala',
|
||||||
|
'api/geary-email-identifier.vala',
|
||||||
|
'api/geary-email-properties.vala',
|
||||||
|
'api/geary-email.vala',
|
||||||
|
'api/geary-endpoint.vala',
|
||||||
|
'api/geary-engine-error.vala',
|
||||||
|
'api/geary-engine.vala',
|
||||||
|
'api/geary-folder.vala',
|
||||||
|
'api/geary-folder-path.vala',
|
||||||
|
'api/geary-folder-properties.vala',
|
||||||
|
'api/geary-folder-supports-archive.vala',
|
||||||
|
'api/geary-folder-supports-copy.vala',
|
||||||
|
'api/geary-folder-supports-create.vala',
|
||||||
|
'api/geary-folder-supports-empty.vala',
|
||||||
|
'api/geary-folder-supports-mark.vala',
|
||||||
|
'api/geary-folder-supports-move.vala',
|
||||||
|
'api/geary-folder-supports-remove.vala',
|
||||||
|
'api/geary-logging.vala',
|
||||||
|
'api/geary-named-flag.vala',
|
||||||
|
'api/geary-named-flags.vala',
|
||||||
|
'api/geary-problem-report.vala',
|
||||||
|
'api/geary-progress-monitor.vala',
|
||||||
|
'api/geary-revokable.vala',
|
||||||
|
'api/geary-search-folder.vala',
|
||||||
|
'api/geary-search-query.vala',
|
||||||
|
'api/geary-service.vala',
|
||||||
|
'api/geary-service-provider.vala',
|
||||||
|
'api/geary-special-folder-type.vala',
|
||||||
|
|
||||||
|
'app/app-conversation.vala',
|
||||||
|
'app/app-conversation-monitor.vala',
|
||||||
|
'app/app-draft-manager.vala',
|
||||||
|
'app/app-email-store.vala',
|
||||||
|
|
||||||
|
'app/conversation-monitor/app-append-operation.vala',
|
||||||
|
'app/conversation-monitor/app-conversation-operation-queue.vala',
|
||||||
|
'app/conversation-monitor/app-conversation-operation.vala',
|
||||||
|
'app/conversation-monitor/app-conversation-set.vala',
|
||||||
|
'app/conversation-monitor/app-external-append-operation.vala',
|
||||||
|
'app/conversation-monitor/app-fill-window-operation.vala',
|
||||||
|
'app/conversation-monitor/app-local-load-operation.vala',
|
||||||
|
'app/conversation-monitor/app-local-search-operation.vala',
|
||||||
|
'app/conversation-monitor/app-remove-operation.vala',
|
||||||
|
'app/conversation-monitor/app-reseed-operation.vala',
|
||||||
|
'app/conversation-monitor/app-terminate-operation.vala',
|
||||||
|
|
||||||
|
'app/email-store/app-async-folder-operation.vala',
|
||||||
|
'app/email-store/app-copy-operation.vala',
|
||||||
|
'app/email-store/app-fetch-operation.vala',
|
||||||
|
'app/email-store/app-list-operation.vala',
|
||||||
|
'app/email-store/app-mark-operation.vala',
|
||||||
|
|
||||||
|
'common/common-message-data.vala',
|
||||||
|
|
||||||
|
'db/db.vala',
|
||||||
|
'db/db-connection.vala',
|
||||||
|
'db/db-context.vala',
|
||||||
|
'db/db-database.vala',
|
||||||
|
'db/db-database-error.vala',
|
||||||
|
'db/db-result.vala',
|
||||||
|
'db/db-statement.vala',
|
||||||
|
'db/db-synchronous-mode.vala',
|
||||||
|
'db/db-transaction-async-job.vala',
|
||||||
|
'db/db-transaction-outcome.vala',
|
||||||
|
'db/db-transaction-type.vala',
|
||||||
|
'db/db-versioned-database.vala',
|
||||||
|
|
||||||
|
'imap/imap.vala',
|
||||||
|
'imap/imap-error.vala',
|
||||||
|
'imap/api/imap-account.vala',
|
||||||
|
'imap/api/imap-email-flags.vala',
|
||||||
|
'imap/api/imap-email-properties.vala',
|
||||||
|
'imap/api/imap-folder-properties.vala',
|
||||||
|
'imap/api/imap-folder.vala',
|
||||||
|
'imap/api/imap-folder-root.vala',
|
||||||
|
'imap/command/imap-append-command.vala',
|
||||||
|
'imap/command/imap-capability-command.vala',
|
||||||
|
'imap/command/imap-close-command.vala',
|
||||||
|
'imap/command/imap-command.vala',
|
||||||
|
'imap/command/imap-compress-command.vala',
|
||||||
|
'imap/command/imap-copy-command.vala',
|
||||||
|
'imap/command/imap-create-command.vala',
|
||||||
|
'imap/command/imap-examine-command.vala',
|
||||||
|
'imap/command/imap-expunge-command.vala',
|
||||||
|
'imap/command/imap-fetch-command.vala',
|
||||||
|
'imap/command/imap-id-command.vala',
|
||||||
|
'imap/command/imap-idle-command.vala',
|
||||||
|
'imap/command/imap-list-command.vala',
|
||||||
|
'imap/command/imap-list-return-parameter.vala',
|
||||||
|
'imap/command/imap-login-command.vala',
|
||||||
|
'imap/command/imap-logout-command.vala',
|
||||||
|
'imap/command/imap-message-set.vala',
|
||||||
|
'imap/command/imap-namespace-command.vala',
|
||||||
|
'imap/command/imap-noop-command.vala',
|
||||||
|
'imap/command/imap-search-command.vala',
|
||||||
|
'imap/command/imap-search-criteria.vala',
|
||||||
|
'imap/command/imap-search-criterion.vala',
|
||||||
|
'imap/command/imap-select-command.vala',
|
||||||
|
'imap/command/imap-starttls-command.vala',
|
||||||
|
'imap/command/imap-status-command.vala',
|
||||||
|
'imap/command/imap-store-command.vala',
|
||||||
|
'imap/message/imap-data-format.vala',
|
||||||
|
'imap/message/imap-envelope.vala',
|
||||||
|
'imap/message/imap-fetch-body-data-specifier.vala',
|
||||||
|
'imap/message/imap-fetch-data-specifier.vala',
|
||||||
|
'imap/message/imap-flag.vala',
|
||||||
|
'imap/message/imap-flags.vala',
|
||||||
|
'imap/message/imap-internal-date.vala',
|
||||||
|
'imap/message/imap-mailbox-specifier.vala',
|
||||||
|
'imap/message/imap-mailbox-parameter.vala',
|
||||||
|
'imap/message/imap-message-data.vala',
|
||||||
|
'imap/message/imap-message-flag.vala',
|
||||||
|
'imap/message/imap-message-flags.vala',
|
||||||
|
'imap/message/imap-namespace.vala',
|
||||||
|
'imap/message/imap-sequence-number.vala',
|
||||||
|
'imap/message/imap-status-data-type.vala',
|
||||||
|
'imap/message/imap-tag.vala',
|
||||||
|
'imap/message/imap-uid.vala',
|
||||||
|
'imap/message/imap-uid-validity.vala',
|
||||||
|
'imap/parameter/imap-atom-parameter.vala',
|
||||||
|
'imap/parameter/imap-list-parameter.vala',
|
||||||
|
'imap/parameter/imap-literal-parameter.vala',
|
||||||
|
'imap/parameter/imap-nil-parameter.vala',
|
||||||
|
'imap/parameter/imap-number-parameter.vala',
|
||||||
|
'imap/parameter/imap-parameter.vala',
|
||||||
|
'imap/parameter/imap-quoted-string-parameter.vala',
|
||||||
|
'imap/parameter/imap-root-parameters.vala',
|
||||||
|
'imap/parameter/imap-string-parameter.vala',
|
||||||
|
'imap/parameter/imap-unquoted-string-parameter.vala',
|
||||||
|
'imap/response/imap-capabilities.vala',
|
||||||
|
'imap/response/imap-continuation-response.vala',
|
||||||
|
'imap/response/imap-fetch-data-decoder.vala',
|
||||||
|
'imap/response/imap-fetched-data.vala',
|
||||||
|
'imap/response/imap-mailbox-attribute.vala',
|
||||||
|
'imap/response/imap-mailbox-attributes.vala',
|
||||||
|
'imap/response/imap-mailbox-information.vala',
|
||||||
|
'imap/response/imap-namespace-response.vala',
|
||||||
|
'imap/response/imap-response-code.vala',
|
||||||
|
'imap/response/imap-response-code-type.vala',
|
||||||
|
'imap/response/imap-server-data.vala',
|
||||||
|
'imap/response/imap-server-data-type.vala',
|
||||||
|
'imap/response/imap-server-response.vala',
|
||||||
|
'imap/response/imap-status.vala',
|
||||||
|
'imap/response/imap-status-data.vala',
|
||||||
|
'imap/response/imap-status-response.vala',
|
||||||
|
'imap/transport/imap-client-connection.vala',
|
||||||
|
'imap/transport/imap-client-session-manager.vala',
|
||||||
|
'imap/transport/imap-client-session.vala',
|
||||||
|
'imap/transport/imap-deserializer.vala',
|
||||||
|
'imap/transport/imap-serializer.vala',
|
||||||
|
|
||||||
|
'imap-db/imap-db-account.vala',
|
||||||
|
'imap-db/imap-db-attachment.vala',
|
||||||
|
'imap-db/imap-db-contact.vala',
|
||||||
|
'imap-db/imap-db-database.vala',
|
||||||
|
'imap-db/imap-db-email-identifier.vala',
|
||||||
|
'imap-db/imap-db-folder.vala',
|
||||||
|
'imap-db/imap-db-gc.vala',
|
||||||
|
'imap-db/imap-db-message-addresses.vala',
|
||||||
|
'imap-db/imap-db-message-row.vala',
|
||||||
|
'imap-db/search/imap-db-search-email-identifier.vala',
|
||||||
|
'imap-db/search/imap-db-search-folder.vala',
|
||||||
|
'imap-db/search/imap-db-search-folder-properties.vala',
|
||||||
|
'imap-db/search/imap-db-search-folder-root.vala',
|
||||||
|
'imap-db/search/imap-db-search-query.vala',
|
||||||
|
'imap-db/search/imap-db-search-term.vala',
|
||||||
|
'imap-db/outbox/smtp-outbox-email-identifier.vala',
|
||||||
|
'imap-db/outbox/smtp-outbox-email-properties.vala',
|
||||||
|
'imap-db/outbox/smtp-outbox-folder.vala',
|
||||||
|
'imap-db/outbox/smtp-outbox-folder-properties.vala',
|
||||||
|
'imap-db/outbox/smtp-outbox-folder-root.vala',
|
||||||
|
|
||||||
|
'imap-engine/imap-engine.vala',
|
||||||
|
'imap-engine/imap-engine-account-synchronizer.vala',
|
||||||
|
'imap-engine/imap-engine-batch-operations.vala',
|
||||||
|
'imap-engine/imap-engine-contact-store.vala',
|
||||||
|
'imap-engine/imap-engine-email-flag-watcher.vala',
|
||||||
|
'imap-engine/imap-engine-email-prefetcher.vala',
|
||||||
|
'imap-engine/imap-engine-generic-account.vala',
|
||||||
|
'imap-engine/imap-engine-generic-folder.vala',
|
||||||
|
'imap-engine/imap-engine-minimal-folder.vala',
|
||||||
|
'imap-engine/imap-engine-replay-operation.vala',
|
||||||
|
'imap-engine/imap-engine-replay-queue.vala',
|
||||||
|
'imap-engine/imap-engine-revokable-move.vala',
|
||||||
|
'imap-engine/imap-engine-revokable-committed-move.vala',
|
||||||
|
'imap-engine/imap-engine-send-replay-operation.vala',
|
||||||
|
'imap-engine/gmail/imap-engine-gmail-account.vala',
|
||||||
|
'imap-engine/gmail/imap-engine-gmail-all-mail-folder.vala',
|
||||||
|
'imap-engine/gmail/imap-engine-gmail-drafts-folder.vala',
|
||||||
|
'imap-engine/gmail/imap-engine-gmail-folder.vala',
|
||||||
|
'imap-engine/gmail/imap-engine-gmail-search-folder.vala',
|
||||||
|
'imap-engine/gmail/imap-engine-gmail-spam-trash-folder.vala',
|
||||||
|
'imap-engine/other/imap-engine-other-account.vala',
|
||||||
|
'imap-engine/other/imap-engine-other-folder.vala',
|
||||||
|
'imap-engine/outlook/imap-engine-outlook-account.vala',
|
||||||
|
'imap-engine/outlook/imap-engine-outlook-folder.vala',
|
||||||
|
'imap-engine/outlook/imap-engine-outlook-drafts-folder.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-abstract-list-email.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-copy-email.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-create-email.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-empty-folder.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-fetch-email.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-list-email-by-id.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-list-email-by-sparse-id.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-mark-email.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-move-email-commit.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-move-email-prepare.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-move-email-revoke.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-remove-email.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-replay-append.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-replay-disconnect.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-replay-removal.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-server-search-email.vala',
|
||||||
|
'imap-engine/replay-ops/imap-engine-user-close.vala',
|
||||||
|
'imap-engine/yahoo/imap-engine-yahoo-account.vala',
|
||||||
|
'imap-engine/yahoo/imap-engine-yahoo-folder.vala',
|
||||||
|
|
||||||
|
'memory/memory-buffer.vala',
|
||||||
|
'memory/memory-byte-buffer.vala',
|
||||||
|
'memory/memory-empty-buffer.vala',
|
||||||
|
'memory/memory-file-buffer.vala',
|
||||||
|
'memory/memory-growable-buffer.vala',
|
||||||
|
'memory/memory-offset-buffer.vala',
|
||||||
|
'memory/memory-string-buffer.vala',
|
||||||
|
'memory/memory-unowned-byte-array-buffer.vala',
|
||||||
|
'memory/memory-unowned-bytes-buffer.vala',
|
||||||
|
'memory/memory-unowned-string-buffer.vala',
|
||||||
|
|
||||||
|
'mime/mime-content-disposition.vala',
|
||||||
|
'mime/mime-content-parameters.vala',
|
||||||
|
'mime/mime-content-type.vala',
|
||||||
|
'mime/mime-data-format.vala',
|
||||||
|
'mime/mime-disposition-type.vala',
|
||||||
|
'mime/mime-error.vala',
|
||||||
|
'mime/mime-multipart-subtype.vala',
|
||||||
|
|
||||||
|
'nonblocking/nonblocking-abstract-semaphore.vala',
|
||||||
|
'nonblocking/nonblocking-batch.vala',
|
||||||
|
'nonblocking/nonblocking-concurrent.vala',
|
||||||
|
'nonblocking/nonblocking-counting-semaphore.vala',
|
||||||
|
'nonblocking/nonblocking-error.vala',
|
||||||
|
'nonblocking/nonblocking-mailbox.vala',
|
||||||
|
'nonblocking/nonblocking-mutex.vala',
|
||||||
|
'nonblocking/nonblocking-reporting-semaphore.vala',
|
||||||
|
'nonblocking/nonblocking-variants.vala',
|
||||||
|
|
||||||
|
'rfc822/rfc822.vala',
|
||||||
|
'rfc822/rfc822-error.vala',
|
||||||
|
'rfc822/rfc822-gmime-filter-flowed.vala',
|
||||||
|
'rfc822/rfc822-gmime-filter-blockquotes.vala',
|
||||||
|
'rfc822/rfc822-gmime-filter-plain.vala',
|
||||||
|
'rfc822/rfc822-mailbox-addresses.vala',
|
||||||
|
'rfc822/rfc822-mailbox-address.vala',
|
||||||
|
'rfc822/rfc822-message.vala',
|
||||||
|
'rfc822/rfc822-message-data.vala',
|
||||||
|
'rfc822/rfc822-utils.vala',
|
||||||
|
|
||||||
|
'smtp/smtp-authenticator.vala',
|
||||||
|
'smtp/smtp-capabilities.vala',
|
||||||
|
'smtp/smtp-client-connection.vala',
|
||||||
|
'smtp/smtp-client-session.vala',
|
||||||
|
'smtp/smtp-command.vala',
|
||||||
|
'smtp/smtp-data-format.vala',
|
||||||
|
'smtp/smtp-error.vala',
|
||||||
|
'smtp/smtp-greeting.vala',
|
||||||
|
'smtp/smtp-login-authenticator.vala',
|
||||||
|
'smtp/smtp-plain-authenticator.vala',
|
||||||
|
'smtp/smtp-request.vala',
|
||||||
|
'smtp/smtp-response.vala',
|
||||||
|
'smtp/smtp-response-code.vala',
|
||||||
|
'smtp/smtp-response-line.vala',
|
||||||
|
|
||||||
|
'state/state-machine-descriptor.vala',
|
||||||
|
'state/state-machine.vala',
|
||||||
|
'state/state-mapping.vala',
|
||||||
|
|
||||||
|
'util/util-ascii.vala',
|
||||||
|
'util/util-collection.vala',
|
||||||
|
'util/util-connectivity-manager.vala',
|
||||||
|
'util/util-converter.vala',
|
||||||
|
'util/util-files.vala',
|
||||||
|
'util/util-generic-capabilities.vala',
|
||||||
|
'util/util-html.vala',
|
||||||
|
'util/util-idle-manager.vala',
|
||||||
|
'util/util-imap-utf7.vala',
|
||||||
|
'util/util-inet.vala',
|
||||||
|
'util/util-iterable.vala',
|
||||||
|
'util/util-js.vala',
|
||||||
|
'util/util-numeric.vala',
|
||||||
|
'util/util-object.vala',
|
||||||
|
'util/util-reference-semantics.vala',
|
||||||
|
'util/util-scheduler.vala',
|
||||||
|
'util/util-stream.vala',
|
||||||
|
'util/util-string.vala',
|
||||||
|
'util/util-synchronization.vala',
|
||||||
|
'util/util-time.vala',
|
||||||
|
'util/util-timeout-manager.vala',
|
||||||
|
'util/util-trillian.vala',
|
||||||
|
)
|
||||||
|
|
||||||
|
geary_engine_sources = [
|
||||||
|
geary_engine_vala_sources,
|
||||||
|
geary_version_vala,
|
||||||
|
]
|
||||||
|
|
||||||
|
geary_engine_dependencies = [
|
||||||
|
gee,
|
||||||
|
gio,
|
||||||
|
glib,
|
||||||
|
gmime,
|
||||||
|
libunwind,
|
||||||
|
libxml,
|
||||||
|
posix,
|
||||||
|
sqlite,
|
||||||
|
webkit2gtk,
|
||||||
|
]
|
||||||
|
|
||||||
|
geary_engine_lib = library('geary-engine',
|
||||||
|
geary_engine_sources,
|
||||||
|
dependencies: geary_engine_dependencies,
|
||||||
|
link_with: sqlite3_unicodesn_lib,
|
||||||
|
include_directories: config_h_dir,
|
||||||
|
vala_args: geary_vala_options,
|
||||||
|
c_args: geary_c_options,
|
||||||
|
)
|
||||||
|
|
||||||
|
geary_engine_dep = declare_dependency(
|
||||||
|
link_with: [
|
||||||
|
geary_engine_lib,
|
||||||
|
sqlite3_unicodesn_lib,
|
||||||
|
],
|
||||||
|
include_directories: include_directories('.'),
|
||||||
|
)
|
||||||
15
src/mailer/meson.build
Normal file
15
src/mailer/meson.build
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
geary_mailer_sources = files(
|
||||||
|
'main.vala',
|
||||||
|
)
|
||||||
|
|
||||||
|
geary_mailer_dependencies = [
|
||||||
|
gee,
|
||||||
|
gmime,
|
||||||
|
webkit2gtk,
|
||||||
|
geary_engine_dep,
|
||||||
|
]
|
||||||
|
|
||||||
|
geary_mailer = executable('geary-mailer',
|
||||||
|
geary_mailer_sources,
|
||||||
|
dependencies: geary_mailer_dependencies,
|
||||||
|
)
|
||||||
100
src/meson.build
Normal file
100
src/meson.build
Normal file
|
|
@ -0,0 +1,100 @@
|
||||||
|
# Version
|
||||||
|
geary_version_vala = configure_file(
|
||||||
|
input: 'geary-version.vala.in',
|
||||||
|
output: 'geary-version.vala',
|
||||||
|
configuration: conf,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Common vala options
|
||||||
|
geary_vala_options = [
|
||||||
|
'--target-glib=@0@'.format(target_glib),
|
||||||
|
'--thread',
|
||||||
|
'--enable-checking',
|
||||||
|
'--enable-deprecated',
|
||||||
|
]
|
||||||
|
|
||||||
|
if reference_tracking
|
||||||
|
geary_vala_options += [ '--define=REF_TRACKING' ]
|
||||||
|
endif
|
||||||
|
if not poodle
|
||||||
|
geary_vala_options += [ '--define=DISABLE_POODLE' ]
|
||||||
|
endif
|
||||||
|
|
||||||
|
geary_c_options = [
|
||||||
|
'-include', 'config.h',
|
||||||
|
# Vala causes a _lot_ of these to be emitted for otherwise valid
|
||||||
|
# code. Suppress them so we can actually see more useful warnings.
|
||||||
|
'-Wno-incompatible-pointer-types',
|
||||||
|
'-Wno-discarded-qualifiers',
|
||||||
|
]
|
||||||
|
|
||||||
|
subdir('sqlite3-unicodesn')
|
||||||
|
subdir('engine')
|
||||||
|
subdir('client')
|
||||||
|
subdir('console')
|
||||||
|
subdir('mailer')
|
||||||
|
|
||||||
|
# Web process extension library
|
||||||
|
geary_web_process = library('geary-web-process',
|
||||||
|
join_paths('client', 'web-process', 'web-process-extension.vala'),
|
||||||
|
dependencies: [
|
||||||
|
gee,
|
||||||
|
gmime,
|
||||||
|
webkit2gtk_web_extension ,
|
||||||
|
geary_engine_dep,
|
||||||
|
],
|
||||||
|
install: true,
|
||||||
|
install_dir: join_paths(libdir, meson.project_name(), 'web-extensions'),
|
||||||
|
)
|
||||||
|
|
||||||
|
# Now finally, make the geary executable
|
||||||
|
geary_bin_sources = files(
|
||||||
|
join_paths('client', 'application', 'main.vala'),
|
||||||
|
)
|
||||||
|
|
||||||
|
if local_gsettings
|
||||||
|
geary_bin_sources += geary_compiled_schema
|
||||||
|
endif
|
||||||
|
|
||||||
|
geary_bin_dependencies = [
|
||||||
|
libmath,
|
||||||
|
gee,
|
||||||
|
gtk,
|
||||||
|
gdk,
|
||||||
|
webkit2gtk,
|
||||||
|
libsoup,
|
||||||
|
gmime,
|
||||||
|
geary_client_dep,
|
||||||
|
geary_engine_dep,
|
||||||
|
]
|
||||||
|
|
||||||
|
geary_bin = executable('geary',
|
||||||
|
geary_bin_sources,
|
||||||
|
dependencies: geary_bin_dependencies,
|
||||||
|
vala_args: geary_vala_options,
|
||||||
|
c_args: geary_c_options,
|
||||||
|
install: true,
|
||||||
|
)
|
||||||
|
|
||||||
|
if enable_valadoc
|
||||||
|
geary_docs = custom_target('valadoc',
|
||||||
|
build_by_default: true,
|
||||||
|
input: geary_engine_sources,
|
||||||
|
output: 'docs',
|
||||||
|
command: [ valadoc,
|
||||||
|
'--verbose',
|
||||||
|
'--force',
|
||||||
|
'--deps',
|
||||||
|
'--package-name=@0@-@1@'.format(meson.project_name(), meson.project_version()),
|
||||||
|
'--package-version=@0@'.format(meson.project_version()),
|
||||||
|
'--target-glib=@0@'.format(target_glib),
|
||||||
|
'-b', meson.current_source_dir(),
|
||||||
|
'-o', '@OUTPUT@',
|
||||||
|
'--vapidir=@0@'.format(vapi_dir),
|
||||||
|
'--vapidir=@0@'.format(meson.current_build_dir()),
|
||||||
|
# Hopefully, Meson gets baked-in valadoc support, so we don't have to do this (see also https://github.com/mesonbuild/meson/issues/894)
|
||||||
|
'--pkg', 'glib-2.0', '--pkg', 'gio-2.0', '--pkg', 'gee-0.8', '--pkg', 'sqlite3', '--pkg', 'gmime-2.6', '--pkg', 'javascriptcore-4.0', '--pkg', 'libxml-2.0', '--pkg', 'libunwind',
|
||||||
|
'@INPUT@',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
endif
|
||||||
48
src/sqlite3-unicodesn/meson.build
Normal file
48
src/sqlite3-unicodesn/meson.build
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
sqlite3_unicodesn_sources = [
|
||||||
|
'fts3_unicode2.c',
|
||||||
|
'fts3_unicodesn.c',
|
||||||
|
'static.c',
|
||||||
|
|
||||||
|
join_paths('libstemmer_c', 'runtime', 'api_sq3.c'),
|
||||||
|
join_paths('libstemmer_c', 'runtime', 'utilities_sq3.c'),
|
||||||
|
]
|
||||||
|
|
||||||
|
sqlite3_unicodesn_c_flags = [
|
||||||
|
'-DSQLITE_ENABLE_FTS4',
|
||||||
|
'-DSQLITE_ENABLE_FTS4_UNICODE61',
|
||||||
|
]
|
||||||
|
|
||||||
|
sqlite3_unicodesn_stemmers = [
|
||||||
|
'danish',
|
||||||
|
'dutch',
|
||||||
|
'english',
|
||||||
|
'finnish',
|
||||||
|
'french',
|
||||||
|
'german',
|
||||||
|
'hungarian',
|
||||||
|
'italian',
|
||||||
|
'norwegian',
|
||||||
|
'portuguese',
|
||||||
|
'romanian',
|
||||||
|
'russian',
|
||||||
|
'spanish',
|
||||||
|
'swedish',
|
||||||
|
'turkish',
|
||||||
|
]
|
||||||
|
|
||||||
|
foreach stemmer: sqlite3_unicodesn_stemmers
|
||||||
|
sqlite3_unicodesn_sources += 'libstemmer_c/src_c/stem_UTF_8_@0@.c'.format(stemmer)
|
||||||
|
sqlite3_unicodesn_c_flags += '-DWITH_STEMMER_@0@'.format(stemmer)
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
sqlite3_unicodesn_includes = [
|
||||||
|
include_directories('libstemmer_c/runtime'),
|
||||||
|
include_directories('libstemmer_c/src_c'),
|
||||||
|
]
|
||||||
|
|
||||||
|
sqlite3_unicodesn_lib = library('sqlite3-unicodesn',
|
||||||
|
sqlite3_unicodesn_sources,
|
||||||
|
dependencies: sqlite,
|
||||||
|
c_args: sqlite3_unicodesn_c_flags,
|
||||||
|
include_directories: sqlite3_unicodesn_includes,
|
||||||
|
)
|
||||||
47
test/meson.build
Normal file
47
test/meson.build
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
geary_test_sources = [
|
||||||
|
'main.vala',
|
||||||
|
'testcase.vala', # Based on same file in libgee, courtesy Julien Peeters
|
||||||
|
|
||||||
|
'engine/api/geary-attachment-test.vala',
|
||||||
|
'engine/api/geary-engine-test.vala',
|
||||||
|
'engine/imap/command/imap-create-command-test.vala',
|
||||||
|
'engine/imap/response/imap-namespace-response-test.vala',
|
||||||
|
'engine/imap/transport/imap-deserializer-test.vala',
|
||||||
|
'engine/mime-content-type-test.vala',
|
||||||
|
'engine/rfc822-mailbox-address-test.vala',
|
||||||
|
'engine/rfc822-message-test.vala',
|
||||||
|
'engine/rfc822-message-data-test.vala',
|
||||||
|
'engine/rfc822-utils-test.vala',
|
||||||
|
'engine/util-html-test.vala',
|
||||||
|
'engine/util-idle-manager-test.vala',
|
||||||
|
'engine/util-inet-test.vala',
|
||||||
|
'engine/util-js-test.vala',
|
||||||
|
'engine/util-timeout-manager-test.vala',
|
||||||
|
|
||||||
|
'client/application/geary-configuration-test.vala',
|
||||||
|
'client/components/client-web-view-test.vala',
|
||||||
|
'client/components/client-web-view-test-case.vala',
|
||||||
|
'client/composer/composer-web-view-test.vala',
|
||||||
|
|
||||||
|
'js/client-page-state-test.vala',
|
||||||
|
'js/composer-page-state-test.vala',
|
||||||
|
'js/conversation-page-state-test.vala',
|
||||||
|
]
|
||||||
|
|
||||||
|
geary_test_dependencies = [
|
||||||
|
gee,
|
||||||
|
gtk,
|
||||||
|
libsoup,
|
||||||
|
gmime,
|
||||||
|
webkit2gtk,
|
||||||
|
geary_engine_dep,
|
||||||
|
geary_client_dep,
|
||||||
|
]
|
||||||
|
|
||||||
|
geary_test_bin = executable('geary-test',
|
||||||
|
geary_test_sources,
|
||||||
|
dependencies: geary_test_dependencies,
|
||||||
|
c_args: geary_c_options,
|
||||||
|
include_directories: config_h_dir,
|
||||||
|
)
|
||||||
|
test('Geary test suite', geary_test_bin)
|
||||||
3
ui/meson.build
Normal file
3
ui/meson.build
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
geary_resources = gnome.compile_resources('org.gnome.Geary',
|
||||||
|
files('org.gnome.Geary.gresource.xml'),
|
||||||
|
)
|
||||||
41
ui/org.gnome.Geary.gresource.xml
Normal file
41
ui/org.gnome.Geary.gresource.xml
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<gresources>
|
||||||
|
<gresource prefix="/org/gnome/Geary">
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">account_cannot_remove.glade</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">account_list.glade</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">account_spinner.glade</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">certificate_warning_dialog.glade</file>
|
||||||
|
<file compressed="true">client-web-view.js</file>
|
||||||
|
<file compressed="true">client-web-view-allow-remote-images.js</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">composer-headerbar.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">composer-link-popover.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">composer-menus.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">composer-widget.ui</file>
|
||||||
|
<file compressed="true">composer-web-view.css</file>
|
||||||
|
<file compressed="true">composer-web-view.js</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">conversation-email.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">conversation-email-attachment-view.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">conversation-email-menus.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">conversation-message.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">conversation-message-menus.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">conversation-viewer.ui</file>
|
||||||
|
<file compressed="true">conversation-web-view.css</file>
|
||||||
|
<file compressed="true">conversation-web-view.js</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">edit_alternate_emails.glade</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">empty-placeholder.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">find_bar.glade</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">folder-popover.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">gtk/help-overlay.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">gtk/menus.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">login.glade</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">main-toolbar.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">main-toolbar-menus.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">main-window.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">main-window-info-bar.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">password-dialog.glade</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">preferences-dialog.ui</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">remove_confirm.glade</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">upgrade_dialog.glade</file>
|
||||||
|
<file compressed="true">geary.css</file>
|
||||||
|
</gresource>
|
||||||
|
</gresources>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue