Skip to content

Commit ad7e8ea

Browse files
committedMar 19, 2019
More flexible proj version handling
Sponsored by ICSM
1 parent 41e0c01 commit ad7e8ea

File tree

3 files changed

+14
-19
lines changed

3 files changed

+14
-19
lines changed
 

‎cmake/FindProj.cmake

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,23 +50,22 @@ IF (PROJ_INCLUDE_DIR AND PROJ_LIBRARY)
5050
SET(PROJ_FOUND TRUE)
5151
ENDIF (PROJ_INCLUDE_DIR AND PROJ_LIBRARY)
5252

53-
5453
IF (PROJ_FOUND)
55-
# This macro checks if the symbol exists
56-
include(CheckLibraryExists)
57-
check_library_exists("${PROJ_LIBRARY}" proj_info "" PROJ_HAS_INFO)
58-
54+
IF (EXISTS ${PROJ_INCLUDE_DIR}/proj.h)
55+
FILE(READ ${PROJ_INCLUDE_DIR}/proj.h proj_version)
56+
STRING(REGEX REPLACE "^.*PROJ_VERSION_MAJOR +([0-9]+).*$" "\\1" PROJ_VERSION_MAJOR "${proj_version}")
57+
STRING(REGEX REPLACE "^.*PROJ_VERSION_MINOR +([0-9]+).*$" "\\1" PROJ_VERSION_MINOR "${proj_version}")
58+
STRING(REGEX REPLACE "^.*PROJ_VERSION_PATCH +([0-9]+).*$" "\\1" PROJ_VERSION_PATCH "${proj_version}")
59+
STRING(CONCAT PROJ_VERSION_STR "(" ${PROJ_VERSION_MAJOR} "." ${PROJ_VERSION_MINOR} "." ${PROJ_VERSION_PATCH} ")")
60+
ELSE(EXISTS)
61+
SET(PROJ_VERSION_MAJOR 4)
62+
ENDIF (EXISTS)
5963
IF (NOT PROJ_FIND_QUIETLY)
60-
IF (PROJ_HAS_INFO)
61-
FILE(READ ${PROJ_INCLUDE_DIR}/proj.h proj_version)
62-
STRING(REGEX REPLACE "^.*PROJ_VERSION_MAJOR +([0-9]+).*$" "\\1" PROJ_VERSION_MAJOR "${proj_version}")
63-
STRING(REGEX REPLACE "^.*PROJ_VERSION_MINOR +([0-9]+).*$" "\\1" PROJ_VERSION_MINOR "${proj_version}")
64-
STRING(REGEX REPLACE "^.*PROJ_VERSION_PATCH +([0-9]+).*$" "\\1" PROJ_VERSION_PATCH "${proj_version}")
65-
STRING(CONCAT PROJ_VERSION_STR "(" ${PROJ_VERSION_MAJOR} "." ${PROJ_VERSION_MINOR} "." ${PROJ_VERSION_PATCH} ")")
66-
ENDIF (PROJ_HAS_INFO)
67-
MESSAGE(STATUS "Found Proj: ${PROJ_LIBRARY} ${PROJ_VERSION_STR}")
64+
MESSAGE(STATUS "Found Proj: ${PROJ_LIBRARY} version ${PROJ_VERSION_MAJOR} ${PROJ_VERSION_STR}")
6865
ENDIF (NOT PROJ_FIND_QUIETLY)
6966

67+
ADD_DEFINITIONS(-DPROJ_VERSION_MAJOR=${PROJ_VERSION_MAJOR})
68+
7069
ELSE (PROJ_FOUND)
7170

7271
IF (PROJ_FIND_REQUIRED)

‎src/app/CMakeLists.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -581,10 +581,6 @@ IF (POSTGRES_FOUND)
581581
ENDIF(HAVE_PGCONFIG)
582582
ENDIF (POSTGRES_FOUND)
583583

584-
IF (PROJ_HAS_INFO)
585-
ADD_DEFINITIONS(-DPROJ_HAS_INFO)
586-
ENDIF (PROJ_HAS_INFO)
587-
588584
# Test data dir for QgsAppScreenShots
589585
ADD_DEFINITIONS(-DTEST_DATA_DIR="${TEST_DATA_DIR}")
590586

‎src/app/qgisapp.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ Q_GUI_EXPORT extern int qt_defaultDpiX();
352352
//
353353
#include <ogr_api.h>
354354
#include <gdal_version.h>
355-
#ifdef PROJ_HAS_INFO
355+
#if PROJ_VERSION_MAJOR > 4
356356
#include <proj.h>
357357
#endif
358358
#ifndef ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
@@ -4509,7 +4509,7 @@ void QgisApp::about()
45094509

45104510
versionString += QLatin1String( "</tr><tr>" );
45114511

4512-
#ifdef PROJ_HAS_INFO
4512+
#if PROJ_VERSION_MAJOR > 4
45134513
PJ_INFO info = proj_info();
45144514
versionString += "<td>" + tr( "Compiled against PROJ" ) + "</td><td>" + QString::number( PJ_VERSION ) + "</td>";
45154515
versionString += "<td>" + tr( "Running against PROJ" ) + "</td><td>" + info.version + "</td>";

0 commit comments

Comments
 (0)
Please sign in to comment.