mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-26 00:00:39 -05:00
FindPostgreSQL: support version encoding used in pre-10 releases
With the 10.x release, PostgreSQL upstream started encoding the version as `MMmmmm` where `M` is major and `m` is minor. Prior to that, `MMmmPP` was used where `P` was the patch number. Detect this difference and decode it based on the used encoding. Fixes: #19912
This commit is contained in:
@@ -208,11 +208,22 @@ if (PostgreSQL_INCLUDE_DIR)
|
||||
endif()
|
||||
endforeach()
|
||||
if (_PostgreSQL_VERSION_NUM)
|
||||
math(EXPR _PostgreSQL_major_version "${_PostgreSQL_VERSION_NUM} / 10000")
|
||||
math(EXPR _PostgreSQL_minor_version "${_PostgreSQL_VERSION_NUM} % 10000")
|
||||
set(PostgreSQL_VERSION_STRING "${_PostgreSQL_major_version}.${_PostgreSQL_minor_version}")
|
||||
unset(_PostgreSQL_major_version)
|
||||
unset(_PostgreSQL_minor_version)
|
||||
# 9.x and older encoding
|
||||
if (_PostgreSQL_VERSION_NUM LESS 100000)
|
||||
math(EXPR _PostgreSQL_major_version "${_PostgreSQL_VERSION_NUM} / 10000")
|
||||
math(EXPR _PostgreSQL_minor_version "${_PostgreSQL_VERSION_NUM} % 10000 / 100")
|
||||
math(EXPR _PostgreSQL_patch_version "${_PostgreSQL_VERSION_NUM} % 100")
|
||||
set(PostgreSQL_VERSION_STRING "${_PostgreSQL_major_version}.${_PostgreSQL_minor_version}.${_PostgreSQL_patch_version}")
|
||||
unset(_PostgreSQL_major_version)
|
||||
unset(_PostgreSQL_minor_version)
|
||||
unset(_PostgreSQL_patch_version)
|
||||
else ()
|
||||
math(EXPR _PostgreSQL_major_version "${_PostgreSQL_VERSION_NUM} / 10000")
|
||||
math(EXPR _PostgreSQL_minor_version "${_PostgreSQL_VERSION_NUM} % 10000")
|
||||
set(PostgreSQL_VERSION_STRING "${_PostgreSQL_major_version}.${_PostgreSQL_minor_version}")
|
||||
unset(_PostgreSQL_major_version)
|
||||
unset(_PostgreSQL_minor_version)
|
||||
endif ()
|
||||
else ()
|
||||
foreach(_PG_CONFIG_HEADER ${_PG_CONFIG_HEADERS})
|
||||
if(EXISTS "${_PG_CONFIG_HEADER}")
|
||||
|
||||
Reference in New Issue
Block a user