Skip to content
Commits on Source (7)
ANNOUNCEMENT
Version 3.6.2 of the OFFIS DCMTK (DICOM ToolKit) software is now available for
public release. This release includes the following main changes over the
previous version 3.6.0:
Version 3.6.3 of the OFFIS DCMTK (DICOM ToolKit) software is now available for
public release. This is a minor release that includes the following changes
over the previous version 3.6.2:
- DCMTK 3.6.2 builds correctly on older and up-to-date versions of GNU gcc
- DCMTK 3.6.3 builds correctly on older and up-to-date versions of GNU gcc
(4.2.1 to 7.1.1) Clang (3.4.1 to 4.0.1), Microsoft Visual Studio (2005 to
2017) and SunPro CC (5.14 and 5.15).
......@@ -18,308 +18,82 @@ previous version 3.6.0:
- NetBSD on x86_64
- OpenBSD on x86_64
- OpenIndiana on x86
- QNX on x86
- Solaris on x86
- Windows (and MinGW) on x86_64 and x86
For a complete list of tested systems and compilers, see the INSTALL file.
- The CMake build system is now considered as mature as our GNU Autoconf
setup. There are even some features that are only available when using CMake,
for example exporting the build configuration in order to easily integrate
DCMTK into other CMake based projects.
- It is now possible to build shared libraries (Linux) resp. dynamic link
libraries (DLLs, Windows) using CMake and the "BUILD_SHARED_LIBS" option.
DCMTK can even be compiled into a single shared library (e.g. "dcmtk.dll")
using the "BUILD_SINGLE_SHARED_LIBRARY" option.
- Added character set transcoding support:
- Support for converting DICOM files, datasets and element values between
different character sets (incl. code extension techniques).
- Windows-specific support for converting between wide character encoding and
e.g. UTF-8 or Latin-1.
- Support for wide character strings (UTF-16) used for filenames by the
Windows operating system.
- Supports replacing the underlying character set conversion implementation as
needed using either:
- GNU libiconv,
- International Components for Unicode (ICU) or
- the iconv functions from the C standard library.
- "dcmqrdb" allows matching queries with datasets using different character
sets and response conversion.
- Integrated a unit test framework and added several unit tests to ensure that
basic functionality (e.g. parsing DICOM data, network transmission) will
never break.
- Updated CharLS to version 1.0 and log4cplus to version 1.1.0.
- Added cross compiling support for Windows and Android targets. The Android
emulator and Wine have been integrated into our CMake setup for running the
run time configuration tests as required and (optionally) the unit tests.
- Refactored native STL integration:
- Added arguments resp. variables to Autoconf and CMake replacing the old
macros for choosing whether to use DCMTK's fallback or the native
implementation of various STL features. See the INSTALL file for more
information about this.
- Added configuration tests ensuring that the enabled STL features work as
expected/required before actually using them.
- Added unit tests to ensure whichever chosen implementation actually works.
- Added support for several C++11 (and newer) features and fallback
implementations as required:
- Added arguments resp. variables to Autoconf and CMake for enabling native
C++11 support or DCMTK's own fallback implementations and workarounds. See
the INSTALL file for more information.
- Added configuration tests that ensure that the compiler actually provides
C++11 support before using it.
- Added advanced memory management primitives OFunique_ptr and OFshared_ptr
to support users in writing memory leak free code.
- Added support for move semantics, e.g. to transfer the ownership of an
OFunique_ptr.
- Added OFnumeric_limits to query information about fundamental arithmetic
types.
- Added type traits (OFenable_if etc.) to support template meta-programing.
- Added OFtuple as a more generic alternative to OFPair.
- Added OFoptional to connect the state information of optional values with
the actual value, e.g. for being used as function return value.
- Added OFvariant, a type safe tagged union to store different objects in
a single variable (not simultaneously) depending on runtime requirements.
- Added unit tests to ensure all above mentioned features really work.
- Introduced platform independent defines for suppressing inappropriate compiler
diagnostic output (i.e. "warnings"). This mechanism is used to locally
suppress warnings that originate from the compiler misinterpreting the authors
intention, e.g. warnings when intentionally mixing "class" and "struct" for
template specialization to save typing "public" and "private".
- Introduced several new modules:
- "dcmrt" - implements support for the DICOM Radiation Therapy IODs
- "dcmiod" - eases IOD module composition and supports constraint checking
when reading and writing IODs and their modules.
- "dcmfg" - allows to represent Functional Groups in the source code.
- "dcmseg" - implements the segmentation IOD based on "dcmiod" and "dcmfg".
- "dcmtract" - offers a dedicated API to create and read DICOM Tractography
Results objects (introduced in DICOM Supplement 181).
- "dcmpmap" - for creating, saving and loading DICOM Parametric Maps objects
(introduced with Supplement 172).
- GNU Autoconf has been deprecated, running 'configure' will now emit a
warning by default.
- Further enhanced DICOM Structured Reporting (SR) module "dcmsr":
- Added the "dcmsr/cmr" submodule implementing support for parts of the DICOM
Content Mapping Resource (DCMR).
- Added support for SR templates by introducing two general classes for root
and non-root templates.
- Also added support for CP-1031 (Support long code values) and CP-1417
(Clarify use and declaration of private mapping resource).
- Added support for the SR Template TID 1500 (Measurement Report) and included
subordinated Templates (e.g. TID 1001, 1204, 1600, 1411).
- Also added support for all required Context Groups and Code definitions, i.e.
from DICOM, NCIt, SNOMED, UCUM, and UMLS coding scheme.
- Added support for the new Acquisition Context SR IOD, Comprehensive 3D SR
IOD, Implantation Plan SR Document IOD, Radiopharmaceutical Radiation Dose
SR IOD, Simplified Adult Echo SR IOD and Spectacle Prescription Report IOD.
- Further improved handling of incorrectly encoded DICOM SR documents.
- Many further improvements in order to stay up-to-date with development of
the DICOM standard and to make it easier to create, read, write, and modify
SR documents.
- Introduced several new command line tools:
- "getscu" - a C-GET Service Class User.
- "dcmsend" - a Simple Storage Service Class User, based on new class
"DcmStorageSCU".
- "dcmrecv" - alternative to storescp with focus on easy use, based on new
class "DcmStorageSCP".
- "dcm2json" - converts DICOM files to DICOM's official JSON encoding.
- Added threading functionality to DcmSCP via thread pool classes.
- Added new output format to dcm2xml: the Native DICOM Model according to
part 19 of the DICOM standard ("Application Hosting").
- Added support for 16 bits per sample to PNG image export.
- Updated data dictionary, SOP Class and Transfer Syntax UIDs for the recently
approved changes to the DICOM standard (i.e. Supplements and CPs), up to DICOM
standard release DICOM 2017e.
- Significantly enhanced performance of the DICOMDIR code for reading and
writing such files. Also added support for all new Directory Record Types.
- Updated automatically generated classes in module "dcmrt" (Radiotherapy) and
"dcmsr" (Structured Reporting) based on DICOM 2017e. Also updated the Code
definitions from the supported coding schemes such as DICOM, NCIt and UMLS.
- Added support for new Return Key Attributes to the "wlmscpfs", which are
required for the IHE Eye Care Workflow.
- Further enhanced DICOM Structured Reporting (SR) module "dcmsr":
- Introduced advanced parameterization methods for DCMTLS.
- Added support for the Patient Radiation Dose SR IOD (Supplement 191).
- Improved data dictionary configuration options and handling.
- Added support for further sub-templates to the existing class for TID 1500
(Measurement Report), e.g. TID 300 (Measurement).
- Added support for new Value Representations "Other Double" (OD), "Other Long"
(OL), "Unlimited Characters" (UC) and "Universal Resource Identifiers/Locators
(URI/URL)" (UR).
- Enhanced support for image entry descriptors in TID 1600 (Image Library),
e.g. by adding a new method that allows for moving common image entry
descriptors automatically to their respective image group.
- Added support for three new DICOS Storage SOP Classes from the DICOM-related
DICOS (Digital Imaging and Communications in Security) standard.
- Added new method that allows for adding extra content items to extensible
SR templates.
- Added additional matching keys to dcmqrdb and dcmwlm: StudyDate, StudyTime and
IssuerOfPatientID.
- Further enhanced iterating an SR document tree, e.g. by providing a new
filter mechanism that allows for matching document tree nodes based on a
variety of properties like value type and concept name.
- Updated data dictionary, SOP Class and Transfer Syntax UIDs for the recently
approved changes to the DICOM standard (i.e. Supplements and CPs), up to DICOM
standard release DICOM 2017b.
- Added another gotoNode() method to tree and cursor class, which searches for
a particular tree node by its value.
- Added support for additional MPEG4 transfer syntaxes to several command line
programs.
- Added "equal" and "not equal" comparison operators to all document tree node
and underlying value classes as well as to the wrapper class for "SR content
items".
- Enhanced support for DICOM Non-Patient Objects, e.g. allow for transferring
them using the standard networking tools.
- Updated mapping of the Defined Terms for Body Part Examined in the class
that implements CID 4031 (Common Anatomic Regions) based on DICOM 2017e.
- DCMTK now supports compiling with OpenSSL 1.1.x; support for some older,
insecure TLS cipher suites has been removed.
- Many further improvements in order to stay up-to-date with development of
the DICOM standard and to make it easier to use this module and its classes.
- The JPEG encoder now implements DICOM CP 1447, i.e. always writes a SOF1
marker into the JPEG bitstream in extended sequential mode.
- Added options to findscu that extract the C-FIND response datasets to XML
files (either a single file with all responses or separate files for each
response, similar to the existing --extract option).
- The socket timeout used for send() and recv() is now configurable (at
runtime); further fixes and enhancements to networking basics.
- Added option --socket-timeout to echoscu (same as for e.g. storescu).
- Revised implementation of class OFCondition in order to avoid issues with
static initialization order.
- Consistently use the default value "MEDIUM" for Priority in all DIMSE request
messages, i.e. for C-STORE, C-FIND, C-GET and C-MOVE.
- Fixed various issues that occurred after the official 3.6.0 release.
- Fixed various issues that occurred after the official 3.6.2 release.
Many people have contributed to this new release of DCMTK, appearing here in
alphabetical order. Thank you very much for your support!
Alexander Haderer <alexander.haderer@loescap.de>
Alexander Karaivanov <alexander.karaivanov@karoshealth.com>
Andrei Terechko <andrei@vectorfabrics.com>
Andrey Fedorov <andrey.fedorov@gmail.com>
Anne-Gaelle Berge <anne-gaelle.berge@kereval.com>
Bhuvan Bose <bhuvanbose86@gmail.com>
Bill Lorensen <bill.lorensen@gmail.com>
Brad Jascob <bjascob@msn.com>
Bruno Milutin <bmilutin@digithurst.de>
Carmen Avram <carmen@pixeldata.ro>
Christian Fremgen <Christian.Fremgen@ith-icoserve.com>
Christian Herz <cherz@bwh.harvard.edu>
Christian Wetzel <wetzel@phoenix-pacs.de>
Daniele Giunchi <d.giunchi@scsitaly.com>
David Clunie <dclunie@dclunie.com>
Detlev Hohmeier <detlev.hohmeier@meditec.zeiss.com>
Dimitri Papadopoulos <dimitri.papadopoulos@cea.fr>
Dr. Martin Korp <Martin.Korp@ith-icoserve.com>
Dr. Michael Heber <mheber.aup@t-online.de>
Eric A. Borisch <eborisch@macports.org>
David Flade <fladedavid@gmail.com>
Fred Stegemann <fred.stegemann@fstsoft.de>
Fu Peng <fupeng@gmail.com>
Gareth Sylvester-Bradley <garethsb@gmail.com>
Gary Carter <gary.carter@eigen.com>
Gigante <fgigante@imsitaly.com>
Grzegorz Chlebus <grzegorz.chlebus@mevis.fraunhofer.de>
Hanno Hugenberg <hanno.hugenberg@gkmedsys.de>
Hans J. Johnson <hans-johnson@uiowa.edu>
Hans Kluijtmans <hans.kluijtmans@topcon.eu>
Hector Marco <hecmargi@upv.es>
Heyo Spekker <spekker@icsmed.de>
Hüseyin Kozan <posta@huseyinkozan.com.tr>
Ing-Long Eric Kuo <draconpern@hotmail.com>
Domen Soklic <domen.soklic@cosylab.com>
GwanYeong Kim <gy741.kim@gmail.com>
Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
Jeroen Eggermont <J.Eggermont@lumc.nl>
John Stark <jstark@therapixel.com>
Julien Finet <julien.finet@kitware.com>
Kent Williams <norman-k-williams@uiowa.edu>
Kornelius Sohn <k.sohn@starc-medical.de>
Lin Qi Ruan <rlq1969612634@gmail.com>
Marco Nolden <m.nolden@dkfz-heidelberg.de>
Mario Ceresa <mrceresa@gmail.com>
Markus Konrad <markus.konrad@et-innovations.org>
Markus Mertens <markus.mertens@evkb.de>
Martin Wenger <Martin.Wenger@klinikum-hef.de>
Mathieu Malaterre <mathieu.malaterre@gmail.com>
Matt McCormick <matt.mccormick@kitware.com>
Michael Knopke <knopkem@gmail.com>
Michael Schinner <Michael.Schinner@ith-icoserve.com>
Michal Spacek <tupinek@gmail.com>
Niels Dekker <C.E.Dekker@lumc.nl>
Paolo Marcheschi <paolo.marcheschi@ftgm.it>
Per Inge Mathisen <perim@sonowand.com>
Peter Hille <peter@das-system-networks.de>
Joerg Koenig <joerg.koenig@zeiss.com>
Michael Craggs <Michael.Craggs@ith-icoserve.com>
Peter Klotz <Peter.Klotz@ith-icoserve.com>
Pietro Cerutti <gahr@FreeBSD.org>
Rasmus Christian Pedersen <zerhacken@yahoo.com>
Richard Flay <richardf@acres.com.au>
Robert Habrich <habrich@image-systems.biz>
Stacy Loesch <Stacy.Loesch@varian.com>
Takeo Satomi <takeo.satomi@gmail.com>
Tamas Nemeth <tnemeth@erad.com>
Thomas Puckett <puckett_thomas@hotmail.com>
Thomas Sondergaard <thomas.sondergaard@karoshealth.com>
Tiago D'Agostini <tiago.dagostini@pixeon.com>
Tilman Vogel <tilman@circlecvi.com>
Timothy Pitt <tim@vaquita.co.uk>
Waldir Pimenta <waldir.pimenta@gmail.com>
Wang Qiang <wq_net@163.com>
Yves Neumann <neumann@image-systems.biz>
Forum user "AlexanderLysenko"
Forum user "andreasb"
Forum user "angad"
Forum user "aprogrammer"
Forum user "bibble_235"
Forum user "budric"
Forum user "chaircrusher"
Forum user "coach4ae"
Forum user "dimitri"
Forum user "flang"
Forum user "Geof"
Forum user "gerhardh"
Forum user "ghleclerc"
Forum user "HackerNeo"
Forum user "henry"
Forum user "Hua Cong Danh"
Forum user "ichimura.t"
Forum user "ionut.vaida"
Forum user "jacobf"
Forum user "jacobscolin"
Forum user "jakecobb"
Forum user "kosborn"
Forum user "kron24"
Forum user "lars_matthaeus"
Forum user "Luuk"
Forum user "maleike"
Forum user "martinrame"
Forum user "Matterhorn"
Forum user "merlin"
Forum user "michael12345"
Forum user "nikkoara"
Forum user "nmoraes"
Forum user "oblivion81"
Forum user "oxymoron"
Forum user "Paul Groot"
Forum user "Per"
Forum user "poupofa"
Forum user "psih128"
Forum user "Rich in Soquel"
Helmut Steiner
Max Smolens
Martin Strunz
Sergei Khlutchin
Forum user "Hafiz Rafeeq"
Forum user "sfzhang"
Forum user "Shaeto"
Forum user "spasmous"
Forum user "st80rules"
Forum user "Tim"
Forum user "tpalagyi"
Forum user "vlad"
Forum user "vsalomoni"
Forum user "wollet88"
Forum user "wrenashe"
Forum user "xcoder"
Forum user "ymartelli"
Forum user "yueran"
Forum user "Yves Neumann"
Forum user "zaq"
Members of the DCMTK Team who have worked on this release are
(in alphabetical order):
......@@ -333,8 +107,6 @@ Student associates:
Nikolas Goldhammer <nikolasgoldhammer@gmail.com>
Sebastian Grallert <Grallert.Sebastian@web.de>
Thorben Hasenpusch <tpuschel@fastmail.com>
Uli Schlachter <psychon@znc.in>
Also see CREDITS file for projects and companies who have been generously
supporting DCMTK.
......@@ -343,4 +115,4 @@ The DCMTK software can be downloaded via:
http://dicom.offis.de/dcmtk or http://www.dcmtk.org/
OFFIS e.V., Oldenburg, Germany, 2017-07-14
OFFIS e.V., Oldenburg, Germany, 2018-02-05
......@@ -86,7 +86,8 @@ IF(WIN32 AND NOT MINGW)
SET(OPENSSL_BINDIR "${WITH_OPENSSLINC}/bin")
SET(OPENSSL_INCDIR "${WITH_OPENSSLINC}/include")
SET(OPENSSL_LIBDIR "${WITH_OPENSSLINC}/lib")
SET(OPENSSL_LIBS debug "${OPENSSL_LIBDIR}/dcmtkssl_d.lib" optimized "${OPENSSL_LIBDIR}/dcmtkssl_o.lib" debug "${OPENSSL_LIBDIR}/dcmtkcrypto_d.lib" optimized "${OPENSSL_LIBDIR}/dcmtkcrypto_o.lib")
# starting with OpenSSL 1.1.0, the Windows crypt32 library is needed for a static link of OpenSSL.
SET(OPENSSL_LIBS "crypt32" debug "${OPENSSL_LIBDIR}/dcmtkssl_d.lib" optimized "${OPENSSL_LIBDIR}/dcmtkssl_o.lib" debug "${OPENSSL_LIBDIR}/dcmtkcrypto_d.lib" optimized "${OPENSSL_LIBDIR}/dcmtkcrypto_o.lib")
MESSAGE(STATUS "Info: DCMTK OPENSSL support will be enabled")
SET(WITH_OPENSSL 1)
ELSE(WITH_OPENSSLINC) # turn off library if library path not set
......
......@@ -7,7 +7,7 @@
SET(ENV{DCMDICTPATH} "@DCMDICTPATH@")
EXECUTE_PROCESS(COMMAND
"${DCMTK_CTEST_TESTCASE_COMMAND}" ${DCMTK_CTEST_EXTRA_ARGUMENTS} "${DCMTK_CTEST_TEST_NAME}"
"${DCMTK_CTEST_TESTCASE_COMMAND}" $ENV{DCMTK_CTEST_EXTRA_ARGUMENTS} "${DCMTK_CTEST_TEST_NAME}"
RESULT_VARIABLE RESULT
)
......
......@@ -21,7 +21,7 @@ SET(DCMTK_ANDROID_EMULATOR_INSTANCE "$ENV{DCMTK_ANDROID_EMULATOR_INSTANCE}")
# Run the actual testcase on the remote device
DCMTK_ANDROID_SHELL(DCMTK_ANDROID_EMULATOR_INSTANCE
COMMAND "LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${ANDROID_TEMPORARY_FILES_LOCATION}" "DCMDICTPATH=${DCMDICTPATH}" "${DCMTK_CTEST_TESTCASE_COMMAND}" ${DCMTK_CTEST_EXTRA_ARGUMENTS} "${DCMTK_CTEST_TEST_NAME}"
COMMAND "LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${ANDROID_TEMPORARY_FILES_LOCATION}" "DCMDICTPATH=${DCMDICTPATH}" "${DCMTK_CTEST_TESTCASE_COMMAND}" $ENV{DCMTK_CTEST_EXTRA_ARGUMENTS} "${DCMTK_CTEST_TEST_NAME}"
WORKING_DIRECTORY "${ANDROID_TEMPORARY_FILES_LOCATION}"
RESULT_VARIABLE RESULT
)
......
......@@ -3,4 +3,4 @@
#
SET(ENV{DCMTK_CTEST_EXTRA_ARGUMENTS} "-x")
EXECUTE_PROCESS(COMMAND ${CMAKE_CTEST_COMMAND})
EXECUTE_PROCESS(COMMAND ${CMAKE_CTEST_COMMAND} -C "${CONFIG}")
......@@ -12,7 +12,7 @@ SET(ENV{DCMDICTPATH} "@DCMDICTPATH@")
SET(WINE_WINE_PROGRAM "@WINE_WINE_PROGRAM@")
EXECUTE_PROCESS(COMMAND
"${WINE_WINE_PROGRAM}" "${DCMTK_CTEST_TESTCASE_COMMAND}" ${DCMTK_CTEST_EXTRA_ARGUMENTS} "${DCMTK_CTEST_TEST_NAME}"
"${WINE_WINE_PROGRAM}" "${DCMTK_CTEST_TESTCASE_COMMAND}" $ENV{DCMTK_CTEST_EXTRA_ARGUMENTS} "${DCMTK_CTEST_TEST_NAME}"
RESULT_VARIABLE RESULT
)
......
......@@ -134,10 +134,10 @@ IF(WIN32 AND NOT CYGWIN)
SET(ENVIRONMENT_PATH_SEPARATOR ";")
# Set dictionary path to the data dir inside install main dir (prefix)
IF(DCMTK_ENABLE_EXTERNAL_DICTIONARY)
SET(DCM_DICT_DEFAULT_PATH "${DCMTK_PREFIX}\\\\${DCMTK_INSTALL_DATDIR}\\\\dicom.dic")
SET(DCM_DICT_DEFAULT_PATH "${DCMTK_PREFIX}\\\\${CMAKE_INSTALL_DATADIR}\\\\dcmtk\\\\dicom.dic")
# If private dictionary should be utilized, add it to default dictionary path.
IF(ENABLE_PRIVATE_TAGS)
SET(DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH};${DCMTK_PREFIX}\\\\${DCMTK_INSTALL_DATDIR}\\\\private.dic")
SET(DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH};${DCMTK_PREFIX}\\\\${CMAKE_INSTALL_DATADIR}\\\\dcmtk\\\\private.dic")
ENDIF(ENABLE_PRIVATE_TAGS)
# Again, for Windows strip all / from path and replace it with \\.
STRING(REGEX REPLACE "/" "\\\\\\\\" DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH}")
......@@ -155,17 +155,17 @@ ELSE(WIN32 AND NOT CYGWIN)
SET(ENVIRONMENT_PATH_SEPARATOR ":")
# Set dictionary path to the data dir inside install main dir (prefix).
IF(DCMTK_ENABLE_EXTERNAL_DICTIONARY)
SET(DCM_DICT_DEFAULT_PATH "${DCMTK_PREFIX}/${DCMTK_INSTALL_DATDIR}/dicom.dic")
SET(DCM_DICT_DEFAULT_PATH "${DCMTK_PREFIX}/${CMAKE_INSTALL_DATADIR}/dcmtk/dicom.dic")
# If private dictionary should be utilized, add it to default dictionary path.
IF(ENABLE_PRIVATE_TAGS)
SET(DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH}:${DCMTK_PREFIX}/${DCMTK_INSTALL_DATDIR}/private.dic")
SET(DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH}:${DCMTK_PREFIX}/${CMAKE_INSTALL_DATADIR}/dcmtk/private.dic")
ENDIF(ENABLE_PRIVATE_TAGS)
ELSE(DCMTK_ENABLE_EXTERNAL_DICTIONARY)
SET(DCM_DICT_DEFAULT_PATH "")
ENDIF(DCMTK_ENABLE_EXTERNAL_DICTIONARY)
# Set default directory for configuration and support data.
SET(DCMTK_DEFAULT_CONFIGURATION_DIR "${DCMTK_PREFIX}/${DCMTK_INSTALL_ETCDIR}/")
SET(DCMTK_DEFAULT_SUPPORT_DATA_DIR "${DCMTK_PREFIX}/${DCMTK_INSTALL_DATDIR}/")
SET(DCMTK_DEFAULT_CONFIGURATION_DIR "${DCMTK_PREFIX}/${CMAKE_INSTALL_SYSCONFDIR}/dcmtk/")
SET(DCMTK_DEFAULT_SUPPORT_DATA_DIR "${DCMTK_PREFIX}/${CMAKE_INSTALL_DATADIR}/dcmtk/")
ENDIF(WIN32 AND NOT CYGWIN)
# Check the sizes of various types
......@@ -321,6 +321,15 @@ ENDIF(WIN32 AND NOT CYGWIN)
CHECK_INCLUDE_FILE_CXX("signal.h" HAVE_SIGNAL_H)
CHECK_INCLUDE_FILE_CXX("fenv.h" HAVE_FENV_H)
IF(NOT APPLE)
# poll on macOS is unreliable, it first did not exist, then was broken until
# fixed in 10.9 only to break again in 10.12.
CHECK_INCLUDE_FILE_CXX("poll.h" DCMTK_HAVE_POLL)
IF(DCMTK_HAVE_POLL)
ADD_DEFINITIONS(-DDCMTK_HAVE_POLL=1)
ENDIF(DCMTK_HAVE_POLL)
ENDIF()
# This mimics the autoconf test. There are systems out there
# (e.g. FreeBSD and NeXT) where tcp.h can't be compiled on its own.
SET(TCP_H_DEPS "")
......@@ -568,8 +577,8 @@ ENDIF(WIN32 AND NOT CYGWIN)
ENDIF(HAVE_CSTDDEF)
CHECK_FUNCTIONWITHHEADER_EXISTS(feenableexcept "${HEADERS}" HAVE_PROTOTYPE_FEENABLEEXCEPT)
CHECK_FUNCTIONWITHHEADER_EXISTS(isinf "${HEADERS}" HAVE_PROTOTYPE_ISINF)
CHECK_FUNCTIONWITHHEADER_EXISTS(isnan "${HEADERS}" HAVE_PROTOTYPE_ISNAN)
CHECK_FUNCTIONWITHHEADER_EXISTS(isinf(0.) "${HEADERS}" HAVE_PROTOTYPE_ISINF)
CHECK_FUNCTIONWITHHEADER_EXISTS(isnan(0.) "${HEADERS}" HAVE_PROTOTYPE_ISNAN)
CHECK_FUNCTIONWITHHEADER_EXISTS(finite "${HEADERS}" HAVE_PROTOTYPE_FINITE)
CHECK_FUNCTIONWITHHEADER_EXISTS(std::isinf "${HEADERS}" HAVE_PROTOTYPE_STD__ISINF)
CHECK_FUNCTIONWITHHEADER_EXISTS(std::isnan "${HEADERS}" HAVE_PROTOTYPE_STD__ISNAN)
......@@ -625,6 +634,7 @@ ENDIF(WIN32 AND NOT CYGWIN)
CHECK_FUNCTIONWITHHEADER_EXISTS("getgrnam_r((char*)0,(group*)0,(char*)0,0,(group**)0)" "${HEADERS}" HAVE_GETGRNAM_R)
CHECK_FUNCTIONWITHHEADER_EXISTS("getpwnam_r((char*)0,(passwd*)0,(char*)0,0,(passwd**)0)" "${HEADERS}" HAVE_GETPWNAM_R)
CHECK_FUNCTIONWITHHEADER_EXISTS("readdir_r((DIR*)0,(dirent*)0,(dirent**)0)" "${HEADERS}" HAVE_READDIR_R)
CHECK_FUNCTIONWITHHEADER_EXISTS("readdir_r((DIR*)0,(dirent*)0)" "${HEADERS}" HAVE_OLD_READDIR_R)
CHECK_FUNCTIONWITHHEADER_EXISTS(nanosleep "${HEADERS}" HAVE_PROTOTYPE_NANOSLEEP)
CHECK_FUNCTIONWITHHEADER_EXISTS("&passwd::pw_gecos" "${HEADERS}" HAVE_PASSWD_GECOS)
......
......@@ -21,7 +21,7 @@ IF(BUILD_SINGLE_SHARED_LIBRARY)
INSTALL(TARGETS dcmtk
EXPORT DCMTKTargets
COMPONENT lib
RUNTIME DESTINATION "${DCMTK_INSTALL_BINDIR}"
LIBRARY DESTINATION "${DCMTK_INSTALL_LIBDIR}"
ARCHIVE DESTINATION "${DCMTK_INSTALL_LIBDIR}")
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
ENDIF(BUILD_SINGLE_SHARED_LIBRARY)
......@@ -6,10 +6,10 @@
#
FUNCTION(DCMTK_ADD_TESTS MODULE)
IF(BUILD_APPS AND DCMTK_RUN_CTEST_SCRIPT)
SET(TEST_EXECUTABLE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${MODULE}_tests${CMAKE_EXECUTABLE_SUFFIX}")
SET(TEST_EXECUTABLE "$<TARGET_FILE:${MODULE}_tests>")
IF(CMAKE_CROSSCOMPILING)
IF(WIN32)
WINE_COMMAND(TEST_COMMAND "${TEST_EXECUTABLE}")
WINE_COMMAND(TEST_COMMAND "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${MODULE}_tests${CMAKE_EXECUTABLE_SUFFIX}")
STRING(REPLACE "\\" "\\\\" TEST_COMMAND "${TEST_COMMAND}")
ELSEIF(ANDROID)
SET(TEST_COMMAND "${ANDROID_TEMPORARY_FILES_LOCATION}/${MODULE}_tests")
......@@ -28,12 +28,17 @@ FUNCTION(DCMTK_ADD_TESTS MODULE)
STRING(REGEX MATCH "OFTEST_REGISTER\\([^)]*" TEST "${TEST_LINE}")
STRING(REPLACE "OFTEST_REGISTER(" "" TEST ${TEST})
# This assumes that test names are globally unique
ADD_TEST("${TEST}" "${CMAKE_COMMAND}" "-DDCMTK_CTEST_TESTCASE_COMMAND=${TEST_COMMAND}" "-DDCMTK_CTEST_TEST_NAME=${TEST}" "-DDCMTK_CTEST_EXTRA_ARGUMENTS=\$ENV{DCMTK_CTEST_EXTRA_ARGUMENTS}" "-P" "${DCMTK_RUN_CTEST_SCRIPT}")
ADD_TEST(NAME "${TEST}" COMMAND "${CMAKE_COMMAND}" "-DDCMTK_CTEST_TESTCASE_COMMAND=${TEST_COMMAND}" "-DDCMTK_CTEST_TEST_NAME=${TEST}" "-P" "${DCMTK_RUN_CTEST_SCRIPT}")
SET_PROPERTY(TEST "${TEST}" PROPERTY LABELS "${MODULE}")
SET_PROPERTY(TEST "${TEST}" PROPERTY REQUIRED_FILES "${TEST_EXECUTABLE}")
IF(CMAKE_VERSION VERSION_LESS 3.0.0)
# CMake versions prior 3 seemingly don't understand $<TARGET_FILE:tgt> within a test's REQUIRED_FILES property
SET_PROPERTY(TEST "${TEST}" PROPERTY REQUIRED_FILES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${MODULE}_tests${CMAKE_EXECUTABLE_SUFFIX}")
ELSE()
SET_PROPERTY(TEST "${TEST}" PROPERTY REQUIRED_FILES "${TEST_EXECUTABLE}")
ENDIF()
ENDFOREACH(TEST_LINE)
ADD_CUSTOM_TARGET("${MODULE}-test-exhaustive"
COMMAND "${CMAKE_COMMAND}" "-P" "${DCMTK_SOURCE_DIR}/CMake/CTest/dcmtkCTestRunExhaustive.cmake"
COMMAND "${CMAKE_COMMAND}" "-DCONFIG=${DCMTK_CONFIG_GENERATOR_EXPRESSION}" "-P" "${DCMTK_SOURCE_DIR}/CMake/CTest/dcmtkCTestRunExhaustive.cmake"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
)
ENDIF(BUILD_APPS AND DCMTK_RUN_CTEST_SCRIPT)
......@@ -61,7 +66,7 @@ MACRO(DCMTK_ADD_EXECUTABLE PROGRAM)
INSTALL(TARGETS ${PROGRAM}
EXPORT DCMTKTargets
COMPONENT bin
DESTINATION ${DCMTK_INSTALL_BINDIR})
DESTINATION ${CMAKE_INSTALL_BINDIR})
ENDIF(BUILD_APPS)
ENDMACRO(DCMTK_ADD_EXECUTABLE)
......@@ -92,9 +97,9 @@ MACRO(DCMTK_ADD_LIBRARY LIBRARY)
# Declare installation files
INSTALL(TARGETS ${LIBRARY}${DCMTK_LIBRARY_SUFFIX}
EXPORT DCMTKTargets
RUNTIME DESTINATION "${DCMTK_INSTALL_BINDIR}" COMPONENT bin
LIBRARY DESTINATION "${DCMTK_INSTALL_LIBDIR}" COMPONENT shlib
ARCHIVE DESTINATION "${DCMTK_INSTALL_LIBDIR}" COMPONENT lib)
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT bin
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT shlib
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib)
ENDIF(NOT BUILD_SINGLE_SHARED_LIBRARY)
ENDMACRO(DCMTK_ADD_LIBRARY)
......
......@@ -8,10 +8,9 @@ ENDIF(DEFINED DCMTK_CONFIGURATION_DONE)
SET(DCMTK_CONFIGURATION_DONE true)
# Minimum CMake version required
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
IF(CMAKE_BACKWARDS_COMPATIBILITY GREATER 3.8.2)
SET(CMAKE_BACKWARDS_COMPATIBILITY 3.8.2 CACHE STRING "Latest version of CMake when this project was released." FORCE)
ENDIF(CMAKE_BACKWARDS_COMPATIBILITY GREATER 3.8.2)
IF(CMAKE_BACKWARDS_COMPATIBILITY GREATER 3.10.2)
SET(CMAKE_BACKWARDS_COMPATIBILITY 3.10.2 CACHE STRING "Latest version of CMake when this project was released." FORCE)
ENDIF(CMAKE_BACKWARDS_COMPATIBILITY GREATER 3.10.2)
# CMAKE_BUILD_TYPE is set to value "Release" if none is specified by the
# selected build file generator. For those generators that support multiple
......@@ -39,14 +38,14 @@ ENDIF(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
# a development snapshot and an even number indicates an official release.)
SET(DCMTK_MAJOR_VERSION 3)
SET(DCMTK_MINOR_VERSION 6)
SET(DCMTK_BUILD_VERSION 2)
SET(DCMTK_BUILD_VERSION 3)
# The ABI is not guaranteed to be stable between different snapshots/releases,
# so this particular version number is increased for each snapshot or release.
SET(DCMTK_ABI_VERSION 12)
SET(DCMTK_ABI_VERSION 13)
# Package "release" settings (some are currently unused and, therefore, disabled)
SET(DCMTK_PACKAGE_NAME "dcmtk")
SET(DCMTK_PACKAGE_DATE "2017-07-14")
SET(DCMTK_PACKAGE_DATE "2018-02-05")
SET(DCMTK_PACKAGE_VERSION "${DCMTK_MAJOR_VERSION}.${DCMTK_MINOR_VERSION}.${DCMTK_BUILD_VERSION}")
SET(DCMTK_PACKAGE_VERSION_NUMBER ${DCMTK_MAJOR_VERSION}${DCMTK_MINOR_VERSION}${DCMTK_BUILD_VERSION})
SET(DCMTK_PACKAGE_VERSION_SUFFIX "")
......@@ -185,25 +184,18 @@ ENDIF(CMAKE_CROSSCOMPILING)
# Installation sub-directories
#-----------------------------------------------------------------------------
SET(DCMTK_INSTALL_BINDIR "bin" CACHE STRING "Installation sub-directory for binary executables.")
SET(DCMTK_INSTALL_INCDIR "include" CACHE STRING "Installation sub-directory for header files.")
SET(DCMTK_INSTALL_LIBDIR "lib" CACHE STRING "Installation sub-directory for object code libraries.")
# Set project name variable to package name for GnuInstallDirs
SET(PROJECT_NAME "${DCMTK_PACKAGE_NAME}")
# Provides CMake cache variables with reasonable defaults to create a GNU style installation
# directory structure
INCLUDE(GNUInstallDirs)
# CMake's files (DCMTKTarget.cmake, DCMTKConfigVersion.cmake and DCMTKConfig.cmake) are installed
# to different installation paths under Unix- and Windows-based systems
IF(UNIX)
SET(DCMTK_INSTALL_CMKDIR "lib/cmake/dcmtk" CACHE STRING "Installation sub-directory for CMake files.")
SET(DCMTK_INSTALL_CMKDIR "${CMAKE_INSTALL_LIBDIR}/cmake/dcmtk")
ELSEIF(WIN32)
SET(DCMTK_INSTALL_CMKDIR "cmake" CACHE STRING "Installation sub-directory for CMake files.")
SET(DCMTK_INSTALL_CMKDIR "cmake")
ENDIF(UNIX)
SET(DCMTK_INSTALL_ETCDIR "etc/dcmtk" CACHE STRING "Installation sub-directory for configuration files.")
SET(DCMTK_INSTALL_DATDIR "share/dcmtk" CACHE STRING "Installation sub-directory for sample files and the like.")
SET(DCMTK_INSTALL_DOCDIR "share/doc/dcmtk" CACHE STRING "Installation sub-directory for general documentation.")
SET(DCMTK_INSTALL_HTMDIR "share/doc/dcmtk/html" CACHE STRING "Installation sub-directory for HTML documentation.")
SET(DCMTK_INSTALL_MANDIR "share/man" CACHE STRING "Installation sub-directory for man pages.")
MARK_AS_ADVANCED(DCMTK_INSTALL_BINDIR DCMTK_INSTALL_INCDIR DCMTK_INSTALL_LIBDIR DCMTK_INSTALL_CMKDIR
DCMTK_INSTALL_ETCDIR DCMTK_INSTALL_DATDIR DCMTK_INSTALL_DOCDIR DCMTK_INSTALL_HTMDIR
DCMTK_INSTALL_MANDIR)
#-----------------------------------------------------------------------------
# Build directories
......@@ -219,20 +211,15 @@ FILE(WRITE "${DCMTK_BUILD_CMKDIR}/DCMTKTargets.cmake" "")
# Platform-independent settings
#-----------------------------------------------------------------------------
IF(COMMAND CMAKE_POLICY)
# Enable new CMake behaviour when dealing with libraries whose full path is
# given to the linker. This is necessary to avoid warnings in CMake versions
# greater than 2.6.
# See http://www.cmake.org/cmake/help/cmake-2.6.html#policy:CMP0003
CMAKE_POLICY(SET CMP0003 NEW)
# Works around warnings about escaped quotes in ADD_DEFINITIONS statements
CMAKE_POLICY(SET CMP0005 OLD)
ENDIF(COMMAND CMAKE_POLICY)
# pass optional build date to compiler
#SET(DCMTK_BUILD_DATE "\\\"YYYY-MM-DD\\\"")
IF(DCMTK_BUILD_DATE)
IF(COMMAND CMAKE_POLICY)
# Works around warnings about escaped quotes in ADD_DEFINITIONS statements
CMAKE_POLICY(SET CMP0005 OLD)
ENDIF(COMMAND CMAKE_POLICY)
# Xcode needs one escaping layer more than (as far as we know) everyone else - we gotta go deeper!
IF(CMAKE_GENERATOR MATCHES Xcode)
STRING(REPLACE "\\" "\\\\" DCMTK_BUILD_DATE "${DCMTK_BUILD_DATE}")
......@@ -512,3 +499,13 @@ DCMTK_TEST_SOCKET_LIBRARY(socket "socket")
IF(CMAKE_CXX_COMPILER_ID STREQUAL SunPro)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -features=tmplrefstatic")
ENDIF()
#-----------------------------------------------------------------------------
# workaround for using the deprecated generator expression $<CONFIGURATION>
# with old CMake versions that do not understand $<CONFIG>
#-----------------------------------------------------------------------------
IF(CMAKE_VERSION VERSION_LESS 3.0.0)
SET(DCMTK_CONFIG_GENERATOR_EXPRESSION "$<CONFIGURATION>" CACHE INTERNAL "the generator expression to use for retriving the current config")
ELSE()
SET(DCMTK_CONFIG_GENERATOR_EXPRESSION "$<CONFIG>" CACHE INTERNAL "the generator expression to use for retriving the current config")
ENDIF()
File mode changed from 100755 to 100644
......@@ -56,6 +56,9 @@
/* Define if we want a populated builtin dictionary */
#cmakedefine ENABLE_BUILTIN_DICTIONARY "@ENABLE_BUILTIN_DICTIONARY@"
/* Define if we want load external dictionaries */
#cmakedefine ENABLE_EXTERNAL_DICTIONARY "@ENABLE_EXTERNAL_DICTIONARY@"
/* Define the environment variable path separator */
#define ENVIRONMENT_PATH_SEPARATOR '@ENVIRONMENT_PATH_SEPARATOR@'
......@@ -396,7 +399,7 @@
/* Define if your system supports readdir_r with the obsolete Posix 1.c draft
6 declaration (2 arguments) instead of the Posix 1.c declaration with 3
arguments. */
/* #undef HAVE_OLD_READDIR_R */
#cmakedefine HAVE_OLD_READDIR_R @HAVE_OLD_READDIR_R@
/* Define if your system has a prototype for feenableexcept in fenv.h */
#cmakedefine HAVE_PROTOTYPE_FEENABLEEXCEPT @HAVE_PROTOTYPE_FEENABLEEXCEPT@
......
......@@ -2,7 +2,7 @@
PROJECT(DCMTK)
# Minimum CMake version required
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.3)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.5)
# Disables a warning emitted by CMake 3.7.2. The same setting is performed
# again in CMake/dcmtkPrepare.cmake (included below), but the warning is still
......@@ -69,7 +69,7 @@ ELSE(CMAKE_CROSSCOMPILING)
ENDIF(CMAKE_CROSSCOMPILING)
# Add a target to run the unit tests in exhaustive mode
ADD_CUSTOM_TARGET("test-exhaustive"
COMMAND "${CMAKE_COMMAND}" "-P"
COMMAND "${CMAKE_COMMAND}" "-DCONFIG=${DCMTK_CONFIG_GENERATOR_EXPRESSION}" "-P"
"${DCMTK_SOURCE_DIR}/CMake/CTest/dcmtkCTestRunExhaustive.cmake"
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
)
......@@ -91,14 +91,14 @@ INCLUDE(CMake/dcmtkAfterModules.cmake NO_POLICY_SCOPE)
# Install global headers
INSTALL(FILES "${DCMTK_BINARY_DIR}/config/include/dcmtk/config/osconfig.h"
"${DCMTK_BINARY_DIR}/config/include/dcmtk/config/arith.h"
DESTINATION "${DCMTK_INSTALL_INCDIR}/dcmtk/config"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/dcmtk/config"
COMPONENT include)
# Install DCMTK's general documentation files
INSTALL(FILES ANNOUNCE CHANGES COPYRIGHT CREDITS FAQ HISTORY VERSION
DESTINATION "${DCMTK_INSTALL_DOCDIR}"
DESTINATION "${CMAKE_INSTALL_DOCDIR}"
COMPONENT doc)
INSTALL(DIRECTORY docs/ DESTINATION "${DCMTK_INSTALL_DOCDIR}"
INSTALL(DIRECTORY docs/ DESTINATION "${CMAKE_INSTALL_DOCDIR}"
COMPONENT doc FILES_MATCHING PATTERN "CHANGES.???")
#-----------------------------------------------------------------------------
......
This diff is collapsed.
......@@ -567,6 +567,37 @@ done
])
dnl AC_CHECK_POLL_H checks if we have a usable <poll.h>.
dnl poll on macOS is unreliable, it first did not exist, then was broken until
dnl fixed in 10.9 only to break again in 10.12.
dnl
dnl AC_CHECK_POLL_H([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
AC_DEFUN(AC_CHECK_POLL_H,
[
AC_MSG_CHECKING([for usable poll.h])
AH_TEMPLATE(AS_TR_CPP(DCMTK_HAVE_POLL), [Define if your system has a usable <poll.h>])
AC_CACHE_VAL(ac_cv_header_poll_h,
[
case "${host}" in
*-*-darwin*)
eval "ac_cv_header_poll_h=no"
;;
*)
AC_TRY_CPP([#include <poll.h>], eval "ac_cv_header_poll_h=yes", eval "ac_cv_header_poll_h=no")dnl
;;
esac
])
if eval "test \"`echo '$ac_cv_header_poll_h'`\" = yes"; then
AC_MSG_RESULT(yes)
AC_DEFINE_UNQUOTED(DCMTK_HAVE_POLL)
ifelse([$1], , :, [$1])
else
AC_MSG_RESULT(no)
ifelse([$2], , , [$2])
fi
])
dnl AC_CHECK_TCP_H
dnl checks for the presence of three system include files:
dnl <netinet/in_systm.h>
......
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for dcmtk 3.6.2.
# Generated by GNU Autoconf 2.69 for dcmtk 3.6.3.
#
# Report bugs to <bugs@dcmtk.org>.
#
......@@ -579,9 +579,9 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='dcmtk'
PACKAGE_TARNAME='dcmtk-3.6.2'
PACKAGE_VERSION='3.6.2'
PACKAGE_STRING='dcmtk 3.6.2'
PACKAGE_TARNAME='dcmtk-3.6.3'
PACKAGE_VERSION='3.6.3'
PACKAGE_STRING='dcmtk 3.6.3'
PACKAGE_BUGREPORT='bugs@dcmtk.org'
PACKAGE_URL='http://www.dcmtk.org/'
......@@ -1311,7 +1311,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures dcmtk 3.6.2 to adapt to many kinds of systems.
\`configure' configures dcmtk 3.6.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
......@@ -1376,7 +1376,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of dcmtk 3.6.2:";;
short | recursive ) echo "Configuration of dcmtk 3.6.3:";;
esac
cat <<\_ACEOF
......@@ -1545,7 +1545,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
dcmtk configure 3.6.2
dcmtk configure 3.6.3
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
......@@ -2405,7 +2405,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by dcmtk $as_me 3.6.2, which was
It was created by dcmtk $as_me 3.6.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
......@@ -2827,9 +2827,9 @@ ac_config_headers="$ac_config_headers include/dcmtk/config/osconfig.h"
PACKAGE_VERSION_NUMBER=362
PACKAGE_VERSION_NUMBER=363
PACKAGE_VERSION_SUFFIX=""
PACKAGE_DATE="2017-07-14"
PACKAGE_DATE="2018-02-05"
cat >>confdefs.h <<_ACEOF
......@@ -8690,6 +8690,47 @@ fi
done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for usable poll.h" >&5
$as_echo_n "checking for usable poll.h... " >&6; }
if ${ac_cv_header_poll_h+:} false; then :
$as_echo_n "(cached) " >&6
else
case "${host}" in
*-*-darwin*)
eval "ac_cv_header_poll_h=no"
;;
*)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <poll.h>
_ACEOF
if ac_fn_cxx_try_cpp "$LINENO"; then :
eval "ac_cv_header_poll_h=yes"
else
eval "ac_cv_header_poll_h=no"
fi
rm -f conftest.err conftest.i conftest.$ac_ext ;;
esac
fi
if eval "test \"`echo '$ac_cv_header_poll_h'`\" = yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
cat >>confdefs.h <<_ACEOF
#define DCMTK_HAVE_POLL 1
_ACEOF
:
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test $ac_cv_header_libc_h = yes ; then
if test $ac_cv_header_math_h = yes ; then
......@@ -12911,7 +12952,7 @@ if ${ac_cv_check_std_namespace+:} false; then :
else
ac_link_o='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.o $LIBS 1>&5'
cat > conftest.$ac_ext <<EOF
#line 12914 "configure"
#line 12955 "configure"
#include "confdefs.h"
#include <iostream>
......@@ -13383,7 +13424,7 @@ if ${ac_cv_check_class_template+:} false; then :
else
ac_link_o='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.o $LIBS 1>&5'
cat > conftest.$ac_ext <<EOF
#line 13386 "configure"
#line 13427 "configure"
#include "confdefs.h"
template <class T>
......@@ -13455,7 +13496,7 @@ if ${ac_cv_check_static_template_method+:} false; then :
else
ac_link_o='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.o $LIBS 1>&5'
cat > conftest.$ac_ext <<EOF
#line 13458 "configure"
#line 13499 "configure"
#include "confdefs.h"
void additive(int & i)
......@@ -13527,7 +13568,7 @@ if ${ac_cv_check_function_template+:} false; then :
else
ac_link_o='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.o $LIBS 1>&5'
cat > conftest.$ac_ext <<EOF
#line 13530 "configure"
#line 13571 "configure"
#include "confdefs.h"
template <class T>
......@@ -17234,7 +17275,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by dcmtk $as_me 3.6.2, which was
This file was extended by dcmtk $as_me 3.6.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -17297,7 +17338,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
dcmtk config.status 3.6.2
dcmtk config.status 3.6.3
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
......
dnl Process this file with autoconf to produce a configure script.
AC_INIT(dcmtk, 3.6.2, [bugs@dcmtk.org], [dcmtk-3.6.2], [http://www.dcmtk.org/])
AC_INIT(dcmtk, 3.6.3, [bugs@dcmtk.org], [dcmtk-3.6.3], [http://www.dcmtk.org/])
AC_PREREQ(2.60)
AC_CONFIG_SRCDIR(Makefile.in)
AC_CONFIG_HEADER(include/dcmtk/config/osconfig.h)
AC_CONFIG_HEADERS(include/dcmtk/config/osconfig.h)
m4_include([stdcxx.m4])
......@@ -10,9 +10,9 @@ dnl -------------------------------------------------------
dnl Additional Package Information
dnl -------------------------------------------------------
PACKAGE_VERSION_NUMBER=362
PACKAGE_VERSION_NUMBER=363
PACKAGE_VERSION_SUFFIX=""
PACKAGE_DATE="2017-07-14"
PACKAGE_DATE="2018-02-05"
AC_DEFINE_UNQUOTED(PACKAGE_VERSION_NUMBER,${PACKAGE_VERSION_NUMBER},[Define to the version number of this package.])
AC_DEFINE_UNQUOTED(PACKAGE_VERSION_SUFFIX,"${PACKAGE_VERSION_SUFFIX}",[Define to the version suffix of this package.])
......@@ -545,6 +545,7 @@ AC_CHECK_HEADERS(utime.h)
AC_CHECK_HEADERS(wchar.h)
AC_CHECK_HEADERS(wctype.h)
AC_CHECK_HEADERS(fenv.h)
AC_CHECK_POLL_H
if test $ac_cv_header_libc_h = yes ; then
if test $ac_cv_header_math_h = yes ; then
......@@ -947,7 +948,7 @@ AC_ARG_ENABLE(external-dict,
*)
AC_MSG_RESULT(no)
dnl Reset default path so the dictionary is not loaded automatically on startup
AC_DEFINE_UNQUOTED(DCM_DICT_DEFAULT_PATH, "", [Empty default data dictionary path for the dcmdata library package.])
AC_DEFINE_UNQUOTED(DCM_DICT_DEFAULT_PATH, "", [Define the default data dictionary path for the dcmdata library package.])
;;
esac ],
AC_MSG_RESULT(yes)
......
# declare installation files
INSTALL(FILES config.txt dirstruc.txt envvars.txt macros.txt modules.txt DESTINATION "${DCMTK_INSTALL_DOCDIR}" COMPONENT doc)
INSTALL(FILES config.txt dirstruc.txt envvars.txt macros.txt modules.txt DESTINATION "${CMAKE_INSTALL_DOCDIR}" COMPONENT doc)
......@@ -135,17 +135,8 @@ DONT_DISABLE_NAGLE_ALGORITHM
disabled by default. See DISABLE_NAGLE_ALGORITHM for details.
DONT_LOAD_EXTERNAL_DICTIONARIES
Affected: dcmdata
Type of modification: Disables feature
Explanation: By default, DCMTK loads data dictionaries from files at
application start (before the main function is called). These files
are either specified by the DCMDICTPATH environment variable or the
default files are used. This flag disables the loading of external
dictionaries from file at application start, which might be useful
when only the builtin dictionary should be used. However, if no
dictionary gets loaded, this is likely to cause unexpected behavior.
Even if this flag is defined, the reloadDictionaries() method can be
used to load the external dictionaries after application start.
This macro is not supported anymore since it has been superseded by macro
ENABLE_EXTERNAL_DICTIONARY. See ENABLE_EXTERNAL_DICTIONARY for details.
DOXYGEN
Affected: everything
......@@ -164,8 +155,32 @@ ENABLE_BUILTIN_DICTIONARY
Type of modification: Activates feature
Explanation: If enabled, DCMTK's global builtin dictionary, that is always
loaded on startup, is populated with known DICOM tags. Otherwise, the
builtin dictionary stays empty. For more further information about
dictionary configuration read dcmdata/docs/datadict.txt.
builtin dictionary stays empty. For further information about dictionary
configuration read dcmdata/docs/datadict.txt.
ENABLE_EXTERNAL_DICTIONARY
Affected: dcmdata
Type of modification: Enables feature
Explanation: DCMTK is able to load DICOM data dictionaries from files at
application start (before the main function is called). These files
are either specified by the DCMDICTPATH environment variable or the
default files are used. This flag enables the loading of external
dictionaries from file at application start. Disabling it might be useful
when only the builtin dictionary should be used. However, if no
dictionary gets loaded, this is likely to cause unexpected behavior.
Even if this flag is disabled, the reloadDictionaries() method can be
used to load the external dictionaries after application start.
However, the environment variable DCMDICTPATH has to point to one or more
related dictionary files in that case, since if ENABLE_EXTERNAL_DICTIONARY
is disabled, no default dictionary path is set within the DCMTK code.
On Unix-like systems this flag is enabled by default while on Windows it is
disabled. For more information about dictionary configuration read
dcmdata/docs/datadict.txt.
Note that in former versions of DCMTK a macro called
DONT_LOAD_EXTERNAL_DICTIONARIES has been specified which now has been
replaced with ENABLE_EXTERNAL_DICTIONARY in order to be consistent with
the existing Autoconf and CMake configuration switches. See also entry for
DONT_LOAD_EXTERNAL_DICTIONARIES.
EXPERIMENTAL_READ_FROM_FILE
Affected: dump2dcm
......