mirror of
https://github.com/Kitware/CMake.git
synced 2026-08-04 14:50:23 +00:00
FindPostgreSQL: extract the actual version number
The `PG_VERSION` variable can be mangled by distributions to indicate things like the name of the distro and package build numbers. However, `PG_VERSION_NUM` is new in 8.2 (2006), so keep the old extraction code around for old versions.
This commit is contained in:
@@ -175,14 +175,34 @@ if (PostgreSQL_INCLUDE_DIR)
|
|||||||
foreach(_PG_CONFIG_HEADER ${_PG_CONFIG_HEADERS})
|
foreach(_PG_CONFIG_HEADER ${_PG_CONFIG_HEADERS})
|
||||||
if(EXISTS "${_PG_CONFIG_HEADER}")
|
if(EXISTS "${_PG_CONFIG_HEADER}")
|
||||||
file(STRINGS "${_PG_CONFIG_HEADER}" pgsql_version_str
|
file(STRINGS "${_PG_CONFIG_HEADER}" pgsql_version_str
|
||||||
REGEX "^#define[\t ]+PG_VERSION[\t ]+\".*\"")
|
REGEX "^#define[\t ]+PG_VERSION_NUM[\t ]+.*")
|
||||||
if(pgsql_version_str)
|
if(pgsql_version_str)
|
||||||
string(REGEX REPLACE "^#define[\t ]+PG_VERSION[\t ]+\"([^\"]*)\".*"
|
string(REGEX REPLACE "^#define[\t ]+PG_VERSION_NUM[\t ]+([0-9]*).*"
|
||||||
"\\1" PostgreSQL_VERSION_STRING "${pgsql_version_str}")
|
"\\1" _PostgreSQL_VERSION_NUM "${pgsql_version_str}")
|
||||||
break()
|
break()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
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)
|
||||||
|
else ()
|
||||||
|
foreach(_PG_CONFIG_HEADER ${_PG_CONFIG_HEADERS})
|
||||||
|
if(EXISTS "${_PG_CONFIG_HEADER}")
|
||||||
|
file(STRINGS "${_PG_CONFIG_HEADER}" pgsql_version_str
|
||||||
|
REGEX "^#define[\t ]+PG_VERSION[\t ]+\".*\"")
|
||||||
|
if(pgsql_version_str)
|
||||||
|
string(REGEX REPLACE "^#define[\t ]+PG_VERSION[\t ]+\"([^\"]*)\".*"
|
||||||
|
"\\1" PostgreSQL_VERSION_STRING "${pgsql_version_str}")
|
||||||
|
break()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endif ()
|
||||||
|
unset(_PostgreSQL_VERSION_NUM)
|
||||||
unset(pgsql_version_str)
|
unset(pgsql_version_str)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user