-#-----------------------------------------------------------------------------\r
-# Build jpeg lib first:\r
-SUBDIRS(jpeg)\r
-\r
-# "jpeglib.h" is defined here:\r
-INCLUDE_DIRECTORIES(\r
- ${GDCM_SOURCE_DIR}/src/jpeg/libijg8\r
- #${GDCM_SOURCE_DIR}/jpeg/libijg12 #all files have been renamed, appending 12\r
- #${GDCM_SOURCE_DIR}/jpeg/ljpg # JPEG lib from xmedcom \r
-)\r
-\r
-SET(libgdcm_la_SOURCES\r
- gdcmException.cxx\r
- gdcmUtil.cxx\r
- gdcmHeader.cxx\r
- gdcmHeaderHelper.cxx\r
- gdcmElValue.cxx\r
- gdcmDictEntry.cxx\r
- gdcmDict.cxx\r
- gdcmDictSet.cxx\r
- gdcmElValSet.cxx\r
- gdcmHeaderIdo.cxx\r
- gdcmFile.cxx\r
- gdcmVR.cxx\r
- gdcmTS.cxx\r
- gdcmJpeg.cxx\r
- gdcmJpeg12.cxx\r
- gdcmJpeg2000.cxx\r
- gdcmRLE.cxx\r
- gdcmParse.cxx\r
-)\r
-#-----------------------------------------------------------------------------\r
-# Why one should not use ADD_DEFINITIONS\r
-# http://www.cmake.org/pipermail/cmake/2003-September/004286.html\r
-\r
-#-----------------------------------------------------------------------------\r
-# __STDC_LIMIT_MACROS -> Refer to stdint.h\r
-# http://www.cmake.org/pipermail/cmake/2003-October/004369.html\r
-# http://www.cmake.org/pipermail/cmake/2003-October/004373.html\r
-\r
-SET(GDCM_COMPILE_FLAGS\r
- "-D__STDC_LIMIT_MACROS -DPUB_DICT_PATH=\\\"${CMAKE_INSTALL_PREFIX}${GDCM_DATA_DIR}\\\""\r
- )\r
-\r
-# SunOS + old gcc fixes:\r
-\r
-INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityCXX.cmake)\r
-IF(CMAKE_NO_ANSI_STRING_STREAM)\r
-SET(GDCM_COMPILE_FLAGS\r
- "${GDCM_COMPILE_FLAGS} -DGDCM_NO_ANSI_STRING_STREAM"\r
- )\r
-ENDIF(CMAKE_NO_ANSI_STRING_STREAM)\r
-\r
-#INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityC.cmake)\r
-#INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)\r
-\r
-INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)\r
-CHECK_INCLUDE_FILE("stdint.h" CMAKE_HAVE_STDINT_H)\r
-\r
-#MESSAGE(STATUS ${CMAKE_NO_ANSI_STRING_STREAM})\r
-IF(NOT CMAKE_HAVE_STDINT_H)\r
-SET(GDCM_COMPILE_FLAGS\r
- "${GDCM_COMPILE_FLAGS} -DHAVE_NO_STDINT_H"\r
- )\r
-ENDIF(NOT CMAKE_HAVE_STDINT_H)\r
-\r
-SET_SOURCE_FILES_PROPERTIES(${libgdcm_la_SOURCES}\r
- PROPERTIES\r
- COMPILE_FLAGS ${GDCM_COMPILE_FLAGS}\r
-)\r
-\r
-ADD_LIBRARY(gdcm ${libgdcm_la_SOURCES} )\r
-IF(UNIX)\r
- TARGET_LINK_LIBRARIES(gdcm \r
- gdcmijpeg8 \r
- gdcmijpeg12\r
- gdcmljpeg # JPEG lib from xmedcom \r
- )\r
-ELSE(UNIX)\r
- TARGET_LINK_LIBRARIES(gdcm \r
- gdcmijpeg8 \r
- gdcmijpeg12\r
- gdcmljpeg\r
- Wsock32.lib #doesn't exist on cygwin\r
- )\r
-ENDIF(UNIX)\r
-\r
-#The following is not working because when a header file is not found it tries \r
-#to find one in the binary dir\r
-#INSTALL_FILES(/include .h ${libgdcm_la_SOURCES})\r
-#INSTALL_FILES(/include FILES gdcmIdo.h iddcmjpeg.h)\r
-INSTALL_FILES(/include "\\.h$")\r
-\r
-INSTALL_TARGETS(/lib/ gdcm)\r
+#-----------------------------------------------------------------------------
+# Rebuild gdcm whenever a file starting with gdcm* is modified
+INCLUDE_REGULAR_EXPRESSION("^gdcm.*$")
+
+SET(GDCM_LIBRARIES gdcm CACHE INTERNAL "libraries for GDCM")
+
+SET(OPJ_PREFIX gdcm)
+SUBDIRS(
+ gdcmjpeg
+ #gdcmmpeg2
+ #gdcmjpegls
+ gdcmopenjpeg
+ )
+
+# "jpeglib.h" is defined here:
+INCLUDE_DIRECTORIES(
+ ${GDCM_SOURCE_DIR}/src
+ ${GDCM_SOURCE_DIR}/src/gdcmmpeg2/src/mpeg2dec
+ ${GDCM_BINARY_DIR} #for gdcmConfigure.h
+ ${GDCM_BINARY_DIR}/src #for gdcmjpeg 8, 12 and 16
+ ${GDCM_SOURCE_DIR}/src/gdcmopenjpeg/libopenjpeg
+)
+
+SET(GDCM_SOURCES
+ gdcmArgMgr.cxx
+ gdcmBase.cxx
+ gdcmCallbackCommand.cxx
+ gdcmCommand.cxx
+ gdcmCommandManager.cxx
+ gdcmDataEntry.cxx
+ gdcmDebug.cxx
+ gdcmDicomDir.cxx
+ gdcmDicomDirElement.cxx
+ gdcmDicomDirImage.cxx
+ gdcmDicomDirPrivate.cxx
+ gdcmDicomDirMeta.cxx
+ gdcmDicomDirObject.cxx
+ gdcmDicomDirPatient.cxx
+ gdcmDicomDirVisit.cxx
+ gdcmDicomDirSerie.cxx
+ gdcmDicomDirStudy.cxx
+ gdcmDict.cxx
+ gdcmDictEntry.cxx
+ gdcmDictGroupName.cxx
+ gdcmDictSet.cxx
+ gdcmDirList.cxx
+ gdcmDocEntry.cxx
+ gdcmDocEntryArchive.cxx
+ gdcmDocEntrySet.cxx
+ gdcmDocument.cxx
+ gdcmElementSet.cxx
+ gdcmException.cxx
+ gdcmFile.cxx
+ gdcmFileHelper.cxx
+ gdcmGlobal.cxx
+ gdcmJPEGFragment.cxx
+ gdcmJPEGFragmentsInfo.cxx
+ gdcmJpeg8.cxx
+ gdcmJpeg12.cxx
+ gdcmJpeg16.cxx
+ gdcmJpeg2000.cxx
+ #gdcmMpeg.cxx
+ gdcmOrientation.cxx
+ gdcmPixelReadConvert.cxx
+ gdcmPixelWriteConvert.cxx
+ gdcmRefCounter.cxx
+ gdcmRLEFrame.cxx
+ gdcmRLEFramesInfo.cxx
+ gdcmSeqEntry.cxx
+ gdcmSerieHelper.cxx
+ gdcmSQItem.cxx
+ gdcmTS.cxx
+ gdcmUtil.cxx
+ gdcmValidator.cxx
+ gdcmVR.cxx
+ ${GDCM_BINARY_DIR}/src/gdcmDefaultDicts.cxx
+ )
+
+# Since OpenJPEG does not used configured headers we have to
+# do the -D alternative
+IF(NOT BUILD_SHARED_LIBS)
+ SET_SOURCE_FILES_PROPERTIES(
+ ${GDCM_SOURCE_DIR}/src/gdcmJpeg2000.cxx
+ COMPILE_FLAGS -DOPJ_STATIC)
+ENDIF(NOT BUILD_SHARED_LIBS)
+
+ADD_LIBRARY(gdcm ${GDCM_SOURCES})
+TARGET_LINK_LIBRARIES(gdcm
+ gdcmjpeg8
+ gdcmjpeg12
+ gdcmjpeg16
+ #gdcmmpeg2
+ gdcmopenjpeg
+)
+IF(WIN32)
+ IF(NOT BORLAND)
+ TARGET_LINK_LIBRARIES(gdcm wsock32 snmpapi)
+ ENDIF(NOT BORLAND)
+ENDIF(WIN32)
+
+# Need nsl to resolve gethostbyname on SunOS-5.8
+# and socket also
+IF(CMAKE_SYSTEM MATCHES "SunOS.*")
+ TARGET_LINK_LIBRARIES(gdcm socket nsl)
+ENDIF(CMAKE_SYSTEM MATCHES "SunOS.*")
+
+IF(NOT GDCM_INSTALL_NO_DEVELOPMENT)
+ # Install header file used to construct the lib
+ #INSTALL_FILES(
+ # ${GDCM_INSTALL_INCLUDE_DIR} .h ${GDCM_SOURCES})
+ INSTALL_FILES(${GDCM_INSTALL_INCLUDE_DIR} "\\.h$")
+ENDIF(NOT GDCM_INSTALL_NO_DEVELOPMENT)
+
+IF(NOT GDCM_INSTALL_NO_LIBRARIES)
+ #Install the target itself
+ INSTALL_TARGETS(
+ ${GDCM_INSTALL_LIB_DIR}
+ RUNTIME_DIRECTORY ${GDCM_INSTALL_BIN_DIR}
+ ${GDCM_LIBRARIES})
+ENDIF(NOT GDCM_INSTALL_NO_LIBRARIES)
+