From be7e0c2d5689d962fd2424e60ed21062d0674e95 Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Mon, 11 Sep 2023 23:03:51 +0200 Subject: [PATCH] Backport Meson build support Meson builds have better integration with Vala. For example, Meson handles incremental compilation of Vala source files better than CMake. Limitations: As done with CMake builds, gresource.xml should be compiled. Now, it has been generated from a CMake build and manually copied into the source tree. --- libdino/CMakeLists.txt | 9 +- libdino/meson.build | 82 ++++++++++++++++++ libdino/src/application.vala | 1 - libdino/src/plugin/registry.vala | 16 ++-- libdino/version.py | 36 ++++++++ main/CMakeLists.txt | 2 +- main/data/gresource.xml | 1 + main/meson.build | 107 ++++++++++++++++++++++++ meson.build | 29 +++++++ meson_options.txt | 1 + plugins/http-files/meson.build | 22 +++++ plugins/meson.build | 5 ++ plugins/signal-protocol/meson.build | 26 ++++++ qlite/meson.build | 22 +++++ xmpp-vala/meson.build | 124 ++++++++++++++++++++++++++++ 15 files changed, 472 insertions(+), 11 deletions(-) create mode 100644 libdino/meson.build create mode 100644 libdino/version.py create mode 100644 main/data/gresource.xml create mode 100644 main/meson.build create mode 100644 meson.build create mode 100644 meson_options.txt create mode 100644 plugins/http-files/meson.build create mode 100644 plugins/meson.build create mode 100644 plugins/signal-protocol/meson.build create mode 100644 qlite/meson.build create mode 100644 xmpp-vala/meson.build diff --git a/libdino/CMakeLists.txt b/libdino/CMakeLists.txt index 6c120346..67979ae0 100644 --- a/libdino/CMakeLists.txt +++ b/libdino/CMakeLists.txt @@ -6,8 +6,15 @@ find_packages(LIBDINO_PACKAGES REQUIRED GObject ) +file(WRITE ${CMAKE_CURRENT_LIST_DIR}/version.vala + "namespace Dino { + public const string VERSION = \"v${PROJECT_VERSION}\"; + }" +) + vala_precompile(LIBDINO_VALA_C SOURCES + version.vala src/application.vala src/dbus/login1.vala @@ -90,7 +97,7 @@ DEPENDS ${CMAKE_BINARY_DIR}/exports/dino_i18n.h ) -add_definitions(${VALA_CFLAGS} -DDINO_SYSTEM_PLUGIN_DIR="${PLUGIN_INSTALL_DIR}" -DDINO_SYSTEM_LIBDIR_NAME="${LIBDIR_NAME}" -DG_LOG_DOMAIN="libdino" -DDINO_VERSION=\"${PROJECT_VERSION}\") +add_definitions(${VALA_CFLAGS} -DDINO_SYSTEM_PLUGIN_DIR="${PLUGIN_INSTALL_DIR}" -DDINO_SYSTEM_LIBDIR_NAME="${LIBDIR_NAME}" -DG_LOG_DOMAIN="libdino") add_library(libdino SHARED ${LIBDINO_VALA_C} ${CMAKE_BINARY_DIR}/exports/dino_i18n.h) add_dependencies(libdino dino-vapi) target_link_libraries(libdino xmpp-vala qlite ${LIBDINO_PACKAGES} m) diff --git a/libdino/meson.build b/libdino/meson.build new file mode 100644 index 00000000..2521bccd --- /dev/null +++ b/libdino/meson.build @@ -0,0 +1,82 @@ +# version_vala +dot_git = meson.current_source_dir() / '../.git' +version_file = meson.current_source_dir() / '../VERSION' +command = [prog_python, files('version.py'), version_file, '@OUTPUT@', '--git-repo', meson.current_source_dir()] +if prog_git.found() + command += ['--git', prog_git] +endif +depend_files = [] +if fs.exists(dot_git) + depend_files += [dot_git] +endif +if fs.exists(version_file) + depend_files += [version_file] +endif +version_vala = custom_target('libdino_version_vala', command: command, output: 'version.vala', depend_files: depend_files) + +# libdino +dependencies = [ + dep_gdk_pixbuf, + dep_gee, + dep_gio, + dep_glib, + dep_gmodule, + dep_qlite, + dep_xmpp_vala +] +sources = files( + 'src/application.vala', + 'src/dbus/login1.vala', + 'src/dbus/notifications.vala', + 'src/dbus/upower.vala', + 'src/entity/account.vala', + 'src/entity/call.vala', + 'src/entity/conversation.vala', + 'src/entity/encryption.vala', + 'src/entity/file_transfer.vala', + 'src/entity/message.vala', + 'src/entity/settings.vala', + 'src/plugin/interfaces.vala', + 'src/plugin/loader.vala', + 'src/plugin/registry.vala', + 'src/service/avatar_manager.vala', + 'src/service/blocking_manager.vala', + 'src/service/call_store.vala', + 'src/service/call_state.vala', + 'src/service/call_peer_state.vala', + 'src/service/calls.vala', + 'src/service/chat_interaction.vala', + 'src/service/connection_manager.vala', + 'src/service/content_item_store.vala', + 'src/service/conversation_manager.vala', + 'src/service/counterpart_interaction_manager.vala', + 'src/service/database.vala', + 'src/service/entity_capabilities_storage.vala', + 'src/service/entity_info.vala', + 'src/service/file_manager.vala', + 'src/service/file_transfer_storage.vala', + 'src/service/jingle_file_transfers.vala', + 'src/service/message_correction.vala', + 'src/service/message_processor.vala', + 'src/service/message_storage.vala', + 'src/service/module_manager.vala', + 'src/service/muc_manager.vala', + 'src/service/notification_events.vala', + 'src/service/presence_manager.vala', + 'src/service/registration.vala', + 'src/service/roster_manager.vala', + 'src/service/search_processor.vala', + 'src/service/stream_interactor.vala', + 'src/service/util.vala', + 'src/util/display_name.vala', + 'src/util/util.vala', + 'src/util/weak_map.vala', +) +sources += [version_vala] +c_args = [ + '-DDINO_SYSTEM_LIBDIR_NAME="@0@"'.format(get_option('prefix') / get_option('libdir')), + '-DDINO_SYSTEM_PLUGIN_DIR="@0@"'.format(get_option('prefix') / get_option('plugindir')), + '-DG_LOG_DOMAIN="libdino"', +] +lib_dino = library('dino', sources, c_args: c_args, include_directories: include_directories('src'), dependencies: dependencies) +dep_dino = declare_dependency(link_with: lib_dino, include_directories: include_directories('.', 'src')) diff --git a/libdino/src/application.vala b/libdino/src/application.vala index aaec4a11..048a88ff 100644 --- a/libdino/src/application.vala +++ b/libdino/src/application.vala @@ -2,7 +2,6 @@ using Dino.Entities; namespace Dino { -extern const string VERSION; public string get_version() { return VERSION; } public string get_short_version() { if (!VERSION.contains("~")) return VERSION; diff --git a/libdino/src/plugin/registry.vala b/libdino/src/plugin/registry.vala index e28c4de7..c75fbefe 100644 --- a/libdino/src/plugin/registry.vala +++ b/libdino/src/plugin/registry.vala @@ -3,14 +3,14 @@ using Gee; namespace Dino.Plugins { public class Registry { - internal ArrayList encryption_list_entries = new ArrayList(); - internal HashMap call_encryption_entries = new HashMap(); - internal ArrayList account_settings_entries = new ArrayList(); - internal ArrayList contact_details_entries = new ArrayList(); - internal Map text_commands = new HashMap(); - internal Gee.List conversation_addition_populators = new ArrayList(); - internal Gee.List notification_populators = new ArrayList(); - internal Gee.Collection conversation_titlebar_entries = new Gee.TreeSet((a, b) => { + public ArrayList encryption_list_entries = new ArrayList(); + public HashMap call_encryption_entries = new HashMap(); + public ArrayList account_settings_entries = new ArrayList(); + public ArrayList contact_details_entries = new ArrayList(); + public Map text_commands = new HashMap(); + public Gee.List conversation_addition_populators = new ArrayList(); + public Gee.List notification_populators = new ArrayList(); + public Gee.Collection conversation_titlebar_entries = new Gee.TreeSet((a, b) => { return (int)(a.order - b.order); }); public VideoCallPlugin? video_call_plugin; diff --git a/libdino/version.py b/libdino/version.py new file mode 100644 index 00000000..d34db6a8 --- /dev/null +++ b/libdino/version.py @@ -0,0 +1,36 @@ +import argparse +import subprocess +VERSION_VALA = """\ +namespace Dino {{ + +public const string VERSION = "{}"; + +}} +""" + +def compute_version(file, git_repo, git): + try: + with open(file) as f: + return f.read().strip() + except FileNotFoundError: + pass + return subprocess.check_output([git, "describe", "--tags"], cwd=git_repo, text=True).strip() + +def generate_version_vala(version): + if "\\" in version or "\"" in version: + raise ValueError(f"invalid version {version!r}") + return VERSION_VALA.format(version) + +def main(): + p = argparse.ArgumentParser(description="Compute the Dino version") + p.add_argument("--git-repo", help="Path to checked out git repository") + p.add_argument("--git", help="Path to git executable", default="git") + p.add_argument("version_file", metavar="VERSION_FILE", help="Use this file's contents as version if the file exists") + p.add_argument("output", metavar="OUTPUT", help="Vala file to output to") + args = p.parse_args() + out = generate_version_vala(compute_version(args.version_file, args.git_repo, args.git)) + with open(args.output, "w") as f: + f.write(out) + +if __name__ == "__main__": + main() diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 9d0f6de5..046b4fb8 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -214,7 +214,7 @@ OPTIONS ${MAIN_EXTRA_OPTIONS} ) -add_definitions(${VALA_CFLAGS} -DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\" -DLOCALE_INSTALL_DIR=\"${LOCALE_INSTALL_DIR}\" -DDINO_VERSION=\"${PROJECT_VERSION}\") +add_definitions(${VALA_CFLAGS} -DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\" -DLOCALE_INSTALL_DIR=\"${LOCALE_INSTALL_DIR}\") add_executable(dino ${MAIN_VALA_C} ${MAIN_GRESOURCES_TARGET} src/emojichooser.c) add_dependencies(dino ${GETTEXT_PACKAGE}-translations) target_include_directories(dino PRIVATE src) diff --git a/main/data/gresource.xml b/main/data/gresource.xml new file mode 100644 index 00000000..f802925a --- /dev/null +++ b/main/data/gresource.xml @@ -0,0 +1 @@ +icons/dino-account-plus-symbolic.svgicons/dino-changes-allowed-symbolic.svgicons/dino-changes-prevent-symbolic.svgicons/dino-conversation-list-placeholder-arrow.svgicons/dino-double-tick-symbolic.svgicons/dino-emoticon-symbolic.svgicons/dino-qr-code-symbolic.svgicons/dino-security-high-symbolic.svgicons/dino-microphone-off-symbolic.svgicons/dino-microphone-symbolic.svgicons/dino-party-popper-symbolic.svgicons/dino-phone-hangup-symbolic.svgicons/dino-phone-in-talk-symbolic.svgicons/dino-phone-missed-symbolic.svgicons/dino-phone-ring-symbolic.svgicons/dino-phone-symbolic.svgicons/dino-status-away.svgicons/dino-status-chat.svgicons/dino-status-dnd.svgicons/dino-status-online.svgicons/im.dino.Dino.svgicons/im.dino.Dino-symbolic.svgicons/dino-tick-symbolic.svgicons/dino-video-off-symbolic.svgicons/dino-video-symbolic.svgicons/dino-device-desktop-symbolic.svgicons/dino-device-phone-symbolic.svgicons/dino-file-document-symbolic.svgicons/dino-file-download-symbolic.svgicons/dino-file-image-symbolic.svgicons/dino-file-music-symbolic.svgicons/dino-file-symbolic.svgicons/dino-file-table-symbolic.svgicons/dino-file-video-symbolic.svgadd_conversation/add_contact_dialog.uiadd_conversation/add_groupchat_dialog.uiadd_conversation/conference_details_fragment.uiadd_conversation/list_row.uiadd_conversation/select_jid_fragment.uicall_widget.uichat_input.uicontact_details_dialog.uiconversation_list_titlebar.uiconversation_list_titlebar_csd.uiconversation_row.uiconversation_view.uifile_default_widget.uifile_send_overlay.uiemojichooser.uiglobal_search.uiconversation_content_view/item_metadata_header.uiconversation_content_view/view.uimanage_accounts/account_row.uimanage_accounts/add_account_dialog.uimanage_accounts/dialog.uimenu_add.uimenu_app.uimenu_conversation.uimenu_encryption.uimessage_item_widget_edit_mode.uioccupant_list.uioccupant_list_item.uisearch_autocomplete.uisettings_dialog.uishortcuts.uiunified_main_content.uiunified_window_placeholder.uitheme.css \ No newline at end of file diff --git a/main/meson.build b/main/meson.build new file mode 100644 index 00000000..61fb0387 --- /dev/null +++ b/main/meson.build @@ -0,0 +1,107 @@ +dependencies = [ + dep_dino, + dep_gee, + dep_glib, + dep_gmodule, + dep_gspell, + dep_gtk3, + dep_icu_uc, + dep_libhandy, + dep_m, + dep_qlite, + dep_xmpp_vala, +] +sources = files( + 'src/emojichooser.c', + 'src/main.vala', + 'src/ui/add_conversation/add_conference_dialog.vala', + 'src/ui/add_conversation/add_contact_dialog.vala', + 'src/ui/add_conversation/add_groupchat_dialog.vala', + 'src/ui/add_conversation/conference_details_fragment.vala', + 'src/ui/add_conversation/conference_list.vala', + 'src/ui/add_conversation/list_row.vala', + 'src/ui/add_conversation/roster_list.vala', + 'src/ui/add_conversation/select_contact_dialog.vala', + 'src/ui/add_conversation/select_jid_fragment.vala', + 'src/ui/avatar_drawer.vala', + 'src/ui/avatar_image.vala', + 'src/ui/application.vala', + 'src/ui/call_window/audio_settings_popover.vala', + 'src/ui/call_window/call_bottom_bar.vala', + 'src/ui/call_window/call_connection_details_window.vala', + 'src/ui/call_window/call_encryption_button.vala', + 'src/ui/call_window/call_window.vala', + 'src/ui/call_window/call_window_controller.vala', + 'src/ui/call_window/participant_widget.vala', + 'src/ui/call_window/video_settings_popover.vala', + 'src/ui/chat_input/chat_input_controller.vala', + 'src/ui/chat_input/chat_text_view.vala', + 'src/ui/chat_input/edit_history.vala', + 'src/ui/chat_input/encryption_button.vala', + 'src/ui/chat_input/occupants_tab_completer.vala', + 'src/ui/chat_input/smiley_converter.vala', + 'src/ui/chat_input/spell_checker.vala', + 'src/ui/chat_input/view.vala', + 'src/ui/contact_details/blocking_provider.vala', + 'src/ui/contact_details/dialog.vala', + 'src/ui/contact_details/muc_config_form_provider.vala', + 'src/ui/contact_details/permissions_provider.vala', + 'src/ui/contact_details/settings_provider.vala', + 'src/ui/conversation_content_view/call_widget.vala', + 'src/ui/conversation_content_view/chat_state_populator.vala', + 'src/ui/conversation_content_view/content_populator.vala', + 'src/ui/conversation_content_view/conversation_item_skeleton.vala', + 'src/ui/conversation_content_view/conversation_view.vala', + 'src/ui/conversation_content_view/date_separator_populator.vala', + 'src/ui/conversation_content_view/file_default_widget.vala', + 'src/ui/conversation_content_view/file_image_widget.vala', + 'src/ui/conversation_content_view/file_widget.vala', + 'src/ui/conversation_content_view/message_widget.vala', + 'src/ui/conversation_content_view/subscription_notification.vala', + 'src/ui/conversation_list_titlebar.vala', + 'src/ui/conversation_selector/conversation_selector.vala', + 'src/ui/conversation_selector/conversation_selector_row.vala', + 'src/ui/conversation_titlebar/call_entry.vala', + 'src/ui/conversation_titlebar/conversation_titlebar.vala', + 'src/ui/conversation_titlebar/menu_entry.vala', + 'src/ui/conversation_titlebar/occupants_entry.vala', + 'src/ui/conversation_titlebar/search_entry.vala', + 'src/ui/conversation_view.vala', + 'src/ui/conversation_view_controller.vala', + 'src/ui/file_send_overlay.vala', + 'src/ui/global_search.vala', + 'src/ui/main_window.vala', + 'src/ui/main_window_controller.vala', + 'src/ui/manage_accounts/account_row.vala', + 'src/ui/manage_accounts/add_account_dialog.vala', + 'src/ui/manage_accounts/dialog.vala', + 'src/ui/notifier_freedesktop.vala', + 'src/ui/notifier_gnotifications.vala', + 'src/ui/occupant_menu/list.vala', + 'src/ui/occupant_menu/list_row.vala', + 'src/ui/occupant_menu/view.vala', + 'src/ui/settings_dialog.vala', + 'src/ui/util/accounts_combo_box.vala', + 'src/ui/util/config.vala', + 'src/ui/util/data_forms.vala', + 'src/ui/util/helper.vala', + 'src/ui/util/label_hybrid.vala', + 'src/ui/util/preview_file_chooser_native.vala', + 'src/ui/util/scaling_image.vala', + 'src/ui/util/size_request_box.vala', + 'src/ui/util/sizing_bin.vala', + 'vapi/emojichooser.vapi', +) + +sources += import('gnome').compile_resources( + 'dino-resources', + 'data/gresource.xml', + source_dir: 'data', +) + +c_args = [ + '-DG_LOG_DOMAIN="dino"', + '-DGETTEXT_PACKAGE="dino"', + '-DLOCALE_INSTALL_DIR="@0@"'.format(get_option('prefix') / get_option('localedir')), +] +exe_dino = executable('dino', sources, include_directories: 'src', c_args: c_args, vala_args: ['--vapidir', meson.current_source_dir() / 'vapi'], dependencies: dependencies) diff --git a/meson.build b/meson.build new file mode 100644 index 00000000..444335e1 --- /dev/null +++ b/meson.build @@ -0,0 +1,29 @@ +project('dino', 'vala', 'c') + +fs = import('fs') +python = import('python') + +dep_gcrypt = dependency('libgcrypt') +dep_gdk_pixbuf = dependency('gdk-pixbuf-2.0') +dep_gee = dependency('gee-0.8') +dep_gio = dependency('gio-2.0') +dep_glib = dependency('glib-2.0') +dep_gmodule = dependency('gmodule-2.0') +dep_gspell = dependency('gspell-1') +dep_gtk3 = dependency('gtk+-3.0') +dep_icu_uc = dependency('icu-uc') +dep_libhandy = dependency('libhandy-1') +dep_m = meson.get_compiler('c').find_library('m', required: false) +dep_sqlite3 = dependency('sqlite3', version: '>=3.24') +dep_soup2 = dependency('libsoup-2.4') +dep_soup3 = dependency('libsoup-3.0') +dep_libsignal_protocol_c = dependency('libsignal-protocol-c', version: '>=2.3.2') + +prog_git = find_program('git', required: false) +prog_python = python.find_installation() + +subdir('qlite') +subdir('xmpp-vala') +subdir('libdino') +subdir('main') +subdir('plugins') diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 00000000..6e47b7c8 --- /dev/null +++ b/meson_options.txt @@ -0,0 +1 @@ +option('plugindir', type: 'string', value: 'lib/dino/plugins', description: 'Plugin directory for Dino plugins') diff --git a/plugins/http-files/meson.build b/plugins/http-files/meson.build new file mode 100644 index 00000000..6f490880 --- /dev/null +++ b/plugins/http-files/meson.build @@ -0,0 +1,22 @@ +dependencies = [ + dep_gee, + dep_glib, + dep_gtk3, + dep_gmodule, + dep_soup2, + dep_dino, + dep_soup2, +] + +sources = files( + 'src/file_provider.vala', + 'src/file_sender.vala', + 'src/plugin.vala', + 'src/register_plugin.vala', +) + +lib_http_files = library('http-files', + sources, + c_args: c_args, + include_directories: include_directories('src'), + dependencies: dependencies) diff --git a/plugins/meson.build b/plugins/meson.build new file mode 100644 index 00000000..189d7034 --- /dev/null +++ b/plugins/meson.build @@ -0,0 +1,5 @@ +subdir('signal-protocol') +#subdir('gpgme-vala') +subdir('http-files') +#subdir('ice') +#subdir('rtp') diff --git a/plugins/signal-protocol/meson.build b/plugins/signal-protocol/meson.build new file mode 100644 index 00000000..b804e451 --- /dev/null +++ b/plugins/signal-protocol/meson.build @@ -0,0 +1,26 @@ +dependencies = [ + dep_gee, + dep_glib, + dep_gcrypt, + dep_dino, + dep_libsignal_protocol_c, +] + +sources = files( + 'src/context.vala', + 'src/simple_iks.vala', + 'src/simple_ss.vala', + 'src/simple_pks.vala', + 'src/simple_spks.vala', + 'src/store.vala', + 'src/util.vala', + 'vapi/signal-protocol-public.vapi', + 'vapi/signal-protocol-native.vapi', +) + +lib_signal_protocol = library('signal-protocol-vala', + sources, + c_args: c_args, + vala_args: ['--vapidir', meson.current_source_dir() / 'vapi'], + include_directories: include_directories('src'), + dependencies: dependencies) diff --git a/qlite/meson.build b/qlite/meson.build new file mode 100644 index 00000000..714a4224 --- /dev/null +++ b/qlite/meson.build @@ -0,0 +1,22 @@ +dependencies = [ + dep_gee, + dep_glib, + dep_sqlite3, +] +sources = files( + 'src/column.vala', + 'src/database.vala', + 'src/delete_builder.vala', + 'src/insert_builder.vala', + 'src/query_builder.vala', + 'src/row.vala', + 'src/statement_builder.vala', + 'src/table.vala', + 'src/update_builder.vala', + 'src/upsert_builder.vala', +) +c_args = [ + '-DG_LOG_DOMAIN="qlite"', +] +lib_qlite = library('qlite', sources, c_args: c_args, vala_args: ['--vapidir', meson.current_source_dir() / 'vapi'], dependencies: dependencies) +dep_qlite = declare_dependency(link_with: lib_qlite, include_directories: include_directories('.')) diff --git a/xmpp-vala/meson.build b/xmpp-vala/meson.build new file mode 100644 index 00000000..7753640d --- /dev/null +++ b/xmpp-vala/meson.build @@ -0,0 +1,124 @@ +dependencies = [ + dep_gdk_pixbuf, + dep_gee, + dep_gio, + dep_glib, + dep_icu_uc, + dep_m, +] +sources = files( + 'src/core/direct_tls_xmpp_stream.vala', + 'src/core/io_xmpp_stream.vala', + 'src/core/module_flag.vala', + 'src/core/namespace_state.vala', + 'src/core/stanza_attribute.vala', + 'src/core/stanza_node.vala', + 'src/core/stanza_reader.vala', + 'src/core/stanza_writer.vala', + 'src/core/starttls_xmpp_stream.vala', + 'src/core/stream_connect.vala', + 'src/core/tls_xmpp_stream.vala', + 'src/core/xmpp_log.vala', + 'src/core/xmpp_stream.vala', + 'src/glib_fixes.vapi', + 'src/module/bind.vala', + 'src/module/bookmarks_provider.vala', + 'src/module/conference.vala', + 'src/module/iq/module.vala', + 'src/module/iq/stanza.vala', + 'src/module/jid.vala', + 'src/module/message/module.vala', + 'src/module/message/stanza.vala', + 'src/module/presence/flag.vala', + 'src/module/presence/module.vala', + 'src/module/presence/stanza.vala', + 'src/module/roster/flag.vala', + 'src/module/roster/item.vala', + 'src/module/roster/module.vala', + 'src/module/roster/versioning_module.vala', + 'src/module/sasl.vala', + 'src/module/session.vala', + 'src/module/stanza.vala', + 'src/module/stanza_error.vala', + 'src/module/stream_error.vala', + 'src/module/util.vala', + 'src/module/xep/0004_data_forms.vala', + 'src/module/xep/0030_service_discovery/flag.vala', + 'src/module/xep/0030_service_discovery/identity.vala', + 'src/module/xep/0030_service_discovery/info_result.vala', + 'src/module/xep/0030_service_discovery/item.vala', + 'src/module/xep/0030_service_discovery/items_result.vala', + 'src/module/xep/0030_service_discovery/module.vala', + 'src/module/xep/0045_muc/flag.vala', + 'src/module/xep/0045_muc/module.vala', + 'src/module/xep/0045_muc/status_code.vala', + 'src/module/xep/0047_in_band_bytestreams.vala', + 'src/module/xep/0048_bookmarks.vala', + 'src/module/xep/0048_conference.vala', + 'src/module/xep/0049_private_xml_storage.vala', + 'src/module/xep/0054_vcard/module.vala', + 'src/module/xep/0060_pubsub.vala', + 'src/module/xep/0065_socks5_bytestreams.vala', + 'src/module/xep/0066_out_of_band_data.vala', + 'src/module/xep/0077_in_band_registration.vala', + 'src/module/xep/0082_date_time_profiles.vala', + 'src/module/xep/0084_user_avatars.vala', + 'src/module/xep/0085_chat_state_notifications.vala', + 'src/module/xep/0115_entity_capabilities.vala', + 'src/module/xep/0166_jingle/component.vala', + 'src/module/xep/0166_jingle/content.vala', + 'src/module/xep/0166_jingle/content_description.vala', + 'src/module/xep/0166_jingle/content_node.vala', + 'src/module/xep/0166_jingle/content_security.vala', + 'src/module/xep/0166_jingle/content_transport.vala', + 'src/module/xep/0166_jingle/jingle_flag.vala', + 'src/module/xep/0166_jingle/jingle_module.vala', + 'src/module/xep/0166_jingle/jingle_structs.vala', + 'src/module/xep/0166_jingle/reason_element.vala', + 'src/module/xep/0166_jingle/session.vala', + 'src/module/xep/0166_jingle/session_info.vala', + 'src/module/xep/0167_jingle_rtp/content_parameters.vala', + 'src/module/xep/0167_jingle_rtp/content_type.vala', + 'src/module/xep/0167_jingle_rtp/jingle_rtp_module.vala', + 'src/module/xep/0167_jingle_rtp/payload_type.vala', + 'src/module/xep/0167_jingle_rtp/session_info_type.vala', + 'src/module/xep/0167_jingle_rtp/stream.vala', + 'src/module/xep/0176_jingle_ice_udp/candidate.vala', + 'src/module/xep/0176_jingle_ice_udp/jingle_ice_udp_module.vala', + 'src/module/xep/0176_jingle_ice_udp/transport_parameters.vala', + 'src/module/xep/0177_jingle_raw_udp.vala', + 'src/module/xep/0184_message_delivery_receipts.vala', + 'src/module/xep/0191_blocking_command.vala', + 'src/module/xep/0198_stream_management.vala', + 'src/module/xep/0199_ping.vala', + 'src/module/xep/0203_delayed_delivery.vala', + 'src/module/xep/0215_external_service_discovery.vala', + 'src/module/xep/0234_jingle_file_transfer.vala', + 'src/module/xep/0249_direct_muc_invitations.vala', + 'src/module/xep/0260_jingle_socks5_bytestreams.vala', + 'src/module/xep/0261_jingle_in_band_bytestreams.vala', + 'src/module/xep/0272_muji.vala', + 'src/module/xep/0280_message_carbons.vala', + 'src/module/xep/0298_coin.vala', + 'src/module/xep/0308_last_message_correction.vala', + 'src/module/xep/0313_message_archive_management.vala', + 'src/module/xep/0333_chat_markers.vala', + 'src/module/xep/0334_message_processing_hints.vala', + 'src/module/xep/0353_call_invite_message.vala', + 'src/module/xep/0353_jingle_message_initiation.vala', + 'src/module/xep/0359_unique_stable_stanza_ids.vala', + 'src/module/xep/0363_http_file_upload.vala', + 'src/module/xep/0380_explicit_encryption.vala', + 'src/module/xep/0384_omemo/omemo_decryptor.vala', + 'src/module/xep/0384_omemo/omemo_encryptor.vala', + 'src/module/xep/0391_jingle_encrypted_transports.vala', + 'src/module/xep/0402_bookmarks2.vala', + 'src/module/xep/0410_muc_self_ping.vala', + 'src/module/xep/pixbuf_storage.vala', + 'src/util.vala', +) +c_args = [ + '-DG_LOG_DOMAIN="xmpp-vala"', +] +lib_xmpp_vala = library('xmpp-vala', sources, c_args: c_args, vala_args: ['--vapidir', meson.current_source_dir() / 'vapi'], dependencies: dependencies) +dep_xmpp_vala = declare_dependency(link_with: lib_xmpp_vala, include_directories: include_directories('.'))