Back to home page

EIC code displayed by LXR

 
 

    


Warning, /geant4/examples/extended/medical/DICOM/cmake/DownloadDICOMData.cmake is written in an unsupported language. File is not indexed.

0001 # Script to download DICOM_HEAD data for DICOM example
0002 # called from the DICOM example CMakeLists.txt
0003 #
0004 # The script will download the G4DICOM.1.0.tar.gz from the Geant4 Download site
0005 # and unpack it in the example build directory.
0006 # An error is issued if the download or unpack operation fails.
0007 #
0008 # Inspired by test65/DownloadLENDData.cmake
0009 
0010 set(DICOMDATA_FILENAME "G4DICOM.1.1.tar.gz")
0011 set(DICOMDATA_WORKING_DIR "${CMAKE_CURRENT_BINARY_DIR}")
0012 set(DICOMDATA_LOCAL_FILENAME "${DICOMDATA_WORKING_DIR}/${DICOMDATA_FILENAME}")
0013 set(DICOMDATA_LOCAL_ROOTDIR "${DICOMDATA_WORKING_DIR}/DICOM1.1")
0014 set(DICOMDATA_INSTALL_DIR "${Geant4_DATASET_G4ENSDFSTATE_PATH}")
0015 get_filename_component(DICOMDATA_INSTALL_DIR "${DICOMDATA_INSTALL_DIR}" PATH)
0016 
0017 # The Geant4 Download site
0018 set(DICOM_DATA_URL "http://cern.ch/geant4/support/source/${DICOMDATA_FILENAME}")
0019 message(STATUS "DICOM_DATA_URL ${DICOM_DATA_URL}")
0020 
0021 # Return if data directory is already present
0022 set(DICOMDATA_NEEDS_DOWNLOAD TRUE)
0023 if (EXISTS "${DICOMDATA_LOCAL_ROOTDIR}")
0024   message(STATUS "DICOM example: DICOM_HEAD data found, skipping download")
0025   message(STATUS "Installing '${DICOMDATA_LOCAL_ROOTDIR}' to '${DICOMDATA_INSTALL_DIR}'...")
0026 
0027   install(DIRECTORY ${DICOMDATA_LOCAL_ROOTDIR} DESTINATION ${DICOMDATA_INSTALL_DIR})
0028   return()
0029 endif()
0030 
0031 # Download tar file
0032 message(STATUS "DICOM example: DICOM_HEAD data not found, going to download")
0033 file(DOWNLOAD "${DICOM_DATA_URL}" "${DICOMDATA_LOCAL_FILENAME}"
0034   SHOW_PROGRESS
0035   INACTIVITY_TIMEOUT 1200
0036   TIMEOUT 3000
0037   STATUS DownloadStatus
0038 )
0039 if(DownloadReturnStatus)
0040   message(ERROR  "DICOM example: download data FAILED: ${DownloadReturnStatus}, ${DownloadStringReturnStatus}")
0041   return()
0042 else()
0043   message(STATUS "DICOM example: download data OK")
0044 endif()
0045 
0046 # Unpack downloaded tarball
0047 message(STATUS "Going to unpack: ${DICOMDATA_LOCAL_FILENAME}")
0048 execute_process(
0049   COMMAND ${CMAKE_COMMAND} -E tar xfz "${DICOMDATA_LOCAL_FILENAME}"
0050   WORKING_DIRECTORY ${DICOMDATA_WORKING_DIR}
0051   OUTPUT_QUIET
0052   RESULT_VARIABLE __dicomdata_untar_result
0053 )
0054 
0055 if(__dicomdata_untar_result)
0056   message(ERROR  "DICOM example: failed to untar file: ${DICOMDATA_LOCAL_FILENAME}")
0057 else()
0058   message(STATUS "DICOM example: untarred '${DICOMDATA_LOCAL_FILENAME}' OK")
0059 endif()
0060 
0061 message(STATUS "Installing '${DICOMDATA_LOCAL_ROOTDIR}' to '${DICOMDATA_INSTALL_DIR}'...")
0062 
0063 install(DIRECTORY ${DICOMDATA_LOCAL_ROOTDIR} DESTINATION ${DICOMDATA_INSTALL_DIR})