-
Notifications
You must be signed in to change notification settings - Fork 7
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
Fix Kealib interface target #45
Conversation
It is just a stable interface name for the variable actual library target name. CMake takes care of forwarding transitive usage requirements from Kealib's interface link libraries.
Thanks @dg0yt - |
I have no exact idea about the python issue now. But the vcpkg reviewers just notified me about hdf5 targets appearing in the exported link libraries at least for static linkage. I know how to fix that, but ATM I'm surprised that it pops up at all, with module-mode |
Hm, sometimes vcpkg doesn't seem to have a good effect on the CMake ecosystem: |
This passed GHA in my fork. The problem was caused by CMake's HDF5 find module behaving unusual (returning imported targets in Given that the installed Kealib headers don't expose HDF5 headers, I also marked the link relationship as Last not least I dropped the explicit include directory property on Kealib. Transitive dependencies and nothing else. |
Thanks for your help @dg0yt I really struggle with this stuff. |
This PR fixes using libkea::Kealib with static library linkage. This change comes from trying to add kealib support to the vcpkg port of GDAL: microsoft/vcpkg#35437
If I understand the intention correctly,
Kealib
is just a constant interface name for the variable actual library target name. However, ATM it is hard-coded to use the shared link library which isn't created in static builds, and there is a TODO comment attached to this CMake code. This PR suggests to simply let CMake take care of forwarding transitive usage requirements from Kealib's interface link libraries by refering to the actual library as a cmake target.It wouldn't be necessary to add any interface include directories for pure CMake target usage. But I left the installed interface include directory in case some consumer wants to read the property.