/** * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium * Copyright (C) 2017-2021 Osimis S.A., Belgium * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Lesser 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program. If not, see * . **/ #pragma once /** * Besides the "pragma once" above that only protects this file, * define a macro to prevent including different versions of * "OrthancFramework.h" **/ #ifndef __ORTHANC_FRAMEWORK_H #define __ORTHANC_FRAMEWORK_H #if defined(_WIN32) || defined (__CYGWIN__) # define ORTHANC_PUBLIC __declspec(dllimport) # define ORTHANC_LOCAL #else # if __GNUC__ >= 4 # define ORTHANC_PUBLIC __attribute__ ((visibility ("default"))) # define ORTHANC_LOCAL __attribute__ ((visibility ("hidden"))) # else # define ORTHANC_PUBLIC # define ORTHANC_LOCAL # pragma warning Unknown dynamic link import/export semantics # endif #endif /** * Configuration macros that are always set to the same value if using * "OrthancFrameworkConfiguration.cmake" **/ #define ORTHANC_BUILDING_FRAMEWORK_LIBRARY 0 #define ORTHANC_ENABLE_BASE64 1 #define ORTHANC_ENABLE_MD5 1 /** * Configuration macros that needn't to be renamed **/ #define ORTHANC_SQLITE_VERSION @ORTHANC_SQLITE_VERSION@ #define ORTHANC_VERSION "@ORTHANC_VERSION@" #define ORTHANC_VERSION_MAJOR @ORTHANC_VERSION_MAJOR@ #define ORTHANC_VERSION_MINOR @ORTHANC_VERSION_MINOR@ #define ORTHANC_VERSION_REVISION @ORTHANC_VERSION_REVISION@ #cmakedefine01 ORTHANC_ENABLE_CIVETWEB #cmakedefine01 ORTHANC_ENABLE_LOGGING #cmakedefine01 ORTHANC_ENABLE_LOGGING_STDIO #cmakedefine01 ORTHANC_ENABLE_MONGOOSE #cmakedefine01 ORTHANC_SANDBOXED #cmakedefine01 ORTHANC_STATIC_BOOST #cmakedefine01 ORTHANC_STATIC_JSONCPP #cmakedefine01 ORTHANC_STATIC_SQLITE #if ORTHANC_STATIC_BOOST == 1 && !defined(BOOST_LEXICAL_CAST_ASSUME_C_LOCALE) # define BOOST_LEXICAL_CAST_ASSUME_C_LOCALE #endif #if ORTHANC_STATIC_JSONCPP == 1 # if defined(JSON_API) # error JSON_API should not be defined # else # define JSON_API @ORTHANC_JSON_API@ # endif #endif #if ORTHANC_STATIC_SQLITE == 1 # if defined(SQLITE_API) # error SQLITE_API should not be defined # else # define SQLITE_API @ORTHANC_SQLITE_API@ # endif #endif #if ORTHANC_STATIC_PUGIXML == 1 # if defined(PUGIXML_API) # error PUGIXML_API should not be defined # else # define PUGIXML_API @ORTHANC_PUGIXML_API@ # endif #endif #define ORTHANC_FRAMEWORK_VERSION_IS_ABOVE(major, minor, revision) \ (ORTHANC_VERSION_MAJOR > major || \ (ORTHANC_VERSION_MAJOR == major && \ (ORTHANC_VERSION_MINOR > minor || \ (ORTHANC_VERSION_MINOR == minor && \ ORTHANC_VERSION_REVISION >= revision)))) /** * Configuration macros that must be renamed, prefixing them by * "ORTHANC_" **/ #cmakedefine01 ENABLE_DCMTK #if !defined(ENABLE_DCMTK) # error CMake error #elif ENABLE_DCMTK == 1 # define ORTHANC_ENABLE_DCMTK 1 #else # define ORTHANC_ENABLE_DCMTK 0 #endif #undef ENABLE_DCMTK #cmakedefine01 ENABLE_DCMTK_NETWORKING #if !defined(ENABLE_DCMTK_NETWORKING) # error CMake error #elif ENABLE_DCMTK_NETWORKING == 1 # define ORTHANC_ENABLE_DCMTK_NETWORKING 1 #else # define ORTHANC_ENABLE_DCMTK_NETWORKING 0 #endif #undef ENABLE_DCMTK_NETWORKING #cmakedefine01 ENABLE_DCMTK_JPEG #if !defined(ENABLE_DCMTK_JPEG) # error CMake error #elif ENABLE_DCMTK_JPEG == 1 # define ORTHANC_ENABLE_DCMTK_JPEG 1 #else # define ORTHANC_ENABLE_DCMTK_JPEG 0 #endif #undef ENABLE_DCMTK_JPEG #cmakedefine01 ENABLE_DCMTK_JPEG_LOSSLESS #if !defined(ENABLE_DCMTK_JPEG_LOSSLESS) # error CMake error #elif ENABLE_DCMTK_JPEG_LOSSLESS == 1 # define ORTHANC_ENABLE_DCMTK_JPEG_LOSSLESS 1 #else # define ORTHANC_ENABLE_DCMTK_JPEG_LOSSLESS 0 #endif #undef ENABLE_DCMTK_JPEG_LOSSLESS #cmakedefine01 ENABLE_DCMTK_TRANSCODING #if !defined(ENABLE_DCMTK_TRANSCODING) # error CMake error #elif ENABLE_DCMTK_TRANSCODING == 1 # define ORTHANC_ENABLE_DCMTK_TRANSCODING 1 #else # define ORTHANC_ENABLE_DCMTK_TRANSCODING 0 #endif #undef ENABLE_DCMTK_TRANSCODING #cmakedefine01 ENABLE_JPEG #if !defined(ENABLE_JPEG) # error CMake error #elif ENABLE_JPEG == 1 # define ORTHANC_ENABLE_JPEG 1 #else # define ORTHANC_ENABLE_JPEG 0 #endif #undef ENABLE_JPEG #cmakedefine01 ENABLE_LOCALE #if !defined(ENABLE_LOCALE) # error CMake error #elif ENABLE_LOCALE == 1 # define ORTHANC_ENABLE_LOCALE 1 #else # define ORTHANC_ENABLE_LOCALE 0 #endif #undef ENABLE_LOCALE #cmakedefine01 ENABLE_LUA #if !defined(ENABLE_LUA) # error CMake error #elif ENABLE_LUA == 1 # define ORTHANC_ENABLE_LUA 1 #else # define ORTHANC_ENABLE_LUA 0 #endif #undef ENABLE_LUA #cmakedefine01 ENABLE_PKCS11 #if !defined(ENABLE_PKCS11) # error CMake error #elif ENABLE_PKCS11 == 1 # define ORTHANC_ENABLE_PKCS11 1 #else # define ORTHANC_ENABLE_PKCS11 0 #endif #undef ENABLE_PKCS11 #cmakedefine01 ENABLE_PNG #if !defined(ENABLE_PNG) # error CMake error #elif ENABLE_PNG == 1 # define ORTHANC_ENABLE_PNG 1 #else # define ORTHANC_ENABLE_PNG 0 #endif #undef ENABLE_PNG #cmakedefine01 ENABLE_PUGIXML #if !defined(ENABLE_PUGIXML) # error CMake error #elif ENABLE_PUGIXML == 1 # define ORTHANC_ENABLE_PUGIXML 1 #else # define ORTHANC_ENABLE_PUGIXML 0 #endif #undef ENABLE_PUGIXML #cmakedefine01 ENABLE_SQLITE #if !defined(ENABLE_SQLITE) # error CMake error #elif ENABLE_SQLITE == 1 # define ORTHANC_ENABLE_SQLITE 1 #else # define ORTHANC_ENABLE_SQLITE 0 #endif #undef ENABLE_SQLITE #cmakedefine01 ENABLE_SSL #if !defined(ENABLE_SSL) # error CMake error #elif ENABLE_SSL == 1 # define ORTHANC_ENABLE_SSL 1 #else # define ORTHANC_ENABLE_SSL 0 #endif #undef ENABLE_SSL #cmakedefine01 ENABLE_WEB_CLIENT #if !defined(ENABLE_WEB_CLIENT) # error CMake error #elif ENABLE_WEB_CLIENT == 1 # define ORTHANC_ENABLE_CURL 1 #else # define ORTHANC_ENABLE_CURL 0 #endif #undef ENABLE_WEB_CLIENT #cmakedefine01 ENABLE_ZLIB #if !defined(ENABLE_ZLIB) # error CMake error #elif ENABLE_ZLIB == 1 # define ORTHANC_ENABLE_ZLIB 1 #else # define ORTHANC_ENABLE_ZLIB 0 #endif #undef ENABLE_ZLIB #if ORTHANC_ENABLE_DCMTK == 1 # define DCMTK_VERSION_NUMBER @DCMTK_VERSION_NUMBER@ #endif /** * Initialization functions. **/ #include namespace Orthanc { ORTHANC_PUBLIC void InitializeFramework(const std::string& locale, bool loadPrivateDictionary); ORTHANC_PUBLIC void FinalizeFramework(); } #endif /* __ORTHANC_FRAMEWORK_H */