-
Notifications
You must be signed in to change notification settings - Fork 62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
export API #1824
export API #1824
Conversation
Could you test the cibuildwheel workflow on this change? You can overwrite the [update] This should not matter. Disregard. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have some minimal suggestions and questions. Otherwise looks good!
bors try |
tryTimed out. |
bors try |
tryTimed out. |
bors try |
tryBuild failed: |
In order to export all symbols correctly, I have added one macro per library and one global macro. The content of the macros is determined at configure time depending on build variant (static/shared), compiler, and platforms (linux, mac os) and goes into the library's include directory as
export.hpp
when installed (at build time it resides at cmake's temporary build directory). The per-library macro is namedARB_LIBNAME_API
and goes in front of to-be-exported symbols. The global macro isARB_SYMBOL_VISIBLE
. Below, I sketch out a few examples where these macros would be needed.In this PR I tried to find all places where any annotation is required. Most of them are in the public headers (and corresponding sources) but some are also added in internal headers, which were required for the unit tests to link properly.
header.hpp
source.cpp