-
Notifications
You must be signed in to change notification settings - Fork 25
Description
Hello!
As we continue to package this project in Conan (conan-io/conan-center-index#27532), a scenario that our CI runs is Windows, and it builds the library as both static and shared.
However, when building as shared, it fails because the project doesn't export functions via __declspec, so only the DLL is provided. As a result, consumers will need to use the LoadLibrary Windows API and load each method manually.
You can see the build result and log here:
- https://github.com/conan-io/conan-center-index/pull/27532/checks?check_run_id=58526101113
- https://c3i.jfrog.io/artifactory/cci-build-logs/cci/prod/PR-27532/3/package_build_logs/build_log_lifthttp_4_4_2_5fd301695e1b28b5c4e847371199f56e_7d2dda0dbe3787826bb096a89e82463d8b6c729d.success.txt
It would be great in the future to have it supported as well; it will have a much smoother integration for Windows usage, for example. CMake provides a native feature like WINDOWS_EXPORT_ALL_SYMBOLS, but it's usually not recommended, because it exports even private symbols, which may causing brekage to users who are consuming what should be private.
For extra context about DLLs, you can read the official Microsoft documentation: https://learn.microsoft.com/en-us/troubleshoot/windows-client/setup-upgrade-and-drivers/dynamic-link-library#load-time-dynamic-linking
Regards!