You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
163 lines
5.4 KiB
163 lines
5.4 KiB
diff -up cmake-2.8.10-rc3/Modules/FindPostgreSQL.cmake.findpostgresql cmake-2.8.10-rc3/Modules/FindPostgreSQL.cmake |
|
--- cmake-2.8.10-rc3/Modules/FindPostgreSQL.cmake.findpostgresql 2012-10-24 11:12:01.000000000 -0600 |
|
+++ cmake-2.8.10-rc3/Modules/FindPostgreSQL.cmake 2012-10-24 19:49:54.189433358 -0600 |
|
@@ -92,77 +92,99 @@ set( PostgreSQL_ROOT_DIRECTORIES |
|
# |
|
# Look for an installation. |
|
# |
|
-find_path(PostgreSQL_INCLUDE_DIR |
|
- NAMES libpq-fe.h |
|
+find_path(PostgreSQL_CONFIG_DIR |
|
+ NAMES pg_config |
|
PATHS |
|
# Look in other places. |
|
${PostgreSQL_ROOT_DIRECTORIES} |
|
PATH_SUFFIXES |
|
- pgsql |
|
- postgresql |
|
- include |
|
+ "" |
|
+ bin |
|
# Help the user find it if we cannot. |
|
- DOC "The ${PostgreSQL_INCLUDE_DIR_MESSAGE}" |
|
+ DOC "The ${PostgreSQL_ROOT_DIR_MESSAGE}" |
|
) |
|
|
|
-find_path(PostgreSQL_TYPE_INCLUDE_DIR |
|
- NAMES catalog/pg_type.h |
|
- PATHS |
|
- # Look in other places. |
|
- ${PostgreSQL_ROOT_DIRECTORIES} |
|
- PATH_SUFFIXES |
|
- postgresql |
|
- pgsql/server |
|
- postgresql/server |
|
- include/server |
|
- # Help the user find it if we cannot. |
|
- DOC "The ${PostgreSQL_INCLUDE_DIR_MESSAGE}" |
|
-) |
|
- |
|
-# The PostgreSQL library. |
|
-set (PostgreSQL_LIBRARY_TO_FIND pq) |
|
-# Setting some more prefixes for the library |
|
-set (PostgreSQL_LIB_PREFIX "") |
|
-if ( WIN32 ) |
|
- set (PostgreSQL_LIB_PREFIX ${PostgreSQL_LIB_PREFIX} "lib") |
|
- set ( PostgreSQL_LIBRARY_TO_FIND ${PostgreSQL_LIB_PREFIX}${PostgreSQL_LIBRARY_TO_FIND}) |
|
-endif() |
|
+macro (fail_if) |
|
+ if (${ARGV}) |
|
+ message (WARNING "Couldn't determine PostgreSQL configuration.") |
|
+ unset (PostgreSQL_CONFIG_DIR) |
|
+ break () |
|
+ endif () |
|
+endmacro () |
|
+ |
|
+macro (run_pg_config arg var) |
|
+ execute_process(COMMAND ${PostgreSQL_CONFIG_DIR}/pg_config ${arg} |
|
+ RESULT_VARIABLE pgsql_config_result |
|
+ OUTPUT_VARIABLE ${var} |
|
+ OUTPUT_STRIP_TRAILING_WHITESPACE) |
|
+ |
|
+ fail_if (NOT ${pgsql_config_result} EQUAL 0 OR NOT ${var}) |
|
+endmacro () |
|
+ |
|
+foreach (once only) |
|
+ fail_if (NOT PostgreSQL_CONFIG_DIR) |
|
+ |
|
+ run_pg_config (--version PostgreSQL_VERSION_STRING) |
|
+ string (REGEX REPLACE "^PostgreSQL (.*)$" "\\1" |
|
+ PostgreSQL_VERSION_STRING "${PostgreSQL_VERSION_STRING}") |
|
+ fail_if (NOT PostgreSQL_VERSION_STRING) |
|
+ |
|
+ run_pg_config (--includedir PostgreSQL_INCLUDE_DIR) |
|
+ fail_if (NOT EXISTS "${PostgreSQL_INCLUDE_DIR}/libpq-fe.h") |
|
+ |
|
+ find_path(PostgreSQL_TYPE_INCLUDE_DIR |
|
+ NAMES catalog/pg_type.h |
|
+ PATHS ${PostgreSQL_INCLUDE_DIR} |
|
+ PATH_SUFFIXES |
|
+ pgsql/server |
|
+ postgresql/server |
|
+ include/server |
|
+ # Help the user find it if we cannot. |
|
+ DOC "The ${PostgreSQL_INCLUDE_DIR_MESSAGE}" |
|
+ ) |
|
+ fail_if (NOT PostgreSQL_TYPE_INCLUDE_DIR) |
|
+ |
|
+ set (PostgreSQL_INCLUDE_DIRS |
|
+ ${PostgreSQL_INCLUDE_DIR} ${PostgreSQL_TYPE_INCLUDE_DIR}) |
|
+ |
|
+ run_pg_config (--libdir PostgreSQL_LIBRARY_DIRS) |
|
+ |
|
+ # The PostgreSQL library. |
|
+ set (PostgreSQL_LIBRARY_TO_FIND pq) |
|
+ # Setting some more prefixes for the library |
|
+ set (PostgreSQL_LIB_PREFIX "") |
|
+ if (WIN32) |
|
+ set (PostgreSQL_LIB_PREFIX ${PostgreSQL_LIB_PREFIX} "lib") |
|
+ set (PostgreSQL_LIBRARY_TO_FIND ${PostgreSQL_LIB_PREFIX}${PostgreSQL_LIBRARY_TO_FIND}) |
|
+ endif() |
|
+ |
|
+ find_library (PostgreSQL_LIBRARY |
|
+ NAMES ${PostgreSQL_LIBRARY_TO_FIND} |
|
+ PATHS ${PostgreSQL_LIBRARY_DIRS} |
|
+ PATH_SUFFIXES lib |
|
+ ) |
|
+ fail_if (NOT PostgreSQL_LIBRARY) |
|
+ set (PostgreSQL_LIBRARIES ${PostgreSQL_LIBRARY_TO_FIND}) |
|
|
|
-find_library( PostgreSQL_LIBRARY |
|
- NAMES ${PostgreSQL_LIBRARY_TO_FIND} |
|
- PATHS |
|
- ${PostgreSQL_ROOT_DIRECTORIES} |
|
- PATH_SUFFIXES |
|
- lib |
|
-) |
|
-get_filename_component(PostgreSQL_LIBRARY_DIR ${PostgreSQL_LIBRARY} PATH) |
|
- |
|
-if (PostgreSQL_INCLUDE_DIR AND EXISTS "${PostgreSQL_INCLUDE_DIR}/pg_config.h") |
|
- file(STRINGS "${PostgreSQL_INCLUDE_DIR}/pg_config.h" pgsql_version_str |
|
- REGEX "^#define[\t ]+PG_VERSION[\t ]+\".*\"") |
|
- |
|
- string(REGEX REPLACE "^#define[\t ]+PG_VERSION[\t ]+\"([^\"]*)\".*" "\\1" |
|
- PostgreSQL_VERSION_STRING "${pgsql_version_str}") |
|
- unset(pgsql_version_str) |
|
-endif() |
|
+endforeach() |
|
|
|
# Did we find anything? |
|
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) |
|
-find_package_handle_standard_args(PostgreSQL |
|
- REQUIRED_VARS PostgreSQL_LIBRARY PostgreSQL_INCLUDE_DIR PostgreSQL_TYPE_INCLUDE_DIR |
|
- VERSION_VAR PostgreSQL_VERSION_STRING) |
|
-set( PostgreSQL_FOUND ${POSTGRESQL_FOUND}) |
|
+include (FindPackageHandleStandardArgs) |
|
+find_package_handle_standard_args (PostgreSQL |
|
+ REQUIRED_VARS |
|
+ PostgreSQL_LIBRARY_DIRS |
|
+ PostgreSQL_CONFIG_DIR |
|
+ PostgreSQL_INCLUDE_DIRS |
|
+ PostgreSQL_LIBRARIES |
|
+ VERSION_VAR |
|
+ PostgreSQL_VERSION_STRING |
|
+) |
|
+set (PostgreSQL_FOUND ${POSTGRESQL_FOUND}) |
|
|
|
# Now try to get the include and library path. |
|
-if(PostgreSQL_FOUND) |
|
- |
|
- set(PostgreSQL_INCLUDE_DIRS ${PostgreSQL_INCLUDE_DIR} ${PostgreSQL_TYPE_INCLUDE_DIR} ) |
|
- set(PostgreSQL_LIBRARY_DIRS ${PostgreSQL_LIBRARY_DIR} ) |
|
- set(PostgreSQL_LIBRARIES ${PostgreSQL_LIBRARY_TO_FIND}) |
|
- |
|
- #message("Final PostgreSQL include dir: ${PostgreSQL_INCLUDE_DIRS}") |
|
- #message("Final PostgreSQL library dir: ${PostgreSQL_LIBRARY_DIRS}") |
|
- #message("Final PostgreSQL libraries: ${PostgreSQL_LIBRARIES}") |
|
+if (PostgreSQL_FOUND) |
|
+ message (STATUS "PostgreSQL include dirs: ${PostgreSQL_INCLUDE_DIRS}") |
|
+ message (STATUS "PostgreSQL library dirs: ${PostgreSQL_LIBRARY_DIRS}") |
|
+ message (STATUS "PostgreSQL libraries: ${PostgreSQL_LIBRARIES}") |
|
endif() |
|
|
|
-mark_as_advanced(PostgreSQL_INCLUDE_DIR PostgreSQL_TYPE_INCLUDE_DIR PostgreSQL_LIBRARY )
|
|
|