Skip to content
Snippets Groups Projects
Commit 98b0999f authored by Roman Tsisyk's avatar Roman Tsisyk
Browse files

Add WITH_MYSQL and WITH_POSTGRESQL CMake options

parent 88656f36
No related merge requests found
...@@ -16,6 +16,7 @@ include(CheckCSourceCompiles) ...@@ -16,6 +16,7 @@ include(CheckCSourceCompiles)
include(CheckCXXSourceCompiles) include(CheckCXXSourceCompiles)
include(TestBigEndian) include(TestBigEndian)
include(CheckFunctionExists) include(CheckFunctionExists)
include(FindOptionalPackage)
find_program(ECHO echo) find_program(ECHO echo)
find_program(XSLTPROC xsltproc) find_program(XSLTPROC xsltproc)
...@@ -402,6 +403,7 @@ message (STATUS "ENABLE_BUNDLED_LIBEV: ${ENABLE_BUNDLED_LIBEV}") ...@@ -402,6 +403,7 @@ message (STATUS "ENABLE_BUNDLED_LIBEV: ${ENABLE_BUNDLED_LIBEV}")
message (STATUS "ENABLE_BUNDLED_LIBEIO: ${ENABLE_BUNDLED_LIBEIO}") message (STATUS "ENABLE_BUNDLED_LIBEIO: ${ENABLE_BUNDLED_LIBEIO}")
message (STATUS "ENABLE_BUNDLED_LIBCORO: ${ENABLE_BUNDLED_LIBCORO}") message (STATUS "ENABLE_BUNDLED_LIBCORO: ${ENABLE_BUNDLED_LIBCORO}")
message (STATUS "ENABLE_DOC: ${ENABLE_DOC}") message (STATUS "ENABLE_DOC: ${ENABLE_DOC}")
list_optional_packages()
message (STATUS "") message (STATUS "")
message (STATUS "To view or modify configuration results, check out CMakeCache.txt.") message (STATUS "To view or modify configuration results, check out CMakeCache.txt.")
message (STATUS "") message (STATUS "")
if (NOT _OptionalPackagesFile)
set(_OptionalPackagesFile
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/OptionalPackages.txt)
if (EXISTS ${_OptionalPackagesFile})
file(REMOVE ${_OptionalPackagesFile})
endif()
endif()
macro (find_optional_package _package)
string(TOUPPER ${_package} _packageUpper)
if (WITH_${_packageUpper})
# WITH_${_packageUpper} option requested by the user
set(${_packageUpper}_FIND_REQUIRED ON)
endif()
option(WITH_${_packageUpper} "Search for ${_package} package" ON)
if (WITH_${_packageUpper})
find_package(${_package} ${ARGN})
else (WITH_${_packageUpper})
set(${_package}_FOUND OFF)
set(${_packageUpper}_FOUND OFF)
endif ()
file(APPEND "${_OptionalPackagesFile}"
"-- WITH_${_packageUpper}=${WITH_${_packageUpper}}\n")
endmacro (find_optional_package)
macro(list_optional_packages)
file(READ ${_OptionalPackagesFile} _message)
message(STATUS "\n${_message}")
endmacro()
include(FindMySQL) find_optional_package(MySQL)
if (MYSQL_FOUND) if (MYSQL_FOUND)
message(STATUS "box.net.sql(mysql) INC=${MYSQL_INCLUDE_DIRS}") message(STATUS "box.net.sql(mysql) INC=${MYSQL_INCLUDE_DIRS}")
message(STATUS "box.net.sql(mysql) LIBS=${MYSQL_LIBRARIES}") message(STATUS "box.net.sql(mysql) LIBS=${MYSQL_LIBRARIES}")
...@@ -7,6 +8,4 @@ if (MYSQL_FOUND) ...@@ -7,6 +8,4 @@ if (MYSQL_FOUND)
add_library(mysql SHARED mysql.cc) add_library(mysql SHARED mysql.cc)
target_link_libraries(mysql ${MYSQL_LIBRARIES}) target_link_libraries(mysql ${MYSQL_LIBRARIES})
install(TARGETS mysql LIBRARY DESTINATION ${PLUGIN_DIR}) install(TARGETS mysql LIBRARY DESTINATION ${PLUGIN_DIR})
else()
message(STATUS "MySQL client not found")
endif() endif()
# A special hack for buggy FindPostgreSQL.cmake in Debian/Ubuntu # A special hack for buggy FindPostgreSQL.cmake in Debian/Ubuntu
set(PostgreSQL_ROOT /usr/include/postgresql;/usr/include/postgres) set(PostgreSQL_ROOT /usr/include/postgresql;/usr/include/postgres)
find_package(PostgreSQL) find_optional_package(PostgreSQL)
if (PostgreSQL_FOUND) if (PostgreSQL_FOUND)
message(STATUS "box.net.sql(pg): INC=${PostgreSQL_INCLUDE_DIRS}") message(STATUS "box.net.sql(pg): INC=${PostgreSQL_INCLUDE_DIRS}")
message(STATUS "box.net.sql(pg): LIBS=${PostgreSQL_LIBRARIES}") message(STATUS "box.net.sql(pg): LIBS=${PostgreSQL_LIBRARIES}")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment