Mercurial > hg > orthanc-databases
diff Resources/CMake/DatabasesFrameworkConfiguration.cmake @ 0:7cea966b6829
initial commit
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 04 Jul 2018 08:16:29 +0200 |
parents | |
children | e490cdd766b9 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Resources/CMake/DatabasesFrameworkConfiguration.cmake Wed Jul 04 08:16:29 2018 +0200 @@ -0,0 +1,130 @@ +# Orthanc - A Lightweight, RESTful DICOM Store +# Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics +# Department, University Hospital of Liege, Belgium +# Copyright (C) 2017-2018 Osimis S.A., Belgium +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU Affero General Public License +# as published by the Free Software Foundation, either version 3 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + + + +##################################################################### +## Enable the Orthanc subcomponents depending on the configuration +##################################################################### + +if (ENABLE_SQLITE_BACKEND) + set(ENABLE_SQLITE ON) +endif() + +if (ENABLE_POSTGRESQL_BACKEND) + set(ENABLE_SSL ON) + set(ENABLE_ZLIB ON) +endif() + +if (ENABLE_MYSQL_BACKEND) + set(ENABLE_CRYPTO_OPTIONS ON) + set(ENABLE_SSL ON) + + if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows") + set(ENABLE_LOCALE ON) # iconv is needed + set(ENABLE_OPENSSL_ENGINES ON) + set(ENABLE_WEB_CLIENT ON) # libcurl is needed if targetting Windows + endif() +endif() + + +##################################################################### +## Configure the Orthanc Framework +##################################################################### + +include(${ORTHANC_ROOT}/Resources/CMake/OrthancFrameworkConfiguration.cmake) +include_directories(${ORTHANC_ROOT}) + + +##################################################################### +## Common source files for the databases +##################################################################### + +set(ORTHANC_DATABASES_ROOT ${CMAKE_CURRENT_LIST_DIR}/../..) + +set(DATABASES_SOURCES + ${ORTHANC_DATABASES_ROOT}/Framework/Common/BinaryStringValue.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/Common/DatabaseManager.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/Common/Dictionary.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/Common/FileValue.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/Common/GenericFormatter.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/Common/Integer64Value.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/Common/NullValue.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/Common/Query.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/Common/ResultBase.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/Common/StatementLocation.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/Common/Utf8StringValue.cpp + ) + + +##################################################################### +## Configure SQLite if need be +##################################################################### + +if (ENABLE_SQLITE_BACKEND) + list(APPEND DATABASES_SOURCES + ${ORTHANC_DATABASES_ROOT}/Framework/SQLite/SQLiteDatabase.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/SQLite/SQLiteResult.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/SQLite/SQLiteStatement.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/SQLite/SQLiteTransaction.cpp + ) +endif() + + +##################################################################### +## Configure MySQL client (MariaDB) if need be +##################################################################### + +if (ENABLE_MYSQL_BACKEND) + include(${CMAKE_CURRENT_LIST_DIR}/MariaDBConfiguration.cmake) + add_definitions(-DORTHANC_ENABLE_MYSQL=1) + list(APPEND DATABASES_SOURCES + ${ORTHANC_DATABASES_ROOT}/Framework/MySQL/MySQLDatabase.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/MySQL/MySQLParameters.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/MySQL/MySQLResult.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/MySQL/MySQLStatement.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/MySQL/MySQLTransaction.cpp + ${MYSQL_CLIENT_SOURCES} + ) +else() + unset(USE_SYSTEM_MYSQL_CLIENT CACHE) + add_definitions(-DORTHANC_ENABLE_MYSQL=0) +endif() + + + +##################################################################### +## Configure PostgreSQL client if need be +##################################################################### + +if (ENABLE_POSTGRESQL_BACKEND) + include(${CMAKE_CURRENT_LIST_DIR}/PostgreSQLConfiguration.cmake) + add_definitions(-DORTHANC_ENABLE_POSTGRESQL=1) + list(APPEND DATABASES_SOURCES + ${ORTHANC_DATABASES_ROOT}/Framework/PostgreSQL/PostgreSQLDatabase.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/PostgreSQL/PostgreSQLLargeObject.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/PostgreSQL/PostgreSQLParameters.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/PostgreSQL/PostgreSQLResult.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/PostgreSQL/PostgreSQLStatement.cpp + ${ORTHANC_DATABASES_ROOT}/Framework/PostgreSQL/PostgreSQLTransaction.cpp + ${LIBPQ_SOURCES} + ) +else() + unset(USE_SYSTEM_LIBPQ CACHE) + add_definitions(-DORTHANC_ENABLE_POSTGRESQL=0) +endif()