fix exported symbols and API
This patch series fixes several problems with the public headers and the library exported symbols.
The libevview library exports lots and lots of private symbols. This is because the build system uses a simple export regex of ev_*
.
Instead of this mess, introduce a EV_PUBLIC
define that makes use of the visiblity
attribute to mark the symbol as exported. Add this symbol to the exported function's definitions in the headers, and set the default visibility as hidden
to hide all other symbols.
(A few symbols are really private and only exported for use by libview or shell; mark these as EV_PRIVATE
which is just another name for the same visibility attribute; in the future, some other solution to these may be found.)
Also use the same method in the backends to hide symbols accidentally exported from the unarr and mdvi convenience static libraries, and to export only the register_evince_backend
backend entry point function.
Some private headers were documented in the libview public API docs; remove that.
Some public headers were missing in the catch-all evince-document.h
header; add them.