forked from microsoft/vcpkg
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[proj4] Update to 8.0.0 (microsoft#16494)
* [proj4,vtk,mapnik] Upgrade to proj 8.0.0. Make vtk compatible via upstream patch and mapnik by buildscript tweak. * [mapnik, proj4, vtk]: add versions
- Loading branch information
Showing
12 changed files
with
190 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
index 47bbaa1..43f384d 100644 | ||
--- a/CMakeLists.txt | ||
+++ b/CMakeLists.txt | ||
@@ -304,7 +304,7 @@ if(USE_WEBP) | ||
|
||
if(USE_PROJ) | ||
#https://proj.org/development/cmake.html | ||
- mapnik_find_package(PROJ ${PROJ_MIN_VERSION} QUIET) | ||
+ mapnik_find_package(PROJ REQUIRED) | ||
# currently the cmake files are not installed, when installing proj via apt-get. So search via pkg-config | ||
if(NOT PROJ_FOUND) | ||
message(STATUS "PROJ not found via FindPROJ. Searching via pkg-config...") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,149 @@ | ||
From 0325638832e35c8c8c6fc96e2c1d887aeea3dd43 Mon Sep 17 00:00:00 2001 | ||
From: Julien Schueller <[email protected]> | ||
Date: Mon, 8 Mar 2021 10:57:46 +0100 | ||
Subject: [PATCH] Geovis: Use proj>=5 api | ||
|
||
Closes #18130 | ||
--- | ||
Geovis/Core/vtkGeoProjection.cxx | 17 ++++++++++++++++- | ||
Geovis/Core/vtkGeoTransform.cxx | 28 ++++++++++++++-------------- | ||
ThirdParty/libproj/vtk_libproj.h.in | 7 +------ | ||
3 files changed, 31 insertions(+), 21 deletions(-) | ||
|
||
diff --git a/Geovis/Core/vtkGeoProjection.cxx b/Geovis/Core/vtkGeoProjection.cxx | ||
index 7ff6526a5d..0a0d06eba1 100644 | ||
--- a/Geovis/Core/vtkGeoProjection.cxx | ||
+++ b/Geovis/Core/vtkGeoProjection.cxx | ||
@@ -121,7 +121,11 @@ vtkGeoProjection::~vtkGeoProjection() | ||
this->SetPROJ4String(nullptr); | ||
if (this->Projection) | ||
{ | ||
+#if PROJ_VERSION_MAJOR >= 5 | ||
+ proj_destroy(this->Projection); | ||
+#else | ||
pj_free(this->Projection); | ||
+#endif | ||
} | ||
delete this->Internals; | ||
this->Internals = nullptr; | ||
@@ -185,13 +189,21 @@ int vtkGeoProjection::UpdateProjection() | ||
|
||
if (this->Projection) | ||
{ | ||
+#if PROJ_VERSION_MAJOR >= 5 | ||
+ proj_destroy(this->Projection); | ||
+#else | ||
pj_free(this->Projection); | ||
+#endif | ||
this->Projection = nullptr; | ||
} | ||
|
||
if (this->PROJ4String && strlen(this->PROJ4String)) | ||
{ | ||
+#if PROJ_VERSION_MAJOR >= 5 | ||
+ this->Projection = proj_create(PJ_DEFAULT_CTX, this->PROJ4String); | ||
+#else | ||
this->Projection = pj_init_plus(this->PROJ4String); | ||
+#endif | ||
if (!this->Projection) | ||
{ | ||
vtkErrorMacro("Cannot set projection with string " << this->PROJ4String); | ||
@@ -234,8 +246,11 @@ int vtkGeoProjection::UpdateProjection() | ||
stringHolder[i] = param.str(); | ||
pjArgs[3 + i] = stringHolder[i].c_str(); | ||
} | ||
- | ||
+#if PROJ_VERSION_MAJOR >= 5 | ||
+ this->Projection = proj_create_argv(PJ_DEFAULT_CTX, argSize, const_cast<char**>(pjArgs)); | ||
+#else | ||
this->Projection = pj_init(argSize, const_cast<char**>(pjArgs)); | ||
+#endif | ||
delete[] pjArgs; | ||
} | ||
this->ProjectionMTime = this->GetMTime(); | ||
diff --git a/Geovis/Core/vtkGeoTransform.cxx b/Geovis/Core/vtkGeoTransform.cxx | ||
index 5c2c74279d..1c99b6b11b 100644 | ||
--- a/Geovis/Core/vtkGeoTransform.cxx | ||
+++ b/Geovis/Core/vtkGeoTransform.cxx | ||
@@ -163,8 +163,12 @@ void vtkGeoTransform::InternalTransformPoints(double* x, vtkIdType numPts, int s | ||
projPJ src = this->SourceProjection ? this->SourceProjection->GetProjection() : nullptr; | ||
projPJ dst = this->DestinationProjection ? this->DestinationProjection->GetProjection() : nullptr; | ||
int delta = stride - 2; | ||
+#if PROJ_VERSION_MAJOR >= 5 | ||
+ PJ_COORD c, c_out; | ||
+#else | ||
projLP lp; | ||
projXY xy; | ||
+#endif | ||
if (src) | ||
{ | ||
// Convert from src system to lat/long using inverse of src transform | ||
@@ -172,17 +176,15 @@ void vtkGeoTransform::InternalTransformPoints(double* x, vtkIdType numPts, int s | ||
for (vtkIdType i = 0; i < numPts; ++i) | ||
{ | ||
#if PROJ_VERSION_MAJOR >= 5 | ||
- xy.x = coord[0]; | ||
- xy.y = coord[1]; | ||
+ c.xy.x = coord[0]; | ||
+ c.xy.y = coord[1]; | ||
+ c_out = proj_trans(src, PJ_INV, c); | ||
+ coord[0] = c_out.lp.lam; | ||
+ coord[1] = c_out.lp.phi; | ||
#else | ||
xy.u = coord[0]; | ||
xy.v = coord[1]; | ||
-#endif | ||
lp = pj_inv(xy, src); | ||
-#if PROJ_VERSION_MAJOR >= 5 | ||
- coord[0] = lp.lam; | ||
- coord[1] = lp.phi; | ||
-#else | ||
coord[0] = lp.u; | ||
coord[1] = lp.v; | ||
#endif | ||
@@ -208,17 +210,15 @@ void vtkGeoTransform::InternalTransformPoints(double* x, vtkIdType numPts, int s | ||
for (vtkIdType i = 0; i < numPts; ++i) | ||
{ | ||
#if PROJ_VERSION_MAJOR >= 5 | ||
- lp.lam = coord[0]; | ||
- lp.phi = coord[1]; | ||
+ c.lp.lam = coord[0]; | ||
+ c.lp.phi = coord[1]; | ||
+ c_out = proj_trans(src, PJ_FWD, c); | ||
+ coord[0] = c_out.xy.x; | ||
+ coord[1] = c_out.xy.y; | ||
#else | ||
lp.u = coord[0]; | ||
lp.v = coord[1]; | ||
-#endif | ||
xy = pj_fwd(lp, dst); | ||
-#if PROJ_VERSION_MAJOR >= 5 | ||
- coord[0] = xy.x; | ||
- coord[1] = xy.y; | ||
-#else | ||
coord[0] = xy.u; | ||
coord[1] = xy.v; | ||
#endif | ||
diff --git a/ThirdParty/libproj/vtk_libproj.h.in b/ThirdParty/libproj/vtk_libproj.h.in | ||
index 4d8ffc3c5d..c4182c4db2 100644 | ||
--- a/ThirdParty/libproj/vtk_libproj.h.in | ||
+++ b/ThirdParty/libproj/vtk_libproj.h.in | ||
@@ -28,14 +28,9 @@ | ||
#if VTK_MODULE_USE_EXTERNAL_vtklibproj | ||
# if VTK_LibPROJ_MAJOR_VERSION >= 5 | ||
# include <proj.h> | ||
-# endif | ||
-# if VTK_LibPROJ_MAJOR_VERSION < 6 | ||
+# else | ||
# include <projects.h> | ||
# endif | ||
-# if VTK_LibPROJ_MAJOR_VERSION >= 6 | ||
-# define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H 1 | ||
-# endif | ||
-# include <proj_api.h> | ||
# include <geodesic.h> | ||
#else | ||
# include <vtklibproj/src/projects.h> | ||
-- | ||
2.32.0.windows.1 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters