JuliaGeo / Proj.jl

Julia wrapper for the PROJ cartographic projections library
MIT License
48 stars 9 forks source link

use PROJ_jll for binary #33

Closed visr closed 4 years ago

visr commented 4 years ago

I added the PROJBuilder build recipe to Yggdrasil, this led to PROJ_jll. Trying it out here.

https://github.com/JuliaGeo/PROJBuilder https://github.com/JuliaPackaging/Yggdrasil/tree/master/P/PROJ https://julialang.org/blog/2019/11/artifacts

TODO

c42f commented 4 years ago

Very cool. Note that since proj is (IIRC?) fairly minimal on the dependencies it should be possible to support older julia versions at the same time (if you had the need) once https://github.com/JuliaPackaging/BinaryBuilder.jl/pull/533 has propagated into the generated jll's.

visr commented 4 years ago

PROJ now depends on SQLite, and the next release will probably rely on libtiff as well.

It should probably be doable to support older julia releases at the same time, given some work. I don't personally have the need though, and unless somebody is willing to make it happen, I'd be happy to drop older versions, given my limited time. They will still work as is, and we can always still make bugfix releases for the older versions as well.

I have no rush to merge this PR, for me it is mostly a stepping stone to finally getting a GDAL build with essential drivers that is not plagued by symlink issues for Windows users without administrator rights. Having that will also allow finally merging https://github.com/yeesian/ArchGDAL.jl/pull/76, which is stuck behind a broken GDAL GEOS in Linux, another build issue.

Note that PROJ_jll does not include the datumgrid artifact that was included by default before. I still want to make this a lazy artifact, that will download it when needed. Though by the time PROJ 7 hits, these large grid shift files can also be accessed remotely, if PROJ RFC 4 lands.

visr commented 4 years ago

I updated the artifacts with the latest proj-datumgrid packages that were released today. PROJ 7 was also released today, see the release notes. Since it provides a new way to interact with the gridded models, it's probably best to refrain from working too much on the old system now.

PROJ 7 still supports the old proj_api.h API, but will be the last to do so.

I think it's best to just merge this as is. Anyone still wants to review?