1 --- a/CMake/FindLibPROJ.cmake
2 +++ b/CMake/FindLibPROJ.cmake
3 @@ -30,7 +30,7 @@ if ( NOT LibPROJ_INCLUDE_DIR OR NOT LibP
6 find_path( LibPROJ_INCLUDE_DIR
8 + NAMES proj_api.h proj.h
11 ${_LibPROJ_DIR}/include
12 --- a/Geovis/Core/vtkGeoProjection.cxx
13 +++ b/Geovis/Core/vtkGeoProjection.cxx
14 @@ -72,6 +72,9 @@ public:
17 std::map< std::string, std::string > OptionalParameters;
18 +#if PROJ_VERSION_MAJOR >= 5
19 + PJ_PROJ_INFO ProjInfo;
23 //-----------------------------------------------------------------------------
24 @@ -80,7 +83,7 @@ int vtkGeoProjection::GetNumberOfProject
25 if ( vtkGeoProjectionNumProj < 0 )
27 vtkGeoProjectionNumProj = 0;
28 - for ( const PJ_LIST* pj = pj_get_list_ref(); pj && pj->id; ++ pj )
29 + for ( const PJ_LIST* pj = proj_list_operations(); pj && pj->id; ++ pj )
30 ++ vtkGeoProjectionNumProj;
32 return vtkGeoProjectionNumProj;
33 @@ -91,7 +94,7 @@ const char* vtkGeoProjection::GetProject
34 if ( projection < 0 || projection >= vtkGeoProjection::GetNumberOfProjections() )
37 - return pj_get_list_ref()[projection].id;
38 + return proj_list_operations()[projection].id;
40 //-----------------------------------------------------------------------------
41 const char* vtkGeoProjection::GetProjectionDescription( int projection )
42 @@ -99,7 +102,7 @@ const char* vtkGeoProjection::GetProject
43 if ( projection < 0 || projection >= vtkGeoProjection::GetNumberOfProjections() )
46 - return pj_get_list_ref()[projection].descr[0];
47 + return proj_list_operations()[projection].descr[0];
49 //-----------------------------------------------------------------------------
50 vtkGeoProjection::vtkGeoProjection()
51 @@ -144,7 +147,7 @@ void vtkGeoProjection::PrintSelf( ostrea
52 int vtkGeoProjection::GetIndex()
55 - for ( const PJ_LIST* proj = pj_get_list_ref(); proj && proj->id; ++ proj, ++ i )
56 + for ( const PJ_LIST* proj = proj_list_operations(); proj && proj->id; ++ proj, ++ i )
58 if ( ! strcmp( proj->id, this->Name ) )
60 @@ -161,7 +164,11 @@ const char* vtkGeoProjection::GetDescrip
64 +#if PROJ_VERSION_MAJOR >= 5
65 + return this->Internals->ProjInfo.description;
67 return this->Projection->descr;
70 //-----------------------------------------------------------------------------
71 projPJ vtkGeoProjection::GetProjection()
72 @@ -232,6 +239,9 @@ int vtkGeoProjection::UpdateProjection()
73 this->ProjectionMTime = this->GetMTime();
74 if ( this->Projection )
76 +#if PROJ_VERSION_MAJOR >= 5
77 + this->Internals->ProjInfo = proj_pj_info(this->Projection);
82 --- a/Geovis/Core/vtkGeoTransform.cxx
83 +++ b/Geovis/Core/vtkGeoTransform.cxx
84 @@ -167,9 +167,17 @@ void vtkGeoTransform::InternalTransformP
86 for ( vtkIdType i = 0; i < numPts; ++ i )
88 +#if PROJ_VERSION_MAJOR >= 5
89 + xy.x = coord[0]; xy.y = coord[1];
91 xy.u = coord[0]; xy.v = coord[1];
93 lp = pj_inv( xy, src );
94 +#if PROJ_VERSION_MAJOR >= 5
95 + coord[0] = lp.lam; coord[1] = lp.phi;
97 coord[0] = lp.u; coord[1] = lp.v;
102 @@ -191,9 +199,17 @@ void vtkGeoTransform::InternalTransformP
104 for ( vtkIdType i = 0; i < numPts; ++ i )
106 +#if PROJ_VERSION_MAJOR >= 5
107 + lp.lam = coord[0]; lp.phi = coord[1];
109 lp.u = coord[0]; lp.v = coord[1];
111 xy = pj_fwd( lp, dst );
112 +#if PROJ_VERSION_MAJOR >= 5
113 + coord[0] = xy.x; coord[1] = xy.y;
115 coord[0] = xy.u; coord[1] = xy.v;
120 --- a/ThirdParty/libproj/vtk_libproj.h.in
121 +++ b/ThirdParty/libproj/vtk_libproj.h.in
123 #ifndef vtk_libproj_h
124 #define vtk_libproj_h
126 +#define VTK_LibPROJ_MAJOR_VERSION @LibPROJ_MAJOR_VERSION@
128 /* Use the libproj library configured for VTK. */
129 #cmakedefine VTK_USE_SYSTEM_LIBPROJ
130 #ifdef VTK_USE_SYSTEM_LIBPROJ
131 -# include <projects.h>
132 +# if VTK_LibPROJ_MAJOR_VERSION >= 5
135 +# if VTK_LibPROJ_MAJOR_VERSION < 6
136 +# include <projects.h>
138 +# if VTK_LibPROJ_MAJOR_VERSION >= 6
139 +# define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H 1
141 # include <proj_api.h>
142 # include <geodesic.h>
144 --- VTK-8.2.0/CMake/FindLibPROJ.cmake 2019-09-11 22:13:29.493741215 -0600
145 +++ vtk/CMake/FindLibPROJ.cmake 2019-09-11 19:56:57.465802610 -0600
147 -# Find LibPROJ library and header file
149 -# LibPROJ_FOUND to 0 or 1 depending on the result
150 -# LibPROJ_INCLUDE_DIR to directories required for using libproj4
151 -# LibPROJ_LIBRARIES to libproj4 and any dependent libraries
152 -# If LibPROJ_REQUIRED is defined, then a fatal error message will be generated if libproj4 is not found
154 -if ( NOT LibPROJ_INCLUDE_DIR OR NOT LibPROJ_LIBRARIES OR NOT LibPROJ_FOUND )
155 +find_path(LibPROJ_INCLUDE_DIR
156 + NAMES proj_api.h proj.h
157 + DOC "libproj include directories")
158 +mark_as_advanced(LibPROJ_INCLUDE_DIR)
160 - if ( $ENV{LibPROJ_DIR} )
161 - file( TO_CMAKE_PATH "$ENV{LibPROJ_DIR}" _LibPROJ_DIR )
162 +find_library(LibPROJ_LIBRARY_RELEASE
164 + DOC "libproj release library")
165 +mark_as_advanced(LibPROJ_LIBRARY_RELEASE)
167 +find_library(LibPROJ_LIBRARY_DEBUG
169 + DOC "libproj debug library")
170 +mark_as_advanced(LibPROJ_LIBRARY_DEBUG)
172 +include(SelectLibraryConfigurations)
173 +select_library_configurations(LibPROJ)
175 +if (LibPROJ_INCLUDE_DIR)
176 + if (EXISTS "${LibPROJ_INCLUDE_DIR}/proj.h")
177 + file(STRINGS "${LibPROJ_INCLUDE_DIR}/proj.h" _libproj_version_lines REGEX "#define[ \t]+PROJ_VERSION_(MAJOR|MINOR|PATCH)")
178 + string(REGEX REPLACE ".*PROJ_VERSION_MAJOR *\([0-9]*\).*" "\\1" _libproj_version_major "${_libproj_version_lines}")
179 + string(REGEX REPLACE ".*PROJ_VERSION_MINOR *\([0-9]*\).*" "\\1" _libproj_version_minor "${_libproj_version_lines}")
180 + string(REGEX REPLACE ".*PROJ_VERSION_PATCH *\([0-9]*\).*" "\\1" _libproj_version_patch "${_libproj_version_lines}")
182 + file(STRINGS "${LibPROJ_INCLUDE_DIR}/proj_api.h" _libproj_version_lines REGEX "#define[ \t]+PJ_VERSION")
183 + string(REGEX REPLACE ".*PJ_VERSION *\([0-9]*\).*" "\\1" _libproj_version "${_libproj_version_lines}")
184 + math(EXPR _libproj_version_major "${_libproj_version} / 100")
185 + math(EXPR _libproj_version_minor "(${_libproj_version} % 100) / 10")
186 + math(EXPR _libproj_version_patch "${_libproj_version} % 10")
189 - set(LibPROJ_LIBRARY_SEARCH_PATHS
191 - ${_LibPROJ_DIR}/lib64
192 - ${_LibPROJ_DIR}/lib
195 - find_library( LibPROJ_LIBRARY_RELEASE
198 - ${LibPROJ_LIBRARY_SEARCH_PATHS}
201 - find_library( LibPROJ_LIBRARY_DEBUG
204 - ${LibPROJ_LIBRARY_SEARCH_PATHS}
207 - find_path( LibPROJ_INCLUDE_DIR
208 - NAMES proj_api.h proj.h
211 - ${_LibPROJ_DIR}/include
214 - include(SelectLibraryConfigurations)
215 - select_library_configurations(LibPROJ)
217 - include(FindPackageHandleStandardArgs)
218 - find_package_handle_standard_args(LibPROJ
219 - REQUIRED_VARS LibPROJ_LIBRARY LibPROJ_INCLUDE_DIR)
222 - set(LibPROJ_INCLUDE_DIRS ${LibPROJ_INCLUDE_DIR})
224 - if(NOT LibPROJ_LIBRARIES)
225 - set(LibPROJ_LIBRARIES ${LibPROJ_LIBRARY})
228 + set(LibPROJ_VERSION "${_libproj_version_major}.${_libproj_version_minor}.${_libproj_version_patch}")
229 + set(LibPROJ_MAJOR_VERSION "${_libproj_version_major}")
230 + unset(_libproj_version_major)
231 + unset(_libproj_version_minor)
232 + unset(_libproj_version_patch)
233 + unset(_libproj_version)
234 + unset(_libproj_version_lines)
237 -mark_as_advanced(LibPROJ_INCLUDE_DIR)
238 +include(FindPackageHandleStandardArgs)
239 +find_package_handle_standard_args(LibPROJ
240 + REQUIRED_VARS LibPROJ_LIBRARY LibPROJ_INCLUDE_DIR
241 + VERSION_VAR LibPROJ_VERSION)
244 + set(LibPROJ_INCLUDE_DIRS "${LibPROJ_INCLUDE_DIR}")
245 + set(LibPROJ_LIBRARIES "${LibPROJ_LIBRARY}")
247 + if (NOT TARGET LibPROJ::LibPROJ)
248 + add_library(LibPROJ::LibPROJ UNKNOWN IMPORTED)
249 + set_target_properties(LibPROJ::LibPROJ PROPERTIES
250 + INTERFACE_INCLUDE_DIRECTORIES "${LibPROJ_INCLUDE_DIR}")
251 + if (LibPROJ_LIBRARY_RELEASE)
252 + set_property(TARGET LibPROJ::LibPROJ APPEND PROPERTY
253 + IMPORTED_CONFIGURATIONS RELEASE)
254 + set_target_properties(LibPROJ::LibPROJ PROPERTIES
255 + IMPORTED_LOCATION_RELEASE "${LibPROJ_LIBRARY_RELEASE}")
257 + if (LibPROJ_LIBRARY_DEBUG)
258 + set_property(TARGET LibPROJ::LibPROJ APPEND PROPERTY
259 + IMPORTED_CONFIGURATIONS DEBUG)
260 + set_target_properties(LibPROJ::LibPROJ PROPERTIES
261 + IMPORTED_LOCATION_DEBUG "${LibPROJ_LIBRARY_DEBUG}")