Skip to content

fix exported symbols and API

Christian Persch requested to merge wip/chpe/symbols-visibility into main

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.

Merge request reports