# HG changeset patch # User Sebastien Jodogne # Date 1591374361 -7200 # Node ID c2b9a7a1c74ae32fd2c3945992ef1eee030ee5a3 # Parent 1f405a3fdecaa6b79c28edfde6e5abfd01a6b93b ORTHANC_FRAMEWORK_BUILDING_PLUGIN diff -r 1f405a3fdeca -r c2b9a7a1c74a CMakeLists.txt --- a/CMakeLists.txt Fri Jun 05 18:08:17 2020 +0200 +++ b/CMakeLists.txt Fri Jun 05 18:26:01 2020 +0200 @@ -251,6 +251,7 @@ add_definitions( + -DORTHANC_FRAMEWORK_BUILDING_PLUGIN=0 -DORTHANC_BUILD_UNIT_TESTS=1 -DORTHANC_ENABLE_LOGGING_PLUGIN=0 diff -r 1f405a3fdeca -r c2b9a7a1c74a Core/Logging.cpp --- a/Core/Logging.cpp Fri Jun 05 18:08:17 2020 +0200 +++ b/Core/Logging.cpp Fri Jun 05 18:26:01 2020 +0200 @@ -167,7 +167,7 @@ globalTraceLogFunc = traceLogFunc; } - InternalLogger::InternalLogger(InternalLevel level, + InternalLogger::InternalLogger(Level level, const char* file /* ignored */, int line /* ignored */) : level_(level) @@ -180,15 +180,15 @@ switch (level_) { - case InternalLevel_ERROR: + case Level_ERROR: globalErrorLogFunc(message.c_str()); break; - case InternalLevel_WARNING: + case Level_WARNING: globalWarningLogFunc(message.c_str()); break; - case InternalLevel_INFO: + case Level_INFO: if (globalVerbose_) { globalInfoLogFunc(message.c_str()); @@ -196,7 +196,7 @@ } break; - case InternalLevel_TRACE: + case Level_TRACE: if (globalTrace_) { globalTraceLogFunc(message.c_str()); @@ -310,7 +310,7 @@ context_ = reinterpret_cast(context); } - InternalLogger::InternalLogger(InternalLevel level, + InternalLogger::InternalLogger(Level level, const char* file /* ignored */, int line /* ignored */) : level_(level) @@ -324,19 +324,19 @@ { switch (level_) { - case InternalLevel_ERROR: + case Level_ERROR: context_->InvokeService(context_, _OrthancPluginService_LogError, message.c_str()); break; - case InternalLevel_WARNING: + case Level_WARNING: context_->InvokeService(context_, _OrthancPluginService_LogWarning, message.c_str()); break; - case InternalLevel_INFO: + case Level_INFO: context_->InvokeService(context_, _OrthancPluginService_LogInfo, message.c_str()); break; - case InternalLevel_TRACE: + case Level_TRACE: // Not used by plugins break; diff -r 1f405a3fdeca -r c2b9a7a1c74a Core/Logging.h --- a/Core/Logging.h Fri Jun 05 18:08:17 2020 +0200 +++ b/Core/Logging.h Fri Jun 05 18:26:01 2020 +0200 @@ -64,6 +64,14 @@ { namespace Logging { + enum Level + { + Level_ERROR, + Level_WARNING, + Level_INFO, + Level_TRACE + }; + #if ORTHANC_ENABLE_LOGGING_PLUGIN == 1 // "pluginContext" must be of type "OrthancPluginContext" ORTHANC_PUBLIC void Initialize(void* pluginContext); @@ -124,30 +132,22 @@ # include # define LOG(level) ::Orthanc::Logging::InternalLogger \ - (::Orthanc::Logging::InternalLevel_ ## level, __FILE__, __LINE__) + (::Orthanc::Logging::Level_ ## level, __FILE__, __LINE__) # define VLOG(level) ::Orthanc::Logging::InternalLogger \ - (::Orthanc::Logging::InternalLevel_TRACE, __FILE__, __LINE__) + (::Orthanc::Logging::Level_TRACE, __FILE__, __LINE__) namespace Orthanc { namespace Logging { - enum InternalLevel - { - InternalLevel_ERROR, - InternalLevel_WARNING, - InternalLevel_INFO, - InternalLevel_TRACE - }; - class ORTHANC_PUBLIC InternalLogger : public boost::noncopyable { private: - InternalLevel level_; + Level level_; std::stringstream messageStream_; public: - InternalLogger(InternalLevel level, + InternalLogger(Level level, const char* file, int line); diff -r 1f405a3fdeca -r c2b9a7a1c74a Core/OrthancFramework.h --- a/Core/OrthancFramework.h Fri Jun 05 18:08:17 2020 +0200 +++ b/Core/OrthancFramework.h Fri Jun 05 18:26:01 2020 +0200 @@ -41,23 +41,33 @@ #ifndef __ORTHANC_FRAMEWORK_H #define __ORTHANC_FRAMEWORK_H +#if !defined(ORTHANC_FRAMEWORK_BUILDING_PLUGIN) +# error Macro ORTHANC_FRAMEWORK_BUILDING_PLUGIN must be defined +#endif + /** * It is implied that if this file is used, we're building the Orthanc - * framework (not using it): We don't use the common "BUILDING_DLL" + * framework (not using it as a shared library): We don't use the + * common "BUILDING_DLL" * construction. https://gcc.gnu.org/wiki/Visibility **/ -#if defined(_WIN32) || defined (__CYGWIN__) -# define ORTHANC_PUBLIC __declspec(dllexport) -# define ORTHANC_LOCAL +#if ORTHANC_FRAMEWORK_BUILDING_PLUGIN == 0 +# if defined(_WIN32) || defined (__CYGWIN__) +# define ORTHANC_PUBLIC __declspec(dllexport) +# 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 #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 +# define ORTHANC_PUBLIC +# define ORTHANC_LOCAL #endif #endif /* __ORTHANC_FRAMEWORK_H */