X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FCMakeLists.txt;h=9e7065a497aad21c277684d22ed4d50ebc38b032;hb=224876ca6cbe71952f2a1d66d9853eca7745d3a0;hp=4db41ba88294a9fc98c0664f08c95b310e534a75;hpb=c39f297e72c88102e076720cd70e39fde56c34f7;p=gdcm.git diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4db41ba8..9e7065a4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,102 +1,121 @@ -#----------------------------------------------------------------------------- -# Build jpeg lib first: -SUBDIRS(jpeg) - -# "jpeglib.h" is defined here: -INCLUDE_DIRECTORIES( - ${GDCM_SOURCE_DIR}/src/jpeg/libijg8 - #${GDCM_SOURCE_DIR}/jpeg/libijg12 #all files have been renamed, appending 12 - #${GDCM_SOURCE_DIR}/jpeg/ljpg # JPEG lib from xmedcom -) - -SET(libgdcm_la_SOURCES - gdcmDicomDir.cxx - gdcmDicomDirElement.cxx - gdcmDict.cxx - gdcmDictEntry.cxx - gdcmDictSet.cxx - gdcmDirList.cxx - gdcmException.cxx - gdcmFile.cxx - gdcmHeader.cxx - gdcmHeaderEntry.cxx - gdcmHeaderHelper.cxx - gdcmImage.cxx - gdcmMeta.cxx - gdcmJpeg12.cxx - gdcmJpeg2000.cxx - gdcmJpeg.cxx - gdcmObject.cxx - gdcmParsePixels.cxx - gdcmParser.cxx - gdcmPatient.cxx - gdcmRLE.cxx - gdcmSerie.cxx - gdcmStudy.cxx - gdcmTS.cxx - gdcmUtil.cxx - gdcmVR.cxx -) -#----------------------------------------------------------------------------- -# Why one should not use ADD_DEFINITIONS -# http://www.cmake.org/pipermail/cmake/2003-September/004286.html - -#----------------------------------------------------------------------------- -# __STDC_LIMIT_MACROS -> Refer to stdint.h -# http://www.cmake.org/pipermail/cmake/2003-October/004369.html -# http://www.cmake.org/pipermail/cmake/2003-October/004373.html - -SET(GDCM_COMPILE_FLAGS - "-D__STDC_LIMIT_MACROS -DPUB_DICT_PATH=\\\"${CMAKE_INSTALL_PREFIX}${GDCM_DATA_DIR}\\\"" - ) - -# SunOS + old gcc fixes: - -INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityCXX.cmake) -IF(CMAKE_NO_ANSI_STRING_STREAM) -SET(GDCM_COMPILE_FLAGS - "${GDCM_COMPILE_FLAGS} -DGDCM_NO_ANSI_STRING_STREAM" - ) -ENDIF(CMAKE_NO_ANSI_STRING_STREAM) - -#INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityC.cmake) -#INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake) - -INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake) -CHECK_INCLUDE_FILE("stdint.h" CMAKE_HAVE_STDINT_H) - -#MESSAGE(STATUS ${CMAKE_NO_ANSI_STRING_STREAM}) -IF(NOT CMAKE_HAVE_STDINT_H) -SET(GDCM_COMPILE_FLAGS - "${GDCM_COMPILE_FLAGS} -DHAVE_NO_STDINT_H" - ) -ENDIF(NOT CMAKE_HAVE_STDINT_H) - -SET_SOURCE_FILES_PROPERTIES(${libgdcm_la_SOURCES} - PROPERTIES - COMPILE_FLAGS ${GDCM_COMPILE_FLAGS} -) - -ADD_LIBRARY(gdcm ${libgdcm_la_SOURCES} ) -IF(UNIX) - TARGET_LINK_LIBRARIES(gdcm - gdcmijpeg8 - gdcmijpeg12 - gdcmljpeg # JPEG lib from xmedcom - ) -ELSE(UNIX) - TARGET_LINK_LIBRARIES(gdcm - gdcmijpeg8 - gdcmijpeg12 - gdcmljpeg - Wsock32.lib #doesn't exist on cygwin - ) -ENDIF(UNIX) - -#The following is not working because when a header file is not found it tries -#to find one in the binary dir -#INSTALL_FILES(/include .h ${libgdcm_la_SOURCES}) -#INSTALL_FILES(/include FILES gdcmIdo.h iddcmjpeg.h) -INSTALL_FILES(/include "\\.h$") - -INSTALL_TARGETS(/lib/ gdcm) +#----------------------------------------------------------------------------- +# 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) +