xygrib, revbump for new proj version (#6847)

This commit is contained in:
Schrijvers Luc
2022-04-24 15:10:42 +02:00
committed by GitHub
parent 1a7b5ab885
commit 9c688aeaab
2 changed files with 243 additions and 4 deletions

View File

@@ -1,4 +1,4 @@
From f55ca320f23e9a8cb3baf982d5fd19320a484490 Mon Sep 17 00:00:00 2001
From 418b3f2dc749bbd6e81bb63caaea850723a2cc25 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Sun, 24 Oct 2021 16:35:20 +0200
Subject: SkewT: build fix
@@ -17,5 +17,245 @@ index c9a23ce..0916681 100644
class SkewT;
--
2.30.2
2.35.1
From 2e957ee8b7ee20de4f3fa4dd0e63a7e179972d7f Mon Sep 17 00:00:00 2001
From: Begasus <begasus@gmail.com>
Date: Sun, 24 Apr 2022 08:50:42 +0000
Subject: Fixes from openSUSE proj8.diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 64059ab..9c0595b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -124,22 +124,22 @@ find_path(OPENJPEG_INCLUDE_DIR
include_directories(${OPENJPEG_INCLUDE_DIR})
if(NOT WIN32)
- include(cmake/FindPROJ4.cmake)
- if(NOT PROJ4_FOUND)
- message(FATAL_ERROR "PROJ.4 library not found!")
+ include(cmake/FindPROJ8.cmake)
+ if(NOT PROJ8_FOUND)
+ message(FATAL_ERROR "PROJ.8 library not found!")
endif()
- include_directories(${PROJ4_INCLUDE_DIRS})
+ include_directories(${PROJ8_INCLUDE_DIRS})
endif()
if(WIN32)
- find_library(PROJ4_LIBRARIES
+ find_library(PROJ8_LIBRARIES
NAME "libproj.a"
PATHS
$ENV{EXTERNLIBS}/lib
/opt/lib
REQUIRED
)
- find_path(PROJ4_INCLUDE_DIRS
- NAMES "proj_api.h"
+ find_path(PROJ8_INCLUDE_DIRS
+ NAMES "proj.h"
PATHS
$ENV{EXTERNLIBS}/include
/opt/include
diff --git a/cmake/FindPROJ8.cmake b/cmake/FindPROJ8.cmake
new file mode 100644
index 0000000..74896f2
--- /dev/null
+++ b/cmake/FindPROJ8.cmake
@@ -0,0 +1,76 @@
+# - Find PROJ8
+# Find the PROJ8 includes and library
+#
+# PROJ8_INCLUDE_DIR - Where to find PROJ8 includes
+# PROJ8_LIBRARIES - List of libraries when using PROJ8
+# PROJ8_FOUND - True if PROJ8 was found
+
+IF(PROJ8_INCLUDE_DIR)
+ SET(PROJ8_FIND_QUIETLY TRUE)
+ENDIF(PROJ8_INCLUDE_DIR)
+
+FIND_PATH(PROJ8_INCLUDE_DIR "proj.h"
+ PATHS
+ $ENV{EXTERNLIBS}/include
+ $ENV{EXTERNLIBS}/PROJ8/include
+ ~/Library/Frameworks/include
+ /Library/Frameworks/include
+ /usr/local/include
+ /usr/include
+ /sw/include # Fink
+ /opt/local/include # DarwinPorts
+ /opt/csw/include # Blastwave
+ /opt/include
+ DOC "PROJ8 - Headers"
+)
+
+SET(PROJ8_NAMES PROJ8 proj proj_8_0)
+SET(PROJ8_DBG_NAMES PROJ8D projD proj_8_0_1)
+
+FIND_LIBRARY(PROJ8_LIBRARY NAMES ${PROJ8_NAMES}
+ PATHS
+ $ENV{EXTERNLIBS}
+ $ENV{EXTERNLIBS}/PROJ8
+ ~/Library/Frameworks
+ /Library/Frameworks
+ /usr/local
+ /usr
+ /sw
+ /opt/local
+ /opt/csw
+ /opt
+ PATH_SUFFIXES lib lib64
+ DOC "PROJ8 - Library"
+)
+
+INCLUDE(FindPackageHandleStandardArgs)
+
+IF(MSVC)
+ # VisualStudio needs a debug version
+ FIND_LIBRARY(PROJ8_LIBRARY_DEBUG NAMES ${PROJ8_DBG_NAMES}
+ PATHS
+ $ENV{EXTERNLIBS}/PROJ8/lib
+ DOC "PROJ8 - Library (Debug)"
+ )
+
+ IF(PROJ8_LIBRARY_DEBUG AND PROJ8_LIBRARY)
+ SET(PROJ8_LIBRARIES optimized ${PROJ8_LIBRARY} debug ${PROJ8_LIBRARY_DEBUG})
+ ENDIF(PROJ8_LIBRARY_DEBUG AND PROJ8_LIBRARY)
+
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(PROJ8 DEFAULT_MSG PROJ8_LIBRARY PROJ8_LIBRARY_DEBUG PROJ8_INCLUDE_DIR)
+
+ MARK_AS_ADVANCED(PROJ8_LIBRARY PROJ8_LIBRARY_DEBUG PROJ8_INCLUDE_DIR)
+
+ELSE(MSVC)
+ # rest of the world
+ SET(PROJ8_LIBRARIES ${PROJ8_LIBRARY})
+
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(PROJ8 DEFAULT_MSG PROJ8_LIBRARY PROJ8_INCLUDE_DIR)
+
+ MARK_AS_ADVANCED(PROJ8_LIBRARY PROJ8_INCLUDE_DIR)
+
+ENDIF(MSVC)
+
+IF(PROJ8_FOUND)
+ SET(PROJ8_INCLUDE_DIRS ${PROJ8_INCLUDE_DIR})
+ENDIF(PROJ8_FOUND)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 8cd9314..fdc47ab 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -122,7 +122,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/util)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/map ${MAP_GENERATED_HEADERS})
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/GUI ${GUI_GENERATED_HEADERS})
-target_link_libraries(${CMAKE_PROJECT_NAME} g2clib gui util map ${LIBNOVA_LIBRARY} ${OPENJPEG_LIBRARIES} ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${Qt5Network_LIBRARIES} ${Qt5Xml_LIBRARIES} ${Qt5PrintSupport_LIBRARIES} ${BZIP2_LIBRARIES} ${ZLIB_LIBRARIES} ${PROJ4_LIBRARIES} ${PNG_LIBRARIES})
+target_link_libraries(${CMAKE_PROJECT_NAME} g2clib gui util map ${LIBNOVA_LIBRARY} ${OPENJPEG_LIBRARIES} ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${Qt5Network_LIBRARIES} ${Qt5Xml_LIBRARIES} ${Qt5PrintSupport_LIBRARIES} ${BZIP2_LIBRARIES} ${ZLIB_LIBRARIES} ${PROJ8_LIBRARIES} ${PNG_LIBRARIES})
# Sanitizers, part 2/2
if ( CMAKE_VERSION VERSION_GREATER 3.4 )
diff --git a/src/map/Projection.h b/src/map/Projection.h
index b4ca7f5..d482e0d 100644
--- a/src/map/Projection.h
+++ b/src/map/Projection.h
@@ -21,10 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <QObject>
#include <cstdio>
-#ifndef ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
-#define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
-#endif
-#include "proj_api.h"
+#include "proj.h"
class Projection : public QObject
{
@@ -141,7 +138,7 @@ class Projection_libproj : public Projection
int getProjection() {return currentProj;}
private :
- projPJ libProj;
+ PJ * libProj;
int currentProj;
};
--
2.35.1
From 239c6d39523676592d17433709c41af512ad2eda Mon Sep 17 00:00:00 2001
From: begasus <begasus@gmail.com>
Date: Sun, 24 Apr 2022 08:54:41 +0000
Subject: Fixes from openSUSE projection.diff
diff --git a/src/map/Projection_libproj.cpp b/src/map/Projection_libproj.cpp
index 1dcbd54..0299714 100644
--- a/src/map/Projection_libproj.cpp
+++ b/src/map/Projection_libproj.cpp
@@ -93,9 +93,9 @@ void Projection_libproj::setProjection(int code)
params[nbpar++] = "no_defs";
params[nbpar++] = "over"; // allow longitude > 180°
// XXX ouch pj_init
- libProj = pj_init(nbpar, (char **)params);
+ libProj = proj_create_argv(PJ_DEFAULT_CTX, nbpar, (char **)params);
if (!libProj)
- printf("proj error: %s\n", pj_strerrno(pj_errno));
+ printf("proj error: %s\n", proj_errno_string(proj_errno(libProj)));
assert(libProj);
currentProj = code;
// libProj->over = 1; // allow longitude > 180°
@@ -106,23 +106,23 @@ void Projection_libproj::setProjection(int code)
Projection_libproj::~Projection_libproj()
{
if (libProj != nullptr) {
- pj_free(libProj);
+ proj_destroy(libProj);
}
}
//-------------------------------------------------------------------------------
void Projection_libproj::map2screen(double x, double y, int *i, int *j) const
{
- projUV data, res;
+ PJ_COORD data, res;
if (y <= -90.0)
y = -90.0+1e-5;
if (y >= 90.0)
y = 90.0-1e-5;
- data.v = y * DEG_TO_RAD;
- data.u = x * DEG_TO_RAD;
- res = pj_fwd(data, libProj);
- *i = (int) (W/2.0 + scale * (res.u/111319.0-CX) + 0.5);
- *j = (int) (H/2.0 - scale * (res.v/111319.0-CY) + 0.5);
+ data.uv.v = y;
+ data.uv.u = x;
+ res = proj_trans(libProj, PJ_FWD, data);
+ *i = (int) (W/2.0 + scale * (res.uv.u/111319.0-CX) + 0.5);
+ *j = (int) (H/2.0 - scale * (res.uv.v/111319.0-CY) + 0.5);
//printf("PROJ map2screen (%f %f) -> (%3d %3d)\n", x,y, *i,*j);
}
@@ -130,12 +130,12 @@ void Projection_libproj::map2screen(double x, double y, int *i, int *j) const
//-------------------------------------------------------------------------------
void Projection_libproj::screen2map(int i, int j, double *x, double *y) const
{
- projUV data, res;
- data.u = ((i-W/2.0)/scale+ CX)*111319.0 ;
- data.v = ((H/2.0-j)/scale+ CY)*111319.0 ;
- res = pj_inv(data, libProj);
- *x = (double)(res.u*RAD_TO_DEG);
- *y = (double)(res.v*RAD_TO_DEG);
+ PJ_COORD data, res;
+ data.uv.u = ((i-W/2.0)/scale+ CX)*111319.0 ;
+ data.uv.v = ((H/2.0-j)/scale+ CY)*111319.0 ;
+ res = proj_trans(libProj, PJ_INV, data);
+ *x = (double)(res.uv.u);
+ *y = (double)(res.uv.v);
//printf("PROJ screen2map (%3d %3d) -> (%f %f)\n", i,j, *x,*y);
}
//--------------------------------------------------------------
--
2.35.1

View File

@@ -11,7 +11,7 @@ models found on sister site OpenSkiron.org"
HOMEPAGE="https://opengribs.org/"
COPYRIGHT="2008-2012 - Jacques Zaninetti"
LICENSE="GNU GPL v3"
REVISION="1"
REVISION="2"
SOURCE_URI="https://github.com/opengribs/XyGrib/archive/v$portVersion.tar.gz"
SOURCE_URI_2="https://github.com/opengribs/XyGrib/releases/download/v1.1.1/XyGrib___High_Resolution_Maps.tar.gz"
SOURCE_URI_3="https://github.com/opengribs/XyGrib/releases/download/v1.2.6.1/XyGrib__Languages_v1.2.6.tgz"
@@ -81,7 +81,6 @@ BUILD()
cp -r $sourceDir4/* $sourceDir/data/gis
cmake -B build -S . \
$cmakeDirArgs \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$appsDir
make -C build $jobArgs