FindPostgreSQL: Search some more common packaging locations

Use PATH_SUFFIXES to search more common packaging locations.

On Windows, we can use suffixes to search in the standard Program Files
locations without hard-coding the C:/ path.

On Ubuntu/Debian, starting with PostgreSQL 9.3 the header file pg_type.h
is moved to a separate package (from libpq-dev to postgresql-server-dev)
and consequently the file pg_type.h is moved to a new location:

  /usr/include/postgresql/<version>/server/catalog/pg_type.h

While at it, use separate PATH_SUFFIXES variables for library, type and
include (this is merely an optimization).
This commit is contained in:
Tamar Kranenburg 2015-05-30 15:17:47 +02:00 committed by Brad King
parent 8bd9505976
commit d4fd30d8d8
1 changed files with 17 additions and 9 deletions

View File

@ -4,9 +4,6 @@
# #
# Find the PostgreSQL installation. # Find the PostgreSQL installation.
# #
# In Windows, we make the assumption that, if the PostgreSQL files are
# installed, the default directory will be C:\Program Files\PostgreSQL.
#
# This module defines # This module defines
# #
# :: # ::
@ -87,16 +84,24 @@ set(PostgreSQL_KNOWN_VERSIONS ${PostgreSQL_ADDITIONAL_VERSIONS}
"9.4" "9.3" "9.2" "9.1" "9.0" "8.4" "8.3" "8.2" "8.1" "8.0") "9.4" "9.3" "9.2" "9.1" "9.0" "8.4" "8.3" "8.2" "8.1" "8.0")
# Define additional search paths for root directories. # Define additional search paths for root directories.
if ( WIN32 )
foreach (suffix ${PostgreSQL_KNOWN_VERSIONS} )
set(PostgreSQL_ADDITIONAL_SEARCH_PATHS ${PostgreSQL_ADDITIONAL_SEARCH_PATHS} "C:/Program Files/PostgreSQL/${suffix}" )
endforeach()
endif()
set( PostgreSQL_ROOT_DIRECTORIES set( PostgreSQL_ROOT_DIRECTORIES
ENV PostgreSQL_ROOT ENV PostgreSQL_ROOT
${PostgreSQL_ROOT} ${PostgreSQL_ROOT}
${PostgreSQL_ADDITIONAL_SEARCH_PATHS}
) )
foreach(suffix ${PostgreSQL_KNOWN_VERSIONS})
if(WIN32)
list(APPEND PostgreSQL_LIBRARY_ADDITIONAL_SEARCH_SUFFIXES
"PostgreSQL/${suffix}/lib")
list(APPEND PostgreSQL_INCLUDE_ADDITIONAL_SEARCH_SUFFIXES
"PostgreSQL/${suffix}/include")
list(APPEND PostgreSQL_TYPE_ADDITIONAL_SEARCH_SUFFIXES
"PostgreSQL/${suffix}/include/server")
endif()
if(UNIX)
list(APPEND PostgreSQL_TYPE_ADDITIONAL_SEARCH_SUFFIXES
"postgresql/${suffix}/server")
endif()
endforeach()
# #
# Look for an installation. # Look for an installation.
@ -110,6 +115,7 @@ find_path(PostgreSQL_INCLUDE_DIR
pgsql pgsql
postgresql postgresql
include include
${PostgreSQL_INCLUDE_ADDITIONAL_SEARCH_SUFFIXES}
# Help the user find it if we cannot. # Help the user find it if we cannot.
DOC "The ${PostgreSQL_INCLUDE_DIR_MESSAGE}" DOC "The ${PostgreSQL_INCLUDE_DIR_MESSAGE}"
) )
@ -124,6 +130,7 @@ find_path(PostgreSQL_TYPE_INCLUDE_DIR
pgsql/server pgsql/server
postgresql/server postgresql/server
include/server include/server
${PostgreSQL_TYPE_ADDITIONAL_SEARCH_SUFFIXES}
# Help the user find it if we cannot. # Help the user find it if we cannot.
DOC "The ${PostgreSQL_INCLUDE_DIR_MESSAGE}" DOC "The ${PostgreSQL_INCLUDE_DIR_MESSAGE}"
) )
@ -143,6 +150,7 @@ find_library(PostgreSQL_LIBRARY
${PostgreSQL_ROOT_DIRECTORIES} ${PostgreSQL_ROOT_DIRECTORIES}
PATH_SUFFIXES PATH_SUFFIXES
lib lib
${PostgreSQL_LIBRARY_ADDITIONAL_SEARCH_SUFFIXES}
# Help the user find it if we cannot. # Help the user find it if we cannot.
DOC "The ${PostgreSQL_LIBRARY_DIR_MESSAGE}" DOC "The ${PostgreSQL_LIBRARY_DIR_MESSAGE}"
) )