Skip to content
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

Move drivers into libeuicc-drivers.so #59

Merged
merged 5 commits into from
Mar 21, 2024
Merged

Conversation

PeterCxy
Copy link
Contributor

The name prefix libeuicc is chosen because they really relate more to libeuicc than to lpac. The only thing these drivers do that's not in libeuicc is their main() entry points. For now, libeuicc-drivers.so will simply expose those main functions as variables that get set at load time -- it no longer depends on the applet struct from lpac. A downstream project could conceivably use these main functions in a completely different way than lpac.

All drivers have been made optional (except stdio) with their own corresponding CMake variables. See commit descriptions for details.

This allows for reuse from projects dynamically linked to libeuicc. Note
that we don't reintroduce dlopen() based drivers here.

All backends except stdio have been made optional using CMake options.
C-side macros in driver.c have been adjusted to always mean enabling the
corresponding backend when defined.

Note that the GBinder backend does not need to distinguish between the
current HIDL version and a future AIDL implementation. Both will have
the same dependencies and will probably fall back on to each other
automatically.
Also separate lpac_driver struct from the installed version
This is needed by github actions
@estkme estkme merged commit 41697ab into estkme-group:main Mar 21, 2024
6 checks passed
ocd0711 pushed a commit to ocd0711/lpac that referenced this pull request May 7, 2024
* Move drivers back to their own (optionally dynamic)

This allows for reuse from projects dynamically linked to libeuicc. Note
that we don't reintroduce dlopen() based drivers here.

All backends except stdio have been made optional using CMake options.
C-side macros in driver.c have been adjusted to always mean enabling the
corresponding backend when defined.

Note that the GBinder backend does not need to distinguish between the
current HIDL version and a future AIDL implementation. Both will have
the same dependencies and will probably fall back on to each other
automatically.

* Set up installed headers and pkg-config for libeuicc-drivers.so

Also separate lpac_driver struct from the installed version

* Namespace all exposed symbols in libeuicc-drivers.so

* Add back output directory config

This is needed by github actions

* curl is dlopen()'d on Windows
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants