正在显示
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) | ... | ... |
请
注册
或
登录
后发表评论