X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=Testing%2FCMakeLists.txt;h=25eafebc17ff89b285a00ad65e5418ab2a8e40a7;hb=ba172c367ddfaa65b44f0fa05dffb8265a483ad8;hp=582adf522701b9371f07e7d98fdf4d86084c3be6;hpb=cb74bf157e806ec76db4b26140b31e2dbb4d3501;p=gdcm.git diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt index 582adf52..25eafebc 100644 --- a/Testing/CMakeLists.txt +++ b/Testing/CMakeLists.txt @@ -15,10 +15,12 @@ SET(TEST_SOURCES TestVR.cxx TestDictGroupName.cxx TestDict.cxx + TestDataEntry.cxx TestWriteSimple.cxx TestImageSet.cxx TestDicomDirElement.cxx TestDicomString.cxx + #TestValidate.cxx ) # add tests that require data @@ -26,6 +28,7 @@ IF (GDCM_DATA_ROOT) SET(TEST_SOURCES ${TEST_SOURCES} TestFileAccessors.cxx TestMakeIcon.cxx + TestLoadAllDocumentsNoPrivNoSeq.cxx # includes generated gdcmDataImages.h TestPrintAllDocument.cxx # includes generated gdcmDataImages.h #TestAllEntryVerify.cxx # includes generated gdcmDataImages.h TestAllReadCompareDicom.cxx # includes generated gdcmDataImages.h @@ -57,7 +60,7 @@ IF (GDCM_DATA_ROOT) INCLUDE(${VTK_USE_FILE}) INCLUDE_DIRECTORIES( - ${GDCM_SOURCE_DIR}/vtk/ + ${GDCM_SOURCE_DIR}/vtk ) SET(TEST_SOURCES ${TEST_SOURCES} VTKTestRead.cxx @@ -73,8 +76,8 @@ ENDIF (GDCM_DATA_ROOT) # include stuff INCLUDE_DIRECTORIES( - ${GDCM_SOURCE_DIR}/src/ - ${GDCM_BINARY_DIR}/ + ${GDCM_SOURCE_DIR}/src + ${GDCM_BINARY_DIR} ) CREATE_TEST_SOURCELIST(Tests gdcmTests.cxx ${TEST_SOURCES}) @@ -99,57 +102,15 @@ ENDFOREACH(file ${TEST_SOURCES}) # We need to test the reading of all dicom images in the gdcmData directory # First parse this directory and extract all images -IF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 1.9) - FILE(GLOB GDCM_DATA_IMAGES_GLOB - "${GDCM_DATA_ROOT}/*.acr" - "${GDCM_DATA_ROOT}/*.dcm" - "${GDCM_DATA_ROOT}/*.nema" - "${GDCM_DATA_ROOT}/*.ima" - ) - FILE(GLOB GDCM_DATA_SEQ_IMAGES_GLOB - "${GDCM_DATA_ROOT}/*FileSeq0.acr" - "${GDCM_DATA_ROOT}/*FileSeq0.dcm" - "${GDCM_DATA_ROOT}/*FileSeq0.nema" - "${GDCM_DATA_ROOT}/*FileSeq0.ima" - ) -ELSE(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 1.9) - # Since there is a bug in cmake 1.8.3, I'll have to do two separate globs - FILE(GLOB GDCM_DATA_IMAGES_GLOB_ACR - "${GDCM_DATA_ROOT}/*.acr" - ) - FILE(GLOB GDCM_DATA_IMAGES_GLOB_DCM - "${GDCM_DATA_ROOT}/*.dcm" - ) - FILE(GLOB GDCM_DATA_IMAGES_GLOB_NEMA - "${GDCM_DATA_ROOT}/*.nema" - ) - FILE(GLOB GDCM_DATA_IMAGES_GLOB_IMA - "${GDCM_DATA_ROOT}/*.ima" - ) - SET(GDCM_DATA_IMAGES_GLOB - ${GDCM_DATA_IMAGES_GLOB_DCM} ${GDCM_DATA_IMAGES_GLOB_ACR} - ${GDCM_DATA_IMAGES_GLOB_NEMA} ${GDCM_DATA_IMAGES_GLOB_IMA}) - - FILE(GLOB GDCM_DATA_SEQ_IMAGES_GLOB_ACR - "${GDCM_DATA_ROOT}/*FileSeq0.acr" - ) - FILE(GLOB GDCM_DATA_SEQ_IMAGES_GLOB_DCM - "${GDCM_DATA_ROOT}/*FileSeq0.dcm" - ) - FILE(GLOB GDCM_DATA_SEQ_IMAGES_GLOB_NEMA - "${GDCM_DATA_ROOT}/*FileSeq0.nema" - ) - FILE(GLOB GDCM_DATA_SEQ_IMAGES_GLOB_IMA - "${GDCM_DATA_ROOT}/*FileSeq0.ima" - ) - SET(GDCM_DATA_SEQ_IMAGES_GLOB - ${GDCM_DATA_SEQ_IMAGES_GLOB_DCM} ${GDCM_DATA_SEQ_IMAGES_GLOB_ACR} - ${GDCM_DATA_SEQ_IMAGES_GLOB_NEMA} ${GDCM_DATA_SEQ_IMAGES_GLOB_IMA}) -ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 1.9) +FILE(GLOB GDCM_DATA_IMAGES_GLOB + "${GDCM_DATA_ROOT}/*.acr" + "${GDCM_DATA_ROOT}/*.dcm" + "${GDCM_DATA_ROOT}/*.nema" + "${GDCM_DATA_ROOT}/*.ima" + ) # Black list of images known to break lots of readers (efilm, xmedcon ...): SET(BLACK_LIST - # Multiframe Papyrus format image # Just to remember this format exists, and is gdcm::File compliant # (NOT gdcm::FileHelper ...) @@ -170,6 +131,27 @@ SET(BLACK_LIST #I wait to be 100% sure before releasing them. JP "rle16sti.dcm" "rle16loo.dcm" + # Jasper cannot handle this image, only kakadu so far, unless you patch jasper + # but then it breaks other images... + "CT_Phillips_JPEG2K_Decompr_Problem.dcm" + # + # ------------ + # + # I probabely messed up smething with the .png, .tst of + # the images I recently added to the Test Suite + # I Black list them, until I find where is the pb. + "US-RGB-8-esopecho.dcm" + "MR_Philips_Intera_No_PrivateSequenceImplicitVR.dcm" + "MR_Philips_Intera_PrivateSequenceImplicitVR.dcm" + "MR_SIEMENS_forceLoad29-1010_29-1020.dcm" + # An element contains a value of 4, but no data follows + # So, the next (group, elem) is not correctly read + "gdcm-MR-PHILIPS-16-Multi-Seq.dcm" + ) + +# Create a specific list of dicom files that we know are part of a sequence +SET(SEQ_LIST + "SIEMENS_MAGNETOM-12-MONO2-FileSeq[0-9].dcm" ) # Add a special test that requires dciodvfy from dicom3tools @@ -177,6 +159,7 @@ INCLUDE(${GDCM_SOURCE_DIR}/CMake/FindDicom3Tools.cmake) # This is a GLOB expression, change it into a list separated with a comma and \n SET(GDCM_DATA_IMAGES) +SET(GDCM_DATA_SEQ_IMAGES) FOREACH(filename ${GDCM_DATA_IMAGES_GLOB}) GET_FILENAME_COMPONENT(filename_temp ${filename} NAME) IF(DCIODVFY_FOUND) @@ -186,17 +169,11 @@ FOREACH(filename ${GDCM_DATA_IMAGES_GLOB}) STRING(REGEX MATCH ${filename_temp} bad_dicom ${BLACK_LIST}) IF(NOT bad_dicom) SET(GDCM_DATA_IMAGES "${GDCM_DATA_IMAGES}\n\"${filename_temp}\",") - ENDIF(NOT bad_dicom) -ENDFOREACH(filename) - -SET(GDCM_DATA_SEQ_IMAGES) -FOREACH(filename ${GDCM_DATA_SEQ_IMAGES_GLOB}) - GET_FILENAME_COMPONENT(filename_temp ${filename} NAME) - STRING(REGEX MATCH ${filename_temp} bad_dicom ${BLACK_LIST}) - IF(NOT bad_dicom) - STRING(REGEX REPLACE "(.*)FileSeq0(.*)" "\\1FileSeq%d\\2" filename_temp2 ${filename_temp}) - - SET(GDCM_DATA_SEQ_IMAGES "${GDCM_DATA_SEQ_IMAGES}\n\"${filename_temp2}\",") + # SEQ_LIST is a regular expression: + STRING(REGEX MATCH ${SEQ_LIST} is_seq ${filename_temp}) + IF(is_seq) + SET(GDCM_DATA_SEQ_IMAGES "${GDCM_DATA_SEQ_IMAGES}\n\"${filename_temp}\",") + ENDIF(is_seq) ENDIF(NOT bad_dicom) ENDFOREACH(filename) @@ -209,3 +186,17 @@ FILE(WRITE "${GDCM_BINARY_DIR}/gdcmDataImages.h" FILE(WRITE "${GDCM_BINARY_DIR}/gdcmDataSeqImages.h" "const char * const gdcmDataSeqImages[] = { ${GDCM_DATA_SEQ_IMAGES}\n0 };\n" ) + +#----------------------------------------------------------------------------- +# Trying to solve a bizarre problem when loading shared lib if gdcm is static +# Therefore I disable the test when building SHAREDLIBS +IF(UNIX AND NOT GDCM_BUILD_SHARED_LIBS) + ADD_LIBRARY(dynmodule MODULE dynmodule.cxx) + TARGET_LINK_LIBRARIES(dynmodule gdcm) + ADD_EXECUTABLE(loadmodule loadmodule.cxx ) + TARGET_LINK_LIBRARIES(loadmodule gdcm -ldl) + ADD_TEST(loadmodule ${CXX_TEST_PATH}/loadmodule) +ENDIF(UNIX AND NOT GDCM_BUILD_SHARED_LIBS) + + +