(core): make use of cmake feature to manage symbol visibility: get rid of *_CLASS_API macro
Description
Currently we have to manually choose which class and methods should be exported and available across Sight. We use generated macros (*_CLASS_API
) to achieve this goal, which is not the classical CMake way and lead to poor visibility management, unlinked with CMake target_link_libraries(... PUBLIC|PRIVATE|INTERFACE)
. Using fully CMake feature for that, will clearer, cleaner and better. It will also remove one obscur macro generation step from sight
Proposal
Use what is described here:
But this may also be the right time to think more carefully about private / public API. This is a huge work !
Outcomes
- No more visibility macro generation step
- The visibility will be linked with the use of cmake visibility attributes in target_link_libraries()
- Clearer and cleaner code