Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
CI - Multi-Platform Native / Integration Tests (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
199 lines
5.8 KiB
Meson
199 lines
5.8 KiB
Meson
project('rssuper-linux', 'vala', 'c',
|
|
version: '0.1.0',
|
|
default_options: [
|
|
'c_std=c11',
|
|
'warning_level=3',
|
|
'werror=false',
|
|
]
|
|
)
|
|
|
|
vala = find_program('valac')
|
|
meson_version_check = run_command(vala, '--version', check: true)
|
|
|
|
# Dependencies
|
|
glib_dep = dependency('glib-2.0', version: '>= 2.58')
|
|
gio_dep = dependency('gio-2.0', version: '>= 2.58')
|
|
json_dep = dependency('json-glib-1.0', version: '>= 1.4')
|
|
sqlite_dep = dependency('sqlite3', version: '>= 3.0')
|
|
gobject_dep = dependency('gobject-2.0', version: '>= 2.58')
|
|
xml_dep = dependency('libxml-2.0', version: '>= 2.0')
|
|
soup_dep = dependency('libsoup-3.0', version: '>= 3.0')
|
|
gtk_dep = dependency('gtk4', version: '>= 4.0')
|
|
|
|
# GSettings schemas
|
|
schema_files = [
|
|
'gsettings/org.rssuper.notification.preferences.gschema.xml',
|
|
'gsettings/org.rssuper.app.settings.gschema.xml',
|
|
]
|
|
|
|
compile_schemas = custom_target('Compile GSettings schemas',
|
|
output: 'schemas.glibdir',
|
|
command: glib_dep.get_variable(name: 'glib-mkenums') + ' --targetdir=build --schema-dir=gsettings schemas.glibdir',
|
|
dependencies: glib_dep,
|
|
install: false
|
|
)
|
|
|
|
# Source files
|
|
models = files(
|
|
'src/models/feed-item.vala',
|
|
'src/models/feed.vala',
|
|
'src/models/feed-subscription.vala',
|
|
'src/models/search-result.vala',
|
|
'src/models/search-filters.vala',
|
|
'src/models/notification-preferences.vala',
|
|
'src/models/reading-preferences.vala',
|
|
'src/models/bookmark.vala',
|
|
)
|
|
|
|
# Settings files
|
|
settings = files(
|
|
'src/settings-store.vala',
|
|
'src/app-settings.vala',
|
|
'src/notification-preferences-store.vala',
|
|
)
|
|
|
|
# Database files
|
|
database = files(
|
|
'src/database/db-error.vala',
|
|
'src/database/database.vala',
|
|
'src/database/subscription-store.vala',
|
|
'src/database/feed-item-store.vala',
|
|
'src/database/search-history-store.vala',
|
|
'src/database/bookmark-store.vala',
|
|
)
|
|
|
|
# Repository files
|
|
repositories = files(
|
|
'src/repository/bookmark-repository.vala',
|
|
'src/repository/bookmark-repository-impl.vala',
|
|
)
|
|
|
|
# Service files
|
|
services = files(
|
|
'src/service/search-service.vala',
|
|
)
|
|
|
|
# Parser files
|
|
parser = files(
|
|
'src/parser/feed-type.vala',
|
|
'src/parser/parse-result.vala',
|
|
'src/parser/rss-parser.vala',
|
|
'src/parser/atom-parser.vala',
|
|
'src/parser/feed-parser.vala',
|
|
)
|
|
|
|
# Network files
|
|
network = files(
|
|
'src/network/network-error.vala',
|
|
'src/network/http-auth-credentials.vala',
|
|
'src/network/fetch-result.vala',
|
|
'src/network/feed-fetcher.vala',
|
|
)
|
|
|
|
# Main library
|
|
models_lib = library('rssuper-models', models,
|
|
dependencies: [glib_dep, gio_dep, json_dep],
|
|
install: false
|
|
)
|
|
|
|
# Settings library
|
|
settings_lib = library('rssuper-settings', settings,
|
|
dependencies: [glib_dep, gio_dep, json_dep],
|
|
link_with: [models_lib],
|
|
install: false
|
|
)
|
|
|
|
# Database library
|
|
database_lib = library('rssuper-database', database,
|
|
dependencies: [glib_dep, gio_dep, json_dep, sqlite_dep, gobject_dep],
|
|
link_with: [models_lib],
|
|
install: false,
|
|
vala_args: ['--vapidir', 'src/database', '--pkg', 'sqlite3']
|
|
)
|
|
|
|
# Repository library
|
|
repository_lib = library('rssuper-repositories', repositories,
|
|
dependencies: [glib_dep, gio_dep, json_dep, sqlite_dep],
|
|
link_with: [models_lib, database_lib],
|
|
install: false,
|
|
vala_args: ['--vapidir', 'src/repository']
|
|
)
|
|
|
|
# Parser library
|
|
parser_lib = library('rssuper-parser', parser,
|
|
dependencies: [glib_dep, gio_dep, json_dep, xml_dep],
|
|
link_with: [models_lib],
|
|
install: false,
|
|
vala_args: ['--vapidir', 'src/parser', '--pkg', 'libxml-2.0']
|
|
)
|
|
|
|
# Network library
|
|
network_lib = library('rssuper-network', network,
|
|
dependencies: [glib_dep, gio_dep, json_dep, soup_dep],
|
|
link_with: [models_lib],
|
|
install: false,
|
|
vala_args: ['--vapidir', 'src/network', '--pkg', 'libsoup-3.0']
|
|
)
|
|
|
|
# Test executable
|
|
test_exe = executable('database-tests',
|
|
'src/tests/database-tests.vala',
|
|
dependencies: [glib_dep, gio_dep, json_dep, sqlite_dep, gobject_dep, xml_dep],
|
|
link_with: [models_lib, database_lib, parser_lib],
|
|
vala_args: ['--vapidir', '.', '--pkg', 'sqlite3', '--pkg', 'libxml-2.0'],
|
|
install: false
|
|
)
|
|
|
|
# Parser test executable
|
|
parser_test_exe = executable('parser-tests',
|
|
'src/tests/parser-tests.vala',
|
|
dependencies: [glib_dep, gio_dep, json_dep, xml_dep],
|
|
link_with: [models_lib, parser_lib],
|
|
vala_args: ['--vapidir', '.', '--pkg', 'libxml-2.0'],
|
|
install: false
|
|
)
|
|
|
|
# Feed fetcher test executable
|
|
fetcher_test_exe = executable('feed-fetcher-tests',
|
|
'src/tests/feed-fetcher-tests.vala',
|
|
dependencies: [glib_dep, gio_dep, json_dep, xml_dep, soup_dep],
|
|
link_with: [models_lib, parser_lib, network_lib],
|
|
vala_args: ['--vapidir', '.', '--pkg', 'libxml-2.0', '--pkg', 'libsoup-3.0'],
|
|
install: false
|
|
)
|
|
|
|
# Notification service test executable
|
|
notification_service_test_exe = executable('notification-service-tests',
|
|
'src/tests/notification-service-tests.vala',
|
|
dependencies: [glib_dep, gio_dep, json_dep, gobject_dep],
|
|
link_with: [models_lib],
|
|
vala_args: ['--vapidir', '.', '--pkg', 'gio-2.0'],
|
|
install: false
|
|
)
|
|
|
|
# Notification manager test executable
|
|
notification_manager_test_exe = executable('notification-manager-tests',
|
|
'src/tests/notification-manager-tests.vala',
|
|
dependencies: [glib_dep, gio_dep, json_dep, gobject_dep, gtk_dep],
|
|
link_with: [models_lib],
|
|
vala_args: ['--vapidir', '.', '--pkg', 'gio-2.0', '--pkg', 'gtk4'],
|
|
install: false
|
|
)
|
|
|
|
# Settings store test executable
|
|
settings_store_test_exe = executable('settings-store-tests',
|
|
'src/tests/settings-store-tests.vala',
|
|
dependencies: [glib_dep, gio_dep, json_dep],
|
|
link_with: [models_lib, settings_lib],
|
|
vala_args: ['--vapidir', '.', '--pkg', 'gio-2.0'],
|
|
install: false
|
|
)
|
|
|
|
# Test definitions
|
|
test('database tests', test_exe)
|
|
test('parser tests', parser_test_exe)
|
|
test('feed fetcher tests', fetcher_test_exe)
|
|
test('notification service tests', notification_service_test_exe)
|
|
test('notification manager tests', notification_manager_test_exe)
|
|
test('settings store tests', settings_store_test_exe)
|