Block building on spatialindex >= 2.1

See https://github.com/libspatialindex/libspatialindex/issues/276,
this is silently giving misleading results
This commit is contained in:
Nyall Dawson 2025-09-16 11:03:40 +10:00
parent 01c86da6a4
commit 070c13e4ab
2 changed files with 18 additions and 2 deletions

View File

@ -451,6 +451,9 @@ if(WITH_CORE)
message(STATUS "Found GDAL: ${GDAL_VERSION} ${GDAL_DIR}") message(STATUS "Found GDAL: ${GDAL_VERSION} ${GDAL_DIR}")
find_package(EXPAT REQUIRED) find_package(EXPAT REQUIRED)
find_package(Spatialindex REQUIRED) find_package(Spatialindex REQUIRED)
if(SPATIALINDEX_VERSION VERSION_GREATER_EQUAL "2.1")
message(FATAL_ERROR "Cannot build QGIS using libspatialindex >= 2.1, see https://github.com/libspatialindex/libspatialindex/issues/276")
endif()
find_package(LibZip REQUIRED) find_package(LibZip REQUIRED)
set (WITH_INTERNAL_NLOHMANN_JSON ${PREFER_INTERNAL_LIBS} CACHE BOOL "Determines whether the vendored copy of nlohmann-json should be used") set (WITH_INTERNAL_NLOHMANN_JSON ${PREFER_INTERNAL_LIBS} CACHE BOOL "Determines whether the vendored copy of nlohmann-json should be used")
find_package(nlohmann_json REQUIRED) find_package(nlohmann_json REQUIRED)

View File

@ -8,7 +8,7 @@
# SPATIALINDEX_FOUND = system has Spatialindex lib # SPATIALINDEX_FOUND = system has Spatialindex lib
# SPATIALINDEX_LIBRARY = full path to the Spatialindex library # SPATIALINDEX_LIBRARY = full path to the Spatialindex library
# SPATIALINDEX_INCLUDE_DIR = where to find headers # SPATIALINDEX_INCLUDE_DIR = where to find headers
# # SPATIALINDEX_VERSION = version number
FIND_PATH(SPATIALINDEX_INCLUDE_DIR spatialindex/SpatialIndex.h PATHS FIND_PATH(SPATIALINDEX_INCLUDE_DIR spatialindex/SpatialIndex.h PATHS
@ -32,8 +32,21 @@ IF (SPATIALINDEX_INCLUDE_DIR AND SPATIALINDEX_LIBRARY)
ENDIF (SPATIALINDEX_INCLUDE_DIR AND SPATIALINDEX_LIBRARY) ENDIF (SPATIALINDEX_INCLUDE_DIR AND SPATIALINDEX_LIBRARY)
IF (SPATIALINDEX_FOUND) IF (SPATIALINDEX_FOUND)
set(spatialindex_version_file
"${SPATIALINDEX_INCLUDE_DIR}/spatialindex/Version.h")
file(STRINGS "${spatialindex_version_file}" spatialindex_version_major REGEX "#define SIDX_VERSION_MAJOR")
list(GET spatialindex_version_major 0 spatialindex_version_major)
string(REGEX MATCH "[0-9]+" SPATIALINDEX_VERSION_MAJOR ${spatialindex_version_major} )
file(STRINGS "${spatialindex_version_file}" spatialindex_version_minor REGEX "#define SIDX_VERSION_MINOR")
list(GET spatialindex_version_minor 0 spatialindex_version_minor)
string(REGEX MATCH "[0-9]+" SPATIALINDEX_VERSION_MINOR ${spatialindex_version_minor} )
file(STRINGS "${spatialindex_version_file}" spatialindex_version_rev REGEX "#define SIDX_VERSION_REV")
list(GET spatialindex_version_rev 0 spatialindex_version_rev)
string(REGEX MATCH "[0-9]+" SPATIALINDEX_VERSION_REV ${spatialindex_version_rev} )
set(SPATIALINDEX_VERSION "${SPATIALINDEX_VERSION_MAJOR}.${SPATIALINDEX_VERSION_MINOR}.${SPATIALINDEX_VERSION_REV}")
IF (NOT SPATIALINDEX_FIND_QUIETLY) IF (NOT SPATIALINDEX_FIND_QUIETLY)
MESSAGE(STATUS "Found Spatialindex: ${SPATIALINDEX_LIBRARY}") MESSAGE(STATUS "Found Spatialindex: ${SPATIALINDEX_LIBRARY} (${SPATIALINDEX_VERSION})")
ENDIF (NOT SPATIALINDEX_FIND_QUIETLY) ENDIF (NOT SPATIALINDEX_FIND_QUIETLY)
ELSE (SPATIALINDEX_FOUND) ELSE (SPATIALINDEX_FOUND)
IF (SPATIALINDEX_FIND_REQUIRED) IF (SPATIALINDEX_FIND_REQUIRED)