提交 bdc99bc2e207303abc75641230c53c990b08e80e

作者 LJH 李佳桓
1 个父辈 064bf891

add

正在显示 1 个修改的文件 包含 134 行增加0 行删除
  1 +# Find PostgreSQL
  2 +# ~~~~~~~~~~~~~~~
  3 +# Copyright (c) 2007, Martin Dobias <wonder.sk at gmail.com>
  4 +# Redistribution and use is allowed according to the terms of the BSD license.
  5 +# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
  6 +#
  7 +# CMake module to search for PostgreSQL library
  8 +#
  9 +# pg_config is searched for in POSTGRES_CONFIG dir,
  10 +# default /usr/bin
  11 +#
  12 +# If it's found it sets POSTGRES_FOUND to TRUE
  13 +# and following variables are set:
  14 +# POSTGRES_INCLUDE_DIR
  15 +# POSTGRES_LIBRARY
  16 +
  17 +IF(ANDROID)
  18 + SET(POSTGRES_INCLUDE_DIR ${POSTGRES_INCLUDE_DIR} CACHE STRING INTERNAL)
  19 + SET(POSTGRES_LIBRARY ${PG_TMP}/libpq.so CACHE STRING INTERNAL)
  20 +ENDIF(ANDROID)
  21 +
  22 +IF(WIN32 AND NOT ANDROID)
  23 + IF (NOT POSTGRES_INCLUDE_DIR)
  24 + FIND_PATH(POSTGRES_INCLUDE_DIR libpq-fe.h
  25 + /usr/local/include
  26 + /usr/include
  27 + c:/msys/local/include
  28 + "$ENV{LIB_DIR}/include/postgresql"
  29 + "$ENV{LIB_DIR}/include"
  30 + )
  31 + ENDIF (NOT POSTGRES_INCLUDE_DIR)
  32 +
  33 + IF (NOT POSTGRES_LIBRARY)
  34 + FIND_LIBRARY(POSTGRES_LIBRARY NAMES pq libpq libpqdll PATHS
  35 + /usr/local/lib
  36 + /usr/lib
  37 + c:/msys/local/lib
  38 + "$ENV{LIB_DIR}/lib"
  39 + )
  40 + ENDIF (NOT POSTGRES_LIBRARY)
  41 +
  42 +ELSE(WIN32)
  43 + IF(UNIX)
  44 +
  45 + SET(POSTGRES_CONFIG_PREFER_PATH "$ENV{POSTGRES_HOME}/bin" CACHE STRING "preferred path to PG (pg_config)")
  46 + FIND_PROGRAM(POSTGRES_CONFIG pg_config
  47 + ${POSTGRES_CONFIG_PREFER_PATH}
  48 + /usr/local/pgsql/bin/
  49 + /usr/local/bin/
  50 + /usr/bin/
  51 + )
  52 + # MESSAGE("DBG POSTGRES_CONFIG ${POSTGRES_CONFIG}")
  53 +
  54 + IF (POSTGRES_CONFIG)
  55 + # set INCLUDE_DIR
  56 + EXEC_PROGRAM(${POSTGRES_CONFIG}
  57 + ARGS --includedir
  58 + OUTPUT_VARIABLE PG_TMP)
  59 + SET(POSTGRES_INCLUDE_DIR ${PG_TMP} CACHE STRING INTERNAL)
  60 +
  61 + # set LIBRARY_DIR
  62 + EXEC_PROGRAM(${POSTGRES_CONFIG}
  63 + ARGS --libdir
  64 + OUTPUT_VARIABLE PG_TMP)
  65 + IF (APPLE)
  66 + SET(POSTGRES_LIBRARY ${PG_TMP}/libpq.dylib CACHE STRING INTERNAL)
  67 + ELSEIF (CYGWIN)
  68 + EXEC_PROGRAM(${POSTGRES_CONFIG}
  69 + ARGS --libs
  70 + OUTPUT_VARIABLE PG_TMP)
  71 +
  72 + STRING(REGEX MATCHALL "[-][L]([^ ;])+" _LDIRS "${PG_TMP}")
  73 + STRING(REGEX MATCHALL "[-][l]([^ ;])+" _LLIBS "${PG_TMP}")
  74 +
  75 + FIND_LIBRARY(POSTGRES_LIBRARY NAMES pq PATHS /usr/lib /usr/local/lib)
  76 +
  77 + SET(_DIRS)
  78 + FOREACH(_DIR ${_LDIRS})
  79 + STRING(REPLACE "-L" "" _DIR ${_DIR})
  80 + SET(_DIRS ${_DIRS} ${_DIR})
  81 + ENDFOREACH(_DIR ${_LDIRS})
  82 +
  83 + SET(_LIBS)
  84 + FOREACH(_LIB ${_LLIBS})
  85 + STRING(REPLACE "-l" "" _LIB ${_LIB})
  86 + SET(_LIBS ${_LIBS} ${_LIB})
  87 + ENDFOREACH(_LIB ${_LDIRS})
  88 +
  89 + FOREACH(_LIBNAME ${_LIBS})
  90 + UNSET(PG_LIB CACHE)
  91 + FIND_LIBRARY(PG_LIB NAMES ${_LIBNAME} PATHS ${_DIRS} /usr/lib /usr/local/lib)
  92 + IF(NOT PG_LIB)
  93 + MESSAGE(FATAL "PostgreSQL dependency library ${_LIBNAME} not found")
  94 + ENDIF(NOT PG_LIB)
  95 + SET(POSTGRES_LIBRARY ${POSTGRES_LIBRARY} ${PG_LIB})
  96 + ENDFOREACH(_LIBNAME ${_LIBS})
  97 +
  98 + ELSE (CYGWIN)
  99 + FIND_LIBRARY(POSTGRES_LIBRARY NAMES pq libpq libpqdll PATHS ${PG_TMP}/lib)
  100 + ENDIF (APPLE)
  101 + ENDIF(POSTGRES_CONFIG)
  102 +
  103 + ENDIF(UNIX)
  104 +ENDIF(WIN32 AND NOT ANDROID)
  105 +
  106 +
  107 +IF (POSTGRES_INCLUDE_DIR AND POSTGRES_LIBRARY)
  108 + SET(POSTGRES_FOUND TRUE)
  109 + IF(EXISTS "${POSTGRES_INCLUDE_DIR}/pg_config.h")
  110 + SET(HAVE_PGCONFIG TRUE)
  111 + ELSE(EXISTS "${POSTGRES_INCLUDE_DIR}/pg_config.h")
  112 + SET(HAVE_PGCONFIG FALSE)
  113 + ENDIF(EXISTS "${POSTGRES_INCLUDE_DIR}/pg_config.h")
  114 +ENDIF (POSTGRES_INCLUDE_DIR AND POSTGRES_LIBRARY)
  115 +
  116 +
  117 +IF (POSTGRES_FOUND)
  118 +
  119 + IF (NOT POSTGRES_FIND_QUIETLY)
  120 + MESSAGE(STATUS "Found PostgreSQL: ${POSTGRES_LIBRARY}")
  121 + ENDIF (NOT POSTGRES_FIND_QUIETLY)
  122 +
  123 +ELSE (POSTGRES_FOUND)
  124 +
  125 + #SET (POSTGRES_INCLUDE_DIR "")
  126 + #SET (POSTGRES_LIBRARY "")
  127 +
  128 + IF (POSTGRES_FIND_REQUIRED)
  129 + MESSAGE(FATAL_ERROR "Could not find PostgreSQL")
  130 + ELSE (POSTGRES_FIND_REQUIRED)
  131 + MESSAGE(STATUS "Could not find PostgreSQL")
  132 + ENDIF (POSTGRES_FIND_REQUIRED)
  133 +
  134 +ENDIF (POSTGRES_FOUND)
... ...
注册登录 后发表评论