aboutsummaryrefslogtreecommitdiff
path: root/plugins/smolblok_hostlist/meson.build
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2020-02-10 20:58:39 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2020-05-30 11:01:35 +0300
commitd1287f43964633035938f4f4d4133bb6d9da7b3e (patch)
treed09efa4074815c20be9bd6348203fe4336dfe716 /plugins/smolblok_hostlist/meson.build
parentFix segfault in release build (diff)
downloadsmolbote-d1287f43964633035938f4f4d4133bb6d9da7b3e.tar.xz
staging: smolblok
smolblok is a replacement for the current lib/urlfilter AdBlockPlus and hostlist format filter parser. It is a library that uses plugins to provide support for different filter formats. staging/adblock: AdBlockPlus parser plugin plugins/smolblok_hostlist: hostlist format parser plugin Headers will be installed to include/smolbote/ Remove lib/urlfilter
Diffstat (limited to 'plugins/smolblok_hostlist/meson.build')
-rw-r--r--plugins/smolblok_hostlist/meson.build50
1 files changed, 50 insertions, 0 deletions
diff --git a/plugins/smolblok_hostlist/meson.build b/plugins/smolblok_hostlist/meson.build
new file mode 100644
index 0000000..c9ff303
--- /dev/null
+++ b/plugins/smolblok_hostlist/meson.build
@@ -0,0 +1,50 @@
+lib_hostlistfilter = static_library('hostlistfilter',
+ [ 'filterlist.cpp' ],
+ include_directories: smolbote_interfaces,
+ dependencies: [dep_qt5]
+)
+
+dep_hostlistfilter = declare_dependency(
+ include_directories: [ '.', smolbote_interfaces ],
+ link_with: lib_hostlistfilter
+)
+
+# plugin
+plugin = shared_library('smolblokHostlistPlugin',
+ [ 'plugin/plugin.cpp',
+ mod_qt5.preprocess(include_directories: smolbote_interfaces, moc_headers: 'plugin/plugin.h', dependencies: dep_qt5) ],
+ include_directories: smolbote_interfaces,
+ dependencies: [ dep_hostlistfilter, dep_qt5 ],
+ install: true,
+ install_dir: get_option('libdir')/'smolbote/plugins'
+)
+
+# tests
+test('rule', executable('rule', sources: 'test/rule.cpp', dependencies: [dep_qt5, dep_catch, dep_hostlistfilter]), suite: 'hostlist')
+
+test('filterlist', executable('filterlist',
+ sources: 'test/filterlist.cpp',
+ dependencies: [dep_qt5, dep_catch, dep_hostlistfilter]),
+ env: 'HOSTLIST_TXT='+meson.current_source_dir()/'test/hostlist.txt',
+ suite: 'hostlist'
+)
+test('plugin', executable('filterlist-plugin',
+ sources: [ 'test/plugin.cpp', 'plugin/plugin.cpp',
+ mod_qt5.preprocess(include_directories: smolbote_interfaces, moc_headers: 'plugin/plugin.h', dependencies: dep_qt5) ],
+ dependencies: [dep_qt5, dep_catch, dep_hostlistfilter]),
+ env: 'HOSTLIST_TXT='+meson.current_source_dir()/'test/hostlist.txt',
+ suite: 'hostlist'
+)
+
+test('smolblok-load', smolblok_load, workdir: meson.build_root(), args: plugin.full_path(), suite: 'hostlist')
+
+# fuzzer
+if meson.get_compiler('cpp').has_multi_arguments('-g', '-fsanitize=fuzzer')
+executable('hostlist-fuzzer',
+ sources: 'filterlist.cpp',
+ include_directories: smolbote_interfaces,
+ dependencies: dep_qt5,
+ cpp_args: [ '-g', '-fsanitize=fuzzer', '-DFUZZER' ],
+ link_args: [ '-fsanitize=fuzzer' ]
+)
+endif