Handle postgresql and sqlite3 libs properly

Do not fail to compile when one of them is missing but the other one is not.

Raise an error when trying to open a database with the missing library.

see #3237
This commit is contained in:
louiz’
2017-12-02 20:08:50 +01:00
parent 923cf31ba6
commit 414bbca0bc
13 changed files with 71 additions and 29 deletions
+15 -7
View File
@@ -193,13 +193,17 @@ file(GLOB source_network
src/network/*.[hc]pp)
add_library(network OBJECT ${source_network})
if(SQLITE3_FOUND)
if(SQLITE3_FOUND OR PQ_FOUND)
file(GLOB source_database
src/database/*.[hc]pp)
add_library(database OBJECT ${source_database})
include_directories(database ${SQLITE3_INCLUDE_DIRS})
include_directories(database ${PQ_INCLUDE_DIRS})
if(SQLITE3_FOUND)
include_directories(database ${SQLITE3_INCLUDE_DIRS})
endif()
if(PQ_FOUND)
include_directories(database ${PQ_INCLUDE_DIRS})
endif()
set(USE_DATABASE TRUE)
else()
add_library(database OBJECT "")
@@ -267,10 +271,14 @@ if(LIBIDN_FOUND)
target_link_libraries(test_suite ${LIBIDN_LIBRARIES})
endif()
if(USE_DATABASE)
target_link_libraries(${PROJECT_NAME} ${SQLITE3_LIBRARIES})
target_link_libraries(${PROJECT_NAME} ${PQ_LIBRARIES})
target_link_libraries(test_suite ${SQLITE3_LIBRARIES})
target_link_libraries(test_suite ${PQ_LIBRARIES})
if(SQLITE3_FOUND)
target_link_libraries(${PROJECT_NAME} ${SQLITE3_LIBRARIES})
target_link_libraries(test_suite ${SQLITE3_LIBRARIES})
endif()
if(PQ_FOUND)
target_link_libraries(${PROJECT_NAME} ${PQ_LIBRARIES})
target_link_libraries(test_suite ${PQ_LIBRARIES})
endif()
endif()
# Define a __FILENAME__ macro with the relative path (from the base project directory)