正在显示
1 个修改的文件
包含
134 行增加
和
0 行删除
cmake/FindPostgres.cmake
0 → 100644
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) |
请
注册
或
登录
后发表评论