-
Notifications
You must be signed in to change notification settings - Fork 791
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
CMake: for Windows builds, defaults PROJ DLL to be just 'proj_${PROJ_MAJOR_VERSION}.dll' #4167
Conversation
@kbevers any opinion w.r.t this change? |
I'm not sure I've understood the change. Currently on Windows we produce a DLL called Assuming I've understood that correctly, I think this looks like a change that will break peoples workflows. Probably not too many people are relying on MingW but some will for sure and I don't think we can just change things willy-nilly. Would it be possible to create to versions of the DLL, one with the current name and one with the proposed name? That would keep backwards compatibility, at least. |
no, we produce proj_9_4.dll for both MSVC and MinGW currently.
yes, possibly
Hum, this would complicate things a bit more than what I'd like, and would probably cause some confusion. If we are not ready for that change in the 9.x series, it would probably be better to just drop it for now. Or maybe had a CMake variable PROJ_NEW_DLL_NAME=ON/OFF ? PROJ_10_COMPATIBLE_DLL_NAME=ON/OFF ? |
I think a CMake variable that switches to a future PROJ 10 behaviour is a good solution. If you don't do anything you'll get the same as always and if you ask for it you get the improved naming suggested in this PR. In PROJ 10 we can then get rid of the current naming scheme for Windows builds. |
IIRC the reason why we did this was because the APIs of proj.dll had changed quite significantly and we wanted to break anyone who was doing |
Perhaps a compromise could be to include the current major version number in the name? This way, updates to PROJ builds within the major version shouldn't cause any problems. In case there's a major version update users will quickly realise since the name doesn't match any more. |
I don't mind this but it probably doesn't satisfy the original complaint of having version numbers in the DLL name. Maybe we should just rename it every major release to a random projection family name 😄 |
Sorry I missed this PR, thanks for putting it up. The issue from #4151 is fixed by either If DLL names change from including the minor release I think it could be done in a minor release, since due to this issue it already broke every minor release. Though any build scripts that assume the current naming scheme need updating, so an opt-in until the next major release could also make sense. |
I favor the idea having a variable to let choose the DLL name. In GDAL we have |
not easy to find a middle ground for all opinions expressed. I've revised this PR as:
This should hopeully be flexible enough for people to give the name they wish, and have relatively stable .dll name |
…MAJOR_VERSION}.dll' instead of "proj_${PROJ_MAJOR_VERSION}_${PROJ_MINOR_VERSION}.dll" This is configurable (for all platforms) by setting the new PROJ_OUTPUT_NAME Make Variable On MinGW, the APPEND_SOVERSION option can be set to ON, to add a "-${PROJ_SOVERSION}" suffix to the PROJ shared library name. Fixes OSGeo#4151
thanks @rouault, |
Fixes JuliaPackaging#8780. This is hopefully the last minor release that is breaking for us as they the devs changed their DLL naming after our issue. Now by default only the major version is included in the name, though other naming options are also configurable. OSGeo/PROJ#4167 https://proj.org/en/9.5/news.html
* [PROJ] update to 9.5 Fixes #8780. This is hopefully the last minor release that is breaking for us as they the devs changed their DLL naming after our issue. Now by default only the major version is included in the name, though other naming options are also configurable. OSGeo/PROJ#4167 https://proj.org/en/9.5/news.html * Disable aarch64 for freebsd for now
* [PROJ] update to 9.5 Fixes JuliaPackaging#8780. This is hopefully the last minor release that is breaking for us as they the devs changed their DLL naming after our issue. Now by default only the major version is included in the name, though other naming options are also configurable. OSGeo/PROJ#4167 https://proj.org/en/9.5/news.html * Disable aarch64 for freebsd for now
Fixes #4151 . Aligns with GDAL PR OSGeo/gdal#5701
@hobu Any opinion regarding that ? Current behaviour of having 'proj_X_Y.dll' comes from the initial CMake commit of yours 532a0f5 from 10 years ago.