[eccodes] Add new port#51301
Conversation
|
Drafting due to legitimate build failures. |
… fix dependencies
…refine feature dependencies
… and correct git-tree reference
…rove grib_to_netcdf linking
… finds and ensure proper linking
…correct dependencies
…fix static linking issues
…enhance compatibility
…ples; update git-tree in versioning
…rectories post-installation
|
The PR is ready @BillyONeal. |
Co-authored-by: Billy O'Neal <bion@microsoft.com>
Co-authored-by: Billy O'Neal <bion@microsoft.com>
Co-authored-by: Billy O'Neal <bion@microsoft.com>
Co-authored-by: Kai Pastor <dg0yt@darc.de>
Co-authored-by: Kai Pastor <dg0yt@darc.de>
Co-authored-by: Kai Pastor <dg0yt@darc.de>
…ions, update version handling, and enhance NetCDF support
|
The PR is ready, but I'm not sure why the x64_android triplet failed. We don't support Android for this port, so it's likely a CI-related issue. |
|
Hm, I start wondering if ecbuild should be a port or just another download in eccodes. |
I considered both options. I kept ecbuild as a helper port because it is a CMake macro/build-system package, and using a host helper port makes the dependency explicit, avoids relying on ecCodes' FetchContent path, and keeps the ecCodes port focused on building ecCodes itself. That said, if the preference is to avoid introducing a separate helper port for ecbuild, I can fold the ecbuild download into the eccodes port and pass the local ecbuild source path directly during configure. |
|
Everything is OK now @BillyONeal. Check again. |
Sometimes these 3rd-party Find modules are not helpers but evil. They cannot know (but only guess) how we configured the dependency. We have CMake config and we have wrappers for official (Kitware) Find modules to capture the configuration when we build the dependency. You have to patch anyways, so you might as well patch for adopting the known-good package provider. |
Done. I patched ecCodes to use the vcpkg-provided netcdf-c config package directly instead of relying on ecbuild's FindNetCDF.cmake. The netcdf feature now uses With this, netcdf discovery comes from the known vcpkg package provider instead of ecbuild's heuristic module. |
|
@vicroms points out that since |
Good point. The earlier failure does not necessarily prove that the installed ecbuild Find*.cmake modules were being used. The helper config does add ecbuild's cmake directory to CMAKE_MODULE_PATH so that ecbuild's own macros can be included, but after the latest change this no longer matters for NetCDF: the ecCodes patch now uses So the final state is still to exclude ecbuild's third-party Find*.cmake modules and use the vcpkg-provided config package for NetCDF. |
Owner-Projectform.vcpkg.json, or explicitly disabled through patches or build system arguments such as CMAKE_DISABLE_FIND_PACKAGE_Xxx or VCPKG_LOCK_FIND_PACKAGEvcpkg.jsonmatches what upstream says.vcpkg.jsonmatches what upstream says../vcpkg x-add-version --alland committing the result.