IF(ENABLE_SQLITE) OPTION(USE_SYSTEM_SQLITE3 "Use system-wide Sqlite3 instead of Wt's version" OFF) OPTION(USE_SQLITE3_BDB "Use BerkeleyDB storage with Sqlite3 API" OFF) IF(USE_SYSTEM_SQLITE3) FIND_PACKAGE( Sqlite3 REQUIRED) IF (USE_SQLITE3_BDB) ADD_DEFINITIONS(-DSQLITE3_BDB) ENDIF (USE_SQLITE3_BDB) ELSE(USE_SYSTEM_SQLITE3) IF (NOT WIN32) ADD_DEFINITIONS(-DHAVE_USLEEP) ENDIF (NOT WIN32) SET(Sqlite3_SRCS amalgamation/sqlite3.c) ENDIF(USE_SYSTEM_SQLITE3) FIND_PACKAGE(Threads) set(WT_SQLITE3_THREAD_LIB "") IF (NOT Threads_FOUND) ADD_DEFINITIONS(-DSQLITE3_THREAD_SAFE=0) ELSE (NOT Threads_FOUND) set(WT_SQLITE3_THREAD_LIB Threads::Threads) ENDIF (NOT Threads_FOUND) SET(HAVE_SQLITE ON CACHE INTERNAL "building sqlite3 backend" FORCE) IF(WIN32) IF(SHARED_LIBS) CONFIGURE_FILE(wtdbosqlite3-version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/wtdbosqlite3-version.rc) SET(Sqlite3_SRCS ${Sqlite3_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/wtdbosqlite3-version.rc) ENDIF(SHARED_LIBS) ENDIF(WIN32) ADD_LIBRARY(wtdbosqlite3 Sqlite3.h Sqlite3.C ${Sqlite3_SRCS} ) if(NOT APPLE OR SHARED_LIBS) SET_PROPERTY(TARGET wtdbosqlite3 PROPERTY C_VISIBILITY_PRESET hidden) SET_PROPERTY(TARGET wtdbosqlite3 PROPERTY CXX_VISIBILITY_PRESET hidden) SET_PROPERTY(TARGET wtdbosqlite3 PROPERTY VISIBILITY_INLINES_HIDDEN YES) endif() MESSAGE("** Wt::Dbo: building SQLite3 backend.") TARGET_LINK_LIBRARIES(wtdbosqlite3 PUBLIC wtdbo PRIVATE ${SQLITE3_LIBRARIES} ${WT_SQLITE3_THREAD_LIB} ${WT_MATH_LIBRARY} ${CMAKE_DL_LIBS} ) INSTALL(TARGETS wtdbosqlite3 EXPORT wt-target-dbosqlite3 RUNTIME DESTINATION bin LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) if(MSVC AND SHARED_LIBS) install(FILES $ DESTINATION bin OPTIONAL) endif() INSTALL(EXPORT wt-target-dbosqlite3 DESTINATION ${CMAKE_INSTALL_DIR}/wt NAMESPACE Wt::) SET_TARGET_PROPERTIES( wtdbosqlite3 PROPERTIES EXPORT_NAME DboSqlite3 VERSION ${VERSION_SERIES}.${VERSION_MAJOR}.${VERSION_MINOR} DEBUG_POSTFIX ${DEBUG_LIB_POSTFIX} ) IF(MSVC) SET_TARGET_PROPERTIES( wtdbosqlite3 PROPERTIES COMPILE_FLAGS "${BUILD_PARALLEL} /wd4251 /wd4275 /wd4267" ) SET_TARGET_PROPERTIES(wtdbosqlite3 PROPERTIES FOLDER "dbo") ENDIF(MSVC) INSTALL_FILES(/include/Wt/Dbo/backend "^.*Sqlite3.*h$") ELSE(ENABLE_SQLITE) SET(HAVE_SQLITE OFF CACHE INTERNAL "building sqlite3 backend" FORCE) ENDIF(ENABLE_SQLITE) IF(ENABLE_POSTGRES AND POSTGRES_FOUND) SET(HAVE_POSTGRES ON CACHE INTERNAL "building postgres backend" FORCE) MESSAGE("** Wt::Dbo: building Postgres backend.") IF(WIN32) IF(SHARED_LIBS) CONFIGURE_FILE(wtdbopostgres-version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/wtdbopostgres-version.rc) SET(postgres_SRCS ${postgres_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/wtdbopostgres-version.rc) ENDIF(SHARED_LIBS) ENDIF(WIN32) ADD_LIBRARY(wtdbopostgres Postgres.h Postgres.C ${postgres_SRCS} ) if(NOT APPLE OR SHARED_LIBS) SET_PROPERTY(TARGET wtdbopostgres PROPERTY C_VISIBILITY_PRESET hidden) SET_PROPERTY(TARGET wtdbopostgres PROPERTY CXX_VISIBILITY_PRESET hidden) SET_PROPERTY(TARGET wtdbopostgres PROPERTY VISIBILITY_INLINES_HIDDEN YES) endif() TARGET_LINK_LIBRARIES(wtdbopostgres PUBLIC wtdbo PRIVATE ${POSTGRES_LIBRARIES} ) IF(TARGET Boost::headers) TARGET_LINK_LIBRARIES(wtdbopostgres PRIVATE Boost::headers) ENDIF() INCLUDE_DIRECTORIES(${POSTGRES_INCLUDE}) IF(MSVC) SET_TARGET_PROPERTIES(wtdbopostgres PROPERTIES FOLDER "dbo") ENDIF(MSVC) INSTALL(TARGETS wtdbopostgres EXPORT wt-target-dbopostgres RUNTIME DESTINATION bin LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) if(MSVC AND SHARED_LIBS) install(FILES $ DESTINATION bin OPTIONAL) endif() INSTALL(EXPORT wt-target-dbopostgres DESTINATION ${CMAKE_INSTALL_DIR}/wt NAMESPACE Wt::) SET_TARGET_PROPERTIES( wtdbopostgres PROPERTIES EXPORT_NAME DboPostgres VERSION ${VERSION_SERIES}.${VERSION_MAJOR}.${VERSION_MINOR} DEBUG_POSTFIX ${DEBUG_LIB_POSTFIX} ) INSTALL_FILES(/include/Wt/Dbo/backend "^.*Postgres.*h$") ELSE(ENABLE_POSTGRES AND POSTGRES_FOUND) MESSAGE("** Wt::Dbo: not building Postgres backend.") IF(ENABLE_POSTGRES) MESSAGE(" Indicate the location of your postgres installation using ") MESSAGE(" -DPOSTGRES_PREFIX=...") ENDIF(ENABLE_POSTGRES) SET(HAVE_POSTGRES OFF CACHE INTERNAL "building postgres backend" FORCE) ENDIF(ENABLE_POSTGRES AND POSTGRES_FOUND) IF(ENABLE_FIREBIRD) OPTION(USE_SYSTEM_IBPP "Use a custom IBPP library instead of Wt's version" OFF) IF(NOT USE_SYSTEM_IBPP) SET(IBPP_SRC_DIRECTORY ibpp/) ENDIF(NOT USE_SYSTEM_IBPP) INCLUDE(../../../../cmake/WtFindFirebirdSql.txt) ENDIF(ENABLE_FIREBIRD) IF(ENABLE_FIREBIRD AND FIREBIRD_FOUND) SET(HAVE_FIREBIRD ON CACHE INTERNAL "building firebird backend" FORCE) IF(MSVC) ADD_DEFINITIONS(-DIBPP_WINDOWS) ENDIF(MSVC) IF(APPLE) ADD_DEFINITIONS(-DIBPP_DARWIN) ENDIF(APPLE) IF(UNIX) ADD_DEFINITIONS(-DIBPP_LINUX) ENDIF(UNIX) INCLUDE_DIRECTORIES(${FIREBIRD_INCLUDE_DIRS}) MESSAGE("** Wt::Dbo: building FirebirdSQL backend.") IF(WIN32) IF(SHARED_LIBS) CONFIGURE_FILE(wtdbofirebird-version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/wtdbofirebird-version.rc) SET(firebird_SRCS ${firebird_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/wtdbofirebird-version.rc) ENDIF(SHARED_LIBS) ENDIF(WIN32) ADD_LIBRARY(wtdbofirebird Firebird.h Firebird.C ${IBPP_ALL_IN_ONE_FILE} ${firebird_SRCS} ) if(NOT APPLE OR SHARED_LIBS) SET_PROPERTY(TARGET wtdbofirebird PROPERTY C_VISIBILITY_PRESET hidden) SET_PROPERTY(TARGET wtdbofirebird PROPERTY CXX_VISIBILITY_PRESET hidden) SET_PROPERTY(TARGET wtdbofirebird PROPERTY VISIBILITY_INLINES_HIDDEN YES) endif() TARGET_LINK_LIBRARIES(wtdbofirebird PUBLIC wtdbo PRIVATE ${FIREBIRD_LIBRARIES} ) IF(MSVC) SET_TARGET_PROPERTIES( wtdbofirebird PROPERTIES COMPILE_FLAGS "${BUILD_PARALLEL} /wd4251 /wd4275 /wd4267" ) SET_TARGET_PROPERTIES(wtdbofirebird PROPERTIES FOLDER "dbo") ENDIF(MSVC) INSTALL(TARGETS wtdbofirebird EXPORT wt-target-dbofirebird RUNTIME DESTINATION bin LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) if(MSVC AND SHARED_LIBS) install(FILES $ DESTINATION bin OPTIONAL) endif() INSTALL(EXPORT wt-target-dbofirebird DESTINATION ${CMAKE_INSTALL_DIR}/wt NAMESPACE Wt::) SET_TARGET_PROPERTIES( wtdbofirebird PROPERTIES EXPORT_NAME DboFirebird VERSION ${VERSION_SERIES}.${VERSION_MAJOR}.${VERSION_MINOR} DEBUG_POSTFIX ${DEBUG_LIB_POSTFIX} ) INSTALL_FILES(/include/Wt/Dbo/backend "^.*Firebird.*h$") ELSE(ENABLE_FIREBIRD AND FIREBIRD_FOUND) MESSAGE("** Wt::Dbo: not building Firebird backend.") IF(ENABLE_FIREBIRD) MESSAGE(" Indicate the location of your FirebirdSQL and IBPP installation using ") MESSAGE(" -DFIREBIRD_PREFIX=... -DIBPP_SRC_DIRECTORY=...") ENDIF(ENABLE_FIREBIRD) SET(HAVE_FIREBIRD OFF CACHE INTERNAL "building firebird backend" FORCE) ENDIF(ENABLE_FIREBIRD AND FIREBIRD_FOUND) IF(ENABLE_MYSQL AND MYSQL_FOUND) SET(HAVE_MYSQL ON CACHE INTERNAL "building mysql backend" FORCE) MESSAGE("** Wt::Dbo: building MySQL backend.") ADD_DEFINITIONS(${MYSQL_DEFINITIONS}) IF(WIN32) IF(SHARED_LIBS) CONFIGURE_FILE(wtdbomysql-version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/wtdbomysql-version.rc) SET(mysql_SRCS ${mysql_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/wtdbomysql-version.rc) ENDIF(SHARED_LIBS) ENDIF(WIN32) ADD_LIBRARY(wtdbomysql MySQL.h MySQL.C ${mysql_SRCS} ) if(NOT APPLE OR SHARED_LIBS) SET_PROPERTY(TARGET wtdbomysql PROPERTY C_VISIBILITY_PRESET hidden) SET_PROPERTY(TARGET wtdbomysql PROPERTY CXX_VISIBILITY_PRESET hidden) SET_PROPERTY(TARGET wtdbomysql PROPERTY VISIBILITY_INLINES_HIDDEN YES) endif() TARGET_LINK_LIBRARIES(wtdbomysql PUBLIC wtdbo PRIVATE ${MYSQL_LIBRARIES} ) INCLUDE_DIRECTORIES(${MYSQL_INCLUDE}) INSTALL(TARGETS wtdbomysql EXPORT wt-target-dbomysql RUNTIME DESTINATION bin LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) if(MSVC AND SHARED_LIBS) install(FILES $ DESTINATION bin OPTIONAL) endif() INSTALL(EXPORT wt-target-dbomysql DESTINATION ${CMAKE_INSTALL_DIR}/wt NAMESPACE Wt::) SET_TARGET_PROPERTIES( wtdbomysql PROPERTIES EXPORT_NAME DboMySQL VERSION ${VERSION_SERIES}.${VERSION_MAJOR}.${VERSION_MINOR} DEBUG_POSTFIX ${DEBUG_LIB_POSTFIX} ) INSTALL_FILES(/include/Wt/Dbo/backend "^.*MySQL.*h$") IF(MSVC) SET_TARGET_PROPERTIES(wtdbomysql PROPERTIES FOLDER "dbo") ENDIF(MSVC) ELSE(ENABLE_MYSQL AND MYSQL_FOUND) MESSAGE("** Wt::Dbo: not building MySQL backend.") IF(ENABLE_MYSQL) MESSAGE(" Indicate the location of your mariadb or mysqlclient installation using ") MESSAGE(" -DMYSQL_PREFIX=... and the library to search for (e.g. mariadb or ") MESSAGE(" mysqlclient) using -DMYSQL_LIBRARY=...") ENDIF(ENABLE_MYSQL) SET(HAVE_MYSQL OFF CACHE INTERNAL "building mysql backend" FORCE) ENDIF(ENABLE_MYSQL AND MYSQL_FOUND) IF(ENABLE_MSSQLSERVER AND ODBC_FOUND) SET(HAVE_MSSQLSERVER ON CACHE INTERNAL "building Microsoft SQL Server backend" FORCE) MESSAGE("** Wt::Dbo: building Microsoft SQL Server backend.") IF(WIN32) IF(SHARED_LIBS) CONFIGURE_FILE(wtdbomssqlserver-version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/wtdbomssqlserver-version.rc) SET(mssqlserver_SRCS ${mssqlserver_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/wtdbomssqlserver-version.rc) ENDIF(SHARED_LIBS) ENDIF(WIN32) ADD_LIBRARY(wtdbomssqlserver MSSQLServer.h MSSQLServer.C ${mssqlserver_SRCS} ) if(NOT APPLE OR SHARED_LIBS) SET_PROPERTY(TARGET wtdbomssqlserver PROPERTY C_VISIBILITY_PRESET hidden) SET_PROPERTY(TARGET wtdbomssqlserver PROPERTY CXX_VISIBILITY_PRESET hidden) SET_PROPERTY(TARGET wtdbomssqlserver PROPERTY VISIBILITY_INLINES_HIDDEN YES) endif() TARGET_LINK_LIBRARIES(wtdbomssqlserver PUBLIC wtdbo PRIVATE ${ODBC_LIBRARIES} ) INCLUDE_DIRECTORIES(${ODBC_INCLUDE}) INSTALL(TARGETS wtdbomssqlserver EXPORT wt-target-dbomssqlserver RUNTIME DESTINATION bin LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) if(MSVC AND SHARED_LIBS) install(FILES $ DESTINATION bin OPTIONAL) endif() INSTALL(EXPORT wt-target-dbomssqlserver DESTINATION ${CMAKE_INSTALL_DIR}/wt NAMESPACE Wt::) SET_TARGET_PROPERTIES( wtdbomssqlserver PROPERTIES EXPORT_NAME DboMSSQLServer VERSION ${VERSION_SERIES}.${VERSION_MAJOR}.${VERSION_MINOR} DEBUG_POSTFIX ${DEBUG_LIB_POSTFIX} ) IF(MSVC) SET_TARGET_PROPERTIES( wtdbomssqlserver PROPERTIES COMPILE_FLAGS "${BUILD_PARALLEL} /wd4251 /wd4275 /wd4267" ) SET_TARGET_PROPERTIES(wtdbomssqlserver PROPERTIES FOLDER "dbo") endif(MSVC) INSTALL_FILES(/include/Wt/Dbo/backend "^.*MSSQLServer.*h$") ELSE(ENABLE_MSSQLSERVER AND ODBC_FOUND) MESSAGE("** Wt::Dbo: not building Microsoft SQL Server backend.") SET(HAVE_MSSQLSERVER OFF CACHE INTERNAL "building Microsoft SQL Server backend" FORCE) ENDIF(ENABLE_MSSQLSERVER AND ODBC_FOUND)