Skip to content

Commit 483dca0

Browse files
committed
Add DCMTK 3.6.0 support to ctkDICOMUtil.cpp
This commit implements a try_compile checking if DCMTK provides 'dcmtk::log4cplus::Logger', if not fallback to 'log4cplus::Logger'. Indeed, following DCMTK-3.6.1_20110519 (commit e39d190), log4cplus has been moved into dcmtk::log4cplus namespace. See commontk#405
1 parent a05024e commit 483dca0

File tree

2 files changed

+26
-3
lines changed

2 files changed

+26
-3
lines changed

Libs/DICOM/Core/CMakeLists.txt

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ project(CTKDICOMCore)
66

77
set(KIT_export_directive "CTK_DICOM_CORE_EXPORT")
88

9-
109
# determine the DCMTK version we're using
1110
if(EXISTS ${DCMTK_config_INCLUDE_DIR}/cfunix.h)
1211
set(_DCMTK_CONFIG_HEADER ${DCMTK_config_INCLUDE_DIR}/cfunix.h)
@@ -16,7 +15,6 @@ else()
1615
message(SEND_ERROR "DCMTK version cannot be determined!")
1716
endif()
1817

19-
2018
file(READ ${_DCMTK_CONFIG_HEADER} _DCMTK_CONFIG)
2119
# simple check, we do not expect anything else
2220
if(_DCMTK_CONFIG MATCHES "PACKAGE_VERSION_NUMBER 360")
@@ -65,6 +63,23 @@ set_source_files_properties(
6563
WRAP_EXCLUDE
6664
)
6765

66+
# Check if DCMTK provides 'dcmtk::log4cplus::Logger', if not fallback to 'log4cplus::Logger'.
67+
# Indeed, following DCMTK-3.6.1_20110519 (commit e39d190), log4cplus has been moved
68+
# into dcmtk::log4cplus namespace.
69+
include(CheckCXXSourceCompiles)
70+
set(CMAKE_REQUIRED_DEFINITIONS -DHAVE_CONFIG_H)
71+
set(CMAKE_REQUIRED_INCLUDES ${DCMTK_INCLUDE_DIRS})
72+
set(CMAKE_REQUIRED_LIBRARIES ${DCMTK_LIBRARIES})
73+
check_cxx_source_compiles(
74+
"#include <dcmtk/oflog/oflog.h>\nint main(int, char*[]){dcmtk::log4cplus::Logger logger; return 0;}"
75+
HAVE_DCMTK_LOG4CPLUS_LOGGER)
76+
if(HAVE_DCMTK_LOG4CPLUS_LOGGER)
77+
set_source_files_properties(
78+
ctkDICOMUtil.cpp
79+
PROPERTIES COMPILE_DEFINITIONS HAVE_DCMTK_LOG4CPLUS_LOGGER
80+
)
81+
endif()
82+
6883
# Headers that should run through moc
6984
set(KIT_MOC_SRCS
7085
ctkDICOMAbstractThumbnailGenerator.h

Libs/DICOM/Core/ctkDICOMUtil.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,16 @@
2525
#include "ctkDICOMUtil.h"
2626

2727
// DCMTK includes
28-
#include <dcmtk/dcmnet/diutil.h>
28+
#include <dcmtk/oflog/oflog.h>
2929

3030
//------------------------------------------------------------------------------
3131
void ctk::setDICOMLogLevel(ctkErrorLogLevel::LogLevel level)
3232
{
33+
#ifdef HAVE_DCMTK_LOG4CPLUS_LOGGER
3334
dcmtk::log4cplus::Logger log = dcmtk::log4cplus::Logger::getRoot();
35+
#else
36+
log4cplus::Logger log = log4cplus::Logger::getRoot();
37+
#endif
3438
switch (level)
3539
{
3640
case ctkErrorLogLevel::Trace: log.setLogLevel(OFLogger::TRACE_LOG_LEVEL); break;
@@ -49,7 +53,11 @@ void ctk::setDICOMLogLevel(ctkErrorLogLevel::LogLevel level)
4953
//------------------------------------------------------------------------------
5054
ctkErrorLogLevel::LogLevel ctk::dicomLogLevel()
5155
{
56+
#ifdef HAVE_DCMTK_LOG4CPLUS_LOGGER
5257
dcmtk::log4cplus::Logger log = dcmtk::log4cplus::Logger::getRoot();
58+
#else
59+
log4cplus::Logger log = log4cplus::Logger::getRoot();
60+
#endif
5361
switch (log.getLogLevel())
5462
{
5563
case OFLogger::TRACE_LOG_LEVEL: return ctkErrorLogLevel::Trace;

0 commit comments

Comments
 (0)