aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt12
-rw-r--r--cmake/FindPostgreSql.cmake55
-rw-r--r--src/shared/Database/QueryResultPostgre.h4
-rw-r--r--src/trinitycore/CMakeLists.txt5
-rw-r--r--src/trinityrealm/CMakeLists.txt7
5 files changed, 71 insertions, 12 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index af854b995f5..1c4718aadaa 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,6 +5,7 @@ cmake_policy(SET CMP0005 OLD)
include(CheckIncludeFiles)
include(cmake/FindAce.cmake)
include(cmake/FindMySql.cmake)
+include(cmake/FindPostgreSql.cmake)
CONFIGURE_FILE(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
@@ -61,13 +62,10 @@ message("* Libs install dir at: ${LIBSDIR}")
FIND_LIBRARY(SSLLIB NAMES ssl DOC "SSL library")
FIND_LIBRARY(ZLIB z "Zlib library")
-
IF(DO_POSTGRESQL)
-message("* With PostgreSQL")
-set(DO_MYSQL 0)
-SET(POSTGRE_INCLUDES "-I/usr/include/postgresql -I/usr/local/postgresql ${POSTGRE_INCLUDES}")
-SET(POSTGRE_LIBS "-L/usr/lib/postresql -lpq -lz -lpthread -lcrypt -lnsl -lm -lpthread -L/usr/lib -lssl -lcrypto ${POSTGRE_LIBS}")
-ADD_DEFINITIONS(-DDO_POSTGRESQL)
+ MESSAGE("* With PostgreSQL")
+ FIND_PostgreSQL()
+ ADD_DEFINITIONS(-DDO_POSTGRESQL)
ENDIF(DO_POSTGRESQL)
IF(DO_MYSQL)
@@ -174,7 +172,7 @@ src/shared/vmap
src/game
${SCRIPT_INCLUDE}
${MYSQL_INCLUDE_DIR}
-${POSTGRE_INCLUDES}
+${POSTGRESQL_INCLUDE_DIR}
${CMAKE_CURRENT_BINARY_DIR}/src/shared
${CMAKE_CURRENT_SOURCE_DIR}/..
${ACE_INCLUDE_DIR}
diff --git a/cmake/FindPostgreSql.cmake b/cmake/FindPostgreSql.cmake
new file mode 100644
index 00000000000..74833e87fbf
--- /dev/null
+++ b/cmake/FindPostgreSql.cmake
@@ -0,0 +1,55 @@
+# - Find PostgreSQL
+# Find the PostgreSQL includes and client library
+# This module defines
+# POSTGRESQL_INCLUDE_DIR, where to find POSTGRESQL.h
+# POSTGRESQL_LIBRARIES, the libraries needed to use POSTGRESQL.
+# POSTGRESQL_FOUND, If false, do not try to use PostgreSQL.
+#
+# Copyright (c) 2006, Jaroslaw Staniek, <js@iidea.pl>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+# Add the postgresql and mysql include paths here
+
+MACRO(FIND_PostgreSQL)
+
+# find_path(POSTGRESQL_INCLUDE_DIR libpq-fe.h
+
+ FIND_PATH(POSTGRESQL_INCLUDE_DIR libpq-fe.h
+ /usr/include/server
+ /usr/include/postgresql
+ /usr/include/pgsql/server
+ /usr/local/include/pgsql/server
+ /usr/include/postgresql/server
+ /usr/include/postgresql/*/server
+ /usr/local/include/postgresql/server
+ /usr/local/include/postgresql/*/server
+ $ENV{ProgramFiles}/PostgreSQL/*/include/server
+ $ENV{SystemDrive}/PostgreSQL/*/include/server
+ )
+
+ find_library(POSTGRESQL_LIBRARIES NAMES pq libpq
+ PATHS
+ /usr/lib
+ /usr/local/lib
+ /usr/lib/postgresql
+ /usr/lib64
+ /usr/local/lib64
+ /usr/lib64/postgresql
+ $ENV{ProgramFiles}/PostgreSQL/*/lib/ms
+ $ENV{SystemDrive}/PostgreSQL/*/lib/ms
+ )
+
+ if(POSTGRESQL_INCLUDE_DIR AND POSTGRESQL_LIBRARIES)
+ set(POSTGRESQL_FOUND TRUE)
+ message(STATUS "Found PostgreSQL: ${POSTGRESQL_INCLUDE_DIR}, ${POSTGRESQL_LIBRARIES}")
+ INCLUDE_DIRECTORIES(${POSTGRESQL_INCLUDE_DIR})
+ else(POSTGRESQL_INCLUDE_DIR AND POSTGRESQL_LIBRARIES)
+ set(POSTGRESQL_FOUND FALSE)
+ message(STATUS "PostgreSQL not found.")
+ endif(POSTGRESQL_INCLUDE_DIR AND POSTGRESQL_LIBRARIES)
+
+ mark_as_advanced(POSTGRESQL_INCLUDE_DIR POSTGRESQL_LIBRARIES)
+
+ENDMACRO(FIND_PostgreSQL) \ No newline at end of file
diff --git a/src/shared/Database/QueryResultPostgre.h b/src/shared/Database/QueryResultPostgre.h
index 30d69114dc6..a48c6d21fee 100644
--- a/src/shared/Database/QueryResultPostgre.h
+++ b/src/shared/Database/QueryResultPostgre.h
@@ -25,10 +25,12 @@
#define FD_SETSIZE 1024
#include <winsock2.h>
#include <postgre/libpq-fe.h>
+#include <postgre/postgres.h>
#include <postgre/pg_type.h>
#else
#include <libpq-fe.h>
-//#include <pg_type.h>
+#include <postgres.h>
+#include <catalog/pg_type.h>
#endif
class QueryResultPostgre : public QueryResult
diff --git a/src/trinitycore/CMakeLists.txt b/src/trinitycore/CMakeLists.txt
index 7eb13185d91..ffd8e6431c4 100644
--- a/src/trinitycore/CMakeLists.txt
+++ b/src/trinitycore/CMakeLists.txt
@@ -22,6 +22,9 @@ add_definitions(
IF (DO_MYSQL)
SET(trinity-core_LINK_FLAGS "-pthread ${trinity-core_LINK_FLAGS}")
ENDIF(DO_MYSQL)
+IF (DO_POSTGRESQL)
+ SET(trinity-core_LINK_FLAGS "-pthread ${trinity-core_LINK_FLAGS}")
+ENDIF(DO_POSTGRESQL)
IF (CMAKE_SYSTEM_NAME MATCHES "Darwin")
@@ -48,7 +51,7 @@ readline
gomp
${SCRIPT_LIB}
${MYSQL_LIBRARIES}
-${POSTGRE_LIBS}
+${POSTGRESQL_LIBRARIES}
${SSLLIB}
${ACE_LIBRARY}
${ZLIB}
diff --git a/src/trinityrealm/CMakeLists.txt b/src/trinityrealm/CMakeLists.txt
index 62f943a1c96..dc5b67c7798 100644
--- a/src/trinityrealm/CMakeLists.txt
+++ b/src/trinityrealm/CMakeLists.txt
@@ -18,9 +18,9 @@ add_definitions(
IF (DO_MYSQL)
SET(trinity-realm_LINK_FLAGS "-pthread ${trinity-realm_LINK_FLAGS}")
ENDIF(DO_MYSQL)
-IF (DO_POSTGRE)
- SET(trinity-realm_LINK_FLAGS "${POSTGRE_LIBS} ${trinity-realm_LINK_FLAGS}")
-ENDIF(DO_POSTGRE)
+IF (DO_POSTGRESQL)
+ SET(trinity-realm_LINK_FLAGS "-pthread ${trinity-realm_LINK_FLAGS}")
+ENDIF(DO_POSTGRESQL)
IF (CMAKE_SYSTEM_NAME MATCHES "Darwin")
SET(trinity-realm_LINK_FLAGS "-framework Carbon ${trinity-realm_LINK_FLAGS}")
@@ -41,6 +41,7 @@ zlib
gomp
${SSLLIB}
${MYSQL_LIBRARIES}
+${POSTGRESQL_LIBRARIES}
${OSX_LIBS}
)