diff --git a/cmake/FindPOSTGRES.cmake b/cmake/FindPOSTGRES.cmake new file mode 100644 index 0000000..aae9616 --- /dev/null +++ b/cmake/FindPOSTGRES.cmake @@ -0,0 +1,57 @@ +# Find POSTGRESQL library and header file +# Sets +# POSTGRES_FOUND to 0 or 1 depending on the result +# POSTGRES_INCLUDE_DIRECTORIES to directories required for using libpq +# POSTGRES_LIBRARIES to libpq and any dependent libraries +# If POSTGRES_REQUIRED is defined, then a fatal error message will be generated if libpq is not found + +if ( NOT POSTGRES_INCLUDE_DIRECTORIES OR NOT POSTGRES_LIBRARIES OR NOT POSTGRES_FOUND ) + + if ( $ENV{POSTGRES_DIR} ) + file( TO_CMAKE_PATH "$ENV{POSTGRES_DIR}" _POSTGRES_DIR ) + endif ( $ENV{POSTGRES_DIR} ) + + find_library( POSTGRES_LIBRARIES + NAMES pq libpq + PATHS + ${_POSTGRES_DIR}/lib64 + ${CMAKE_INSTALL_PREFIX}/lib64 + /usr/local/pgsql/lib64 + /usr/local/lib64 + /usr/lib64 + ${_POSTGRES_DIR} + ${_POSTGRES_DIR}/lib + ${CMAKE_INSTALL_PREFIX}/bin + ${CMAKE_INSTALL_PREFIX}/lib + /usr/local/pgsql/lib + /usr/local/lib + /usr/lib + NO_DEFAULT_PATH + ) + + find_path( POSTGRES_INCLUDE_DIRECTORIES + NAMES libpq-fe.h + PATHS + ${_POSTGRES_DIR} + ${_POSTGRES_DIR}/include + ${CMAKE_INSTALL_PREFIX}/include + /usr/local/pgsql/include + /usr/local/include + /usr/include + /usr/include/postgresql + NO_DEFAULT_PATH + ) + + if ( NOT POSTGRES_INCLUDE_DIRECTORIES OR NOT POSTGRES_LIBRARIES ) + if ( POSTGRES_REQUIRED ) + message( FATAL_ERROR "POSTGRES is required. Set POSTGRES_DIR" ) + endif ( POSTGRES_REQUIRED ) + else ( NOT POSTGRES_INCLUDE_DIRECTORIES OR NOT POSTGRES_LIBRARIES ) + set( POSTGRES_FOUND 1 ) + mark_as_advanced( POSTGRES_FOUND ) + endif ( NOT POSTGRES_INCLUDE_DIRECTORIES OR NOT POSTGRES_LIBRARIES ) + +endif ( NOT POSTGRES_INCLUDE_DIRECTORIES OR NOT POSTGRES_LIBRARIES OR NOT POSTGRES_FOUND ) + +mark_as_advanced( FORCE POSTGRES_INCLUDE_DIRECTORIES ) +mark_as_advanced( FORCE POSTGRES_LIBRARIES ) diff --git a/cmake/FindPQXX.cmake b/cmake/FindPQXX.cmake new file mode 100644 index 0000000..a5430fe --- /dev/null +++ b/cmake/FindPQXX.cmake @@ -0,0 +1,55 @@ +# Find PostGreSQL C++ library and header file +# Sets +# PQXX_FOUND to 0 or 1 depending on result +# PQXX_INCLUDE_DIRECTORIES to the directory containing mysql.h +# PQXX_LIBRARIES to the MySQL client library (and any dependents required) +# If PQXX_REQUIRED is defined, then a fatal error message will be generated if libpqxx is not found +if ( NOT PQXX_INCLUDE_DIRECTORIES OR NOT PQXX_LIBRARIES ) + + FIND_PACKAGE( POSTGRES REQUIRED ) + if ( POSTGRES_FOUND ) + file( TO_CMAKE_PATH "$ENV{PQXX_DIR}" _PQXX_DIR ) + + find_library( PQXX_LIBRARY + NAMES libpqxx pqxx + PATHS + ${_PQXX_DIR}/lib + ${_PQXX_DIR} + ${CMAKE_INSTALL_PREFIX}/lib + ${CMAKE_INSTALL_PREFIX}/bin + /usr/local/pgsql/lib + /usr/local/lib + /usr/lib + DOC "Location of libpqxx library" + NO_DEFAULT_PATH + ) + + find_path( PQXX_HEADER_PATH + NAMES pqxx/pqxx + PATHS + ${_PQXX_DIR}/include + ${_PQXX_DIR} + ${CMAKE_INSTALL_PREFIX}/include + /usr/local/pgsql/include + /usr/local/include + /usr/include + DOC "Path to pqxx/pqxx header file. Do not include the 'pqxx' directory in this value." + NO_DEFAULT_PATH + ) + endif ( POSTGRES_FOUND ) + + if ( PQXX_HEADER_PATH AND PQXX_LIBRARY ) + + set( PQXX_FOUND 1 CACHE INTERNAL "PQXX found" FORCE ) + set( PQXX_INCLUDE_DIRECTORIES "${PQXX_HEADER_PATH};${POSTGRES_INCLUDE_DIRECTORIES}" CACHE STRING "Include directories for PostGreSQL C++ library" FORCE ) + set( PQXX_LIBRARIES "${PQXX_LIBRARY};${POSTGRES_LIBRARIES}" CACHE STRING "Link libraries for PostGreSQL C++ interface" FORCE ) + + mark_as_advanced( FORCE PQXX_INCLUDE_DIRECTORIES ) + mark_as_advanced( FORCE PQXX_LIBRARIES ) + + else ( PQXX_HEADER_PATH AND PQXX_LIBRARY ) + message( "PQXX NOT FOUND" ) + endif ( PQXX_HEADER_PATH AND PQXX_LIBRARY ) + +endif ( NOT PQXX_INCLUDE_DIRECTORIES OR NOT PQXX_LIBRARIES ) +