aboutsummaryrefslogtreecommitdiff
path: root/libdino/meson.build
diff options
context:
space:
mode:
authorfrosty <frostinator33@airmail.cc>2026-10-26 10:21:57 -0400
committerfrosty <frostinator33@airmail.cc>2026-10-26 10:21:57 -0400
commit74aecd8b0986d07b50b7ce310d64e645b8b54e38 (patch)
tree560e6434f183eb54cd779936f3a4c9575146a066 /libdino/meson.build
parent3d7e90d401da02d430a87db0ec7e1db3a6f1a68f (diff)
parent4436001bb361ad4f9e4e05819214ecf0ea77c063 (diff)
Merge 'upstream/master'
Diffstat (limited to 'libdino/meson.build')
-rw-r--r--libdino/meson.build107
1 files changed, 85 insertions, 22 deletions
diff --git a/libdino/meson.build b/libdino/meson.build
index f83878e4..0053d5ab 100644
--- a/libdino/meson.build
+++ b/libdino/meson.build
@@ -1,17 +1,4 @@
-# version_vala
-version_py = files('version.py')[0]
-if meson.version().version_compare('>=1.4.0')
- version_py_path = version_py.full_path()
-else
- version_py_path = meson.current_source_dir() / 'version.py'
-endif
-command = [prog_python, version_py_path, version_file_path, '--git-repo', meson.current_source_dir()]
-if prog_git.found()
- command += ['--git', prog_git]
-endif
-# We add those dummy args to ensure meson sees the dependency
-command += [version_py, version_file]
-version_vala = vcs_tag(command: command, input: 'src/version.vala.in', output: 'version.vala', replace_string: '%VERSION%')
+version_c = configure_file(input: 'src/version.c.in', output: 'version.c', configuration: {'VERSION': meson.project_version()})
# libdino
dependencies = [
@@ -20,7 +7,10 @@ dependencies = [
dep_gio,
dep_glib,
dep_gmodule,
- dep_qlite,
+ dep_libsoup,
+ dep_libsrtp2,
+ dep_nice,
+ dep_sqlite3,
dep_xmpp_vala
]
sources = files(
@@ -28,16 +18,34 @@ sources = files(
'src/dbus/login1.vala',
'src/dbus/notifications.vala',
'src/dbus/upower.vala',
+ 'src/crypto/cipher.vala',
+ 'src/crypto/cipher_converter.vala',
+ 'src/crypto/dtls_srtp.vala',
+ 'src/crypto/error.vala',
+ 'src/crypto/srtp.vala',
'src/entity/account.vala',
'src/entity/call.vala',
'src/entity/conversation.vala',
'src/entity/encryption.vala',
'src/entity/file_transfer.vala',
+ 'src/entity/file_transfer_group.vala',
'src/entity/message.vala',
'src/entity/settings.vala',
+ 'src/file_transfer/file_manager2.vala',
+ 'src/file_transfer/http_transfer.vala',
'src/plugin/interfaces.vala',
'src/plugin/loader.vala',
'src/plugin/registry.vala',
+ 'src/qlite/column.vala',
+ 'src/qlite/database.vala',
+ 'src/qlite/delete_builder.vala',
+ 'src/qlite/insert_builder.vala',
+ 'src/qlite/query_builder.vala',
+ 'src/qlite/row.vala',
+ 'src/qlite/statement_builder.vala',
+ 'src/qlite/table.vala',
+ 'src/qlite/update_builder.vala',
+ 'src/qlite/upsert_builder.vala',
'src/service/avatar_manager.vala',
'src/service/blocking_manager.vala',
'src/service/call_store.vala',
@@ -51,12 +59,12 @@ sources = files(
'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/fallback_body.vala',
'src/service/file_manager.vala',
'src/service/file_transfer_storage.vala',
'src/service/history_sync.vala',
+ 'src/service/ice.vala',
'src/service/jingle_file_transfers.vala',
'src/service/message_correction.vala',
'src/service/message_deletion.vala',
@@ -83,18 +91,73 @@ sources = files(
'src/util/util.vala',
'src/util/weak_timeout.vala',
)
-sources += [version_vala]
-c_args = [
+
+sources += [version_c]
+
+if crypto_backend == 'gnu'
+ dependencies += [ dep_libgcrypt, dep_gnutls ]
+ sources += files(
+ 'src/crypto/gnu/cipher.vala',
+ 'src/crypto/gnu/dtls_srtp.vala',
+ 'src/crypto/gnu/utils.vala',
+ )
+elif crypto_backend == 'openssl'
+ dependencies += [ dep_openssl ]
+ sources += files(
+ 'src/crypto/openssl/cipher.vala',
+ 'src/crypto/openssl/dtls_srtp.vala',
+ 'src/crypto/openssl/utils.c',
+ 'src/crypto/openssl/utils.vala',
+ )
+endif
+
+if get_option('omemo').allowed() and dep_libomemo_c.found()
+ dependencies += [dep_libomemo_c]
+ sources += files(
+ 'src/crypto/omemo/context.vala',
+ 'src/crypto/omemo/helper.c',
+ 'src/crypto/omemo/simple_iks.vala',
+ 'src/crypto/omemo/simple_pks.vala',
+ 'src/crypto/omemo/simple_spks.vala',
+ 'src/crypto/omemo/simple_ss.vala',
+ 'src/crypto/omemo/store.vala',
+ 'src/crypto/omemo/util.vala',
+ )
+
+ if crypto_backend == 'gnu'
+ sources += files(
+ 'src/crypto/gnu/omemo.c',
+ )
+ elif crypto_backend == 'openssl'
+ sources += files(
+ 'src/crypto/openssl/omemo.c',
+ )
+ endif
+endif
+
+c_args = 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('libdir') / get_option('plugindir')),
'-DG_LOG_DOMAIN="libdino"',
]
-vala_args = []
-if meson.get_compiler('vala').version().version_compare('=0.56.11')
- vala_args += ['-D', 'VALA_0_56_11']
-endif
+vala_args = [
+ '--vapidir', meson.current_source_dir() / 'vapi',
+]
lib_dino = library('libdino', sources, c_args: c_args, vala_args: vala_args, include_directories: include_directories('src'), dependencies: dependencies, name_prefix: '', version: '0.0', install: true, install_dir: [true, true, true], install_rpath: default_install_rpath)
dep_dino = declare_dependency(link_with: lib_dino, include_directories: include_directories('.', 'src'))
install_data('dino.deps', install_dir: get_option('datadir') / 'vala/vapi', install_tag: 'devel') # TODO: workaround for https://github.com/mesonbuild/meson/issues/9756
install_headers('src/dino_i18n.h')
+
+if get_option('omemo').allowed() and dep_libomemo_c.found()
+ test_sources = [
+ 'tests/common.vala',
+ 'tests/testcase.vala',
+
+ 'tests/curve25519.vala',
+ 'tests/hkdf.vala',
+ 'tests/session_builder.vala',
+ ]
+ exe_lib_dino_test = executable('libdino-omemo-test', test_sources, c_args: c_args, vala_args: vala_args, dependencies: dependencies + dep_dino, install: false)
+ test('Tests for libdino OMEMO', exe_lib_dino_test)
+endif \ No newline at end of file