11: Implement Linux RSS/Atom feed parser

This commit is contained in:
2026-03-30 09:38:06 -04:00
parent d84b8ff4e8
commit bbc1363bcc
1646 changed files with 46543 additions and 669 deletions

View File

@@ -16,6 +16,7 @@ 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')
# Source files
models = files(
@@ -37,6 +38,15 @@ database = files(
'src/database/search-history-store.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',
)
# Main library
models_lib = library('rssuper-models', models,
dependencies: [glib_dep, gio_dep, json_dep],
@@ -51,14 +61,32 @@ database_lib = library('rssuper-database', database,
vala_args: ['--vapidir', 'src/database', '--pkg', 'sqlite3']
)
# 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']
)
# Test executable
test_exe = executable('database-tests',
'src/tests/database-tests.vala',
dependencies: [glib_dep, gio_dep, json_dep, sqlite_dep, gobject_dep],
link_with: [models_lib, database_lib],
vala_args: ['--vapidir', '.', '--pkg', 'sqlite3'],
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
)
# Test definition
# 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
)
# Test definitions
test('database tests', test_exe)
test('parser tests', parser_test_exe)