mirror of
https://github.com/kiwix/libkiwix.git
synced 2025-08-03 10:16:03 -04:00

The previous API suffer different problems: - It was difficult to handle articles redirecting to other article. - It was not possible to get few information (title) without getting the whole content. The new API introduce the new class `Entry` that act as a proxy to an article in the zim file. Methods of `Reader` now return an `Entry` and the user has to call `Entry`'s methods to get useful information. No redirection is made explicitly. If an entry is not found, an exception is raised instead of returning an invalid `Entry`. The common pattern to get the content of an entry become : ``` std::string content; try { auto entry = reader.getEntryFromPath(path); entry = entry.getFinalEntry(); content = entry.getContent(); } catch (NoEntry& e) { ... } ``` Older methods are keep (with the same behavior) but are marked as deprecated.
49 lines
1.2 KiB
Meson
49 lines
1.2 KiB
Meson
kiwix_sources = [
|
|
'library.cpp',
|
|
'manager.cpp',
|
|
'opds_dumper.cpp',
|
|
'downloader.cpp',
|
|
'reader.cpp',
|
|
'entry.cpp',
|
|
'searcher.cpp',
|
|
'common/base64.cpp',
|
|
'common/pathTools.cpp',
|
|
'common/regexTools.cpp',
|
|
'common/stringTools.cpp',
|
|
'common/networkTools.cpp',
|
|
'common/otherTools.cpp',
|
|
'xapian/htmlparse.cc',
|
|
'xapian/myhtmlparse.cc'
|
|
]
|
|
kiwix_sources += lib_resources
|
|
|
|
if xapian_dep.found()
|
|
kiwix_sources += ['xapianSearcher.cpp']
|
|
endif
|
|
|
|
if get_option('android')
|
|
subdir('android')
|
|
install_dir = 'kiwix-lib/jniLibs/' + meson.get_cross_property('android_abi')
|
|
else
|
|
install_dir = get_option('libdir')
|
|
endif
|
|
|
|
|
|
if has_ctpp2_dep
|
|
kiwix_sources += ['ctpp2/CTPP2VMStringLoader.cpp']
|
|
endif
|
|
|
|
config_h = configure_file(output : 'kiwix_config.h',
|
|
configuration : conf,
|
|
input : 'config.h.in')
|
|
install_headers(config_h, subdir:'kiwix')
|
|
|
|
kiwixlib = library('kiwix',
|
|
kiwix_sources,
|
|
include_directories : inc,
|
|
dependencies : all_deps,
|
|
version: meson.project_version(),
|
|
install: true,
|
|
install_dir: install_dir,
|
|
install_rpath: '$ORIGIN')
|