# HG changeset patch # User Sebastien Jodogne # Date 1523957271 -7200 # Node ID e7f86a9f0f79111c581b8b3c2f412ace1dd1dc84 # Parent c35202c8c0db124d7286a051bf3607603a7eb0d7 improvements diff -r c35202c8c0db -r e7f86a9f0f79 Resources/DownloadOrthancFramework.cmake --- a/Resources/DownloadOrthancFramework.cmake Mon Apr 16 17:07:37 2018 +0200 +++ b/Resources/DownloadOrthancFramework.cmake Tue Apr 17 11:27:51 2018 +0200 @@ -58,6 +58,7 @@ ## if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "hg" OR + ORTHANC_FRAMEWORK_SOURCE STREQUAL "archive" OR ORTHANC_FRAMEWORK_SOURCE STREQUAL "web") if (NOT DEFINED ORTHANC_FRAMEWORK_VERSION) message(FATAL_ERROR "The variable ORTHANC_FRAMEWORK_VERSION must be set") @@ -65,10 +66,13 @@ if (DEFINED ORTHANC_FRAMEWORK_MAJOR OR DEFINED ORTHANC_FRAMEWORK_MINOR OR - DEFINED ORTHANC_FRAMEWORK_REVISION) + DEFINED ORTHANC_FRAMEWORK_REVISION OR + DEFINED ORTHANC_FRAMEWORK_MD5) message(FATAL_ERROR "Some internal variable has been set") endif() + set(ORTHANC_FRAMEWORK_MD5 "") + if (ORTHANC_FRAMEWORK_VERSION STREQUAL "mainline") set(ORTHANC_FRAMEWORK_BRANCH "default") @@ -85,6 +89,10 @@ NOT ORTHANC_FRAMEWORK_REVISION MATCHES "^[0-9]+$") message("Bad version of the Orthanc framework: ${ORTHANC_FRAMEWORK_VERSION}") endif() + + if (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.3.1") + set(ORTHANC_FRAMEWORK_MD5 "dac95bd6cf86fb19deaf4e612961f378") + endif() endif() endif() @@ -140,7 +148,7 @@ endif() if (NOT EXISTS ${ORTHANC_FRAMEWORK_ROOT}/Resources/CMake/OrthancFrameworkParameters.cmake) - message(FATAL_ERROR "Directory not containing a version of Orthanc: ${ORTHANC_FRAMEWORK_ROOT}") + message(FATAL_ERROR "Directory not containing the source code of Orthanc: ${ORTHANC_FRAMEWORK_ROOT}") endif() set(ORTHANC_ROOT ${ORTHANC_FRAMEWORK_ROOT}) @@ -193,20 +201,6 @@ if (NOT DEFINED ORTHANC_FRAMEWORK_ARCHIVE) message(FATAL_ERROR "The variable ORTHANC_FRAMEWORK_ARCHIVE must provide the path to the sources of Orthanc") endif() - - set(RE "^.*/Orthanc-([0-9]+)\\.([0-9]+)\\.([0-9]+).tar.gz$") - string(REGEX REPLACE ${RE} "\\1" ORTHANC_FRAMEWORK_MAJOR ${ORTHANC_FRAMEWORK_ARCHIVE}) - string(REGEX REPLACE ${RE} "\\2" ORTHANC_FRAMEWORK_MINOR ${ORTHANC_FRAMEWORK_ARCHIVE}) - string(REGEX REPLACE ${RE} "\\3" ORTHANC_FRAMEWORK_REVISION ${ORTHANC_FRAMEWORK_ARCHIVE}) - - if (NOT ORTHANC_FRAMEWORK_MAJOR MATCHES "^[0-9]+$" OR - NOT ORTHANC_FRAMEWORK_MINOR MATCHES "^[0-9]+$" OR - NOT ORTHANC_FRAMEWORK_REVISION MATCHES "^[0-9]+$") - message("Cannot detect the version of this release of Orthanc: ${ORTHANC_FRAMEWORK_ARCHIVE}") - endif() - - set(ORTHANC_FRAMEWORK_VERSION ${ORTHANC_FRAMEWORK_MAJOR}.${ORTHANC_FRAMEWORK_MINOR}.${ORTHANC_FRAMEWORK_REVISION}) - message("Detected version of Orthanc: ${ORTHANC_FRAMEWORK_VERSION}") endif() @@ -219,16 +213,10 @@ set(ORTHANC_FRAMEMORK_FILENAME Orthanc-${ORTHANC_FRAMEWORK_VERSION}.tar.gz) set(ORTHANC_FRAMEWORK_URL "https://www.orthanc-server.com/downloads/get.php?path=/orthanc/${ORTHANC_FRAMEMORK_FILENAME}") - if (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.3.1") - set(ORTHANC_FRAMEWORK_MD5 "dac95bd6cf86fb19deaf4e612961f378") - else() - message(FATAL_ERROR "Unknown release of Orthanc: ${ORTHANC_FRAMEWORK_VERSION}") - endif() - set(ORTHANC_FRAMEWORK_ARCHIVE "${CMAKE_SOURCE_DIR}/ThirdPartyDownloads/${ORTHANC_FRAMEMORK_FILENAME}") if (NOT EXISTS "${ORTHANC_FRAMEWORK_ARCHIVE}") - message("Downloading ${ORTHANC_FRAMEWORK_ARCHIVE}") + message("Downloading: ${ORTHANC_FRAMEWORK_ARCHIVE}") file(DOWNLOAD "${ORTHANC_FRAMEWORK_URL}" "${ORTHANC_FRAMEWORK_ARCHIVE}" @@ -237,12 +225,7 @@ INACTIVITY_TIMEOUT 60 ) else() - message("Using local copy of ${ORTHANC_FRAMEWORK_URL}") - - file(MD5 ${ORTHANC_FRAMEWORK_ARCHIVE} ActualMD5) - if (NOT "${ActualMD5}" STREQUAL "${ORTHANC_FRAMEWORK_MD5}") - message(FATAL_ERROR "The MD5 hash of a previously download file is invalid: ${ORTHANC_FRAMEWORK_ARCHIVE}") - endif() + message("Using local copy of: ${ORTHANC_FRAMEWORK_URL}") endif() endif() @@ -258,10 +241,21 @@ ORTHANC_FRAMEWORK_SOURCE STREQUAL "web") if (NOT DEFINED ORTHANC_FRAMEWORK_ARCHIVE OR - NOT DEFINED ORTHANC_FRAMEWORK_VERSION) + NOT DEFINED ORTHANC_FRAMEWORK_VERSION OR + NOT DEFINED ORTHANC_FRAMEWORK_MD5) message(FATAL_ERROR "Internal error") endif() + if (ORTHANC_FRAMEWORK_MD5 STREQUAL "") + message(FATAL_ERROR "Unknown release of Orthanc: ${ORTHANC_FRAMEWORK_VERSION}") + endif() + + file(MD5 ${ORTHANC_FRAMEWORK_ARCHIVE} ActualMD5) + + if (NOT "${ActualMD5}" STREQUAL "${ORTHANC_FRAMEWORK_MD5}") + message(FATAL_ERROR "The MD5 hash of the Orthanc archive is invalid: ${ORTHANC_FRAMEWORK_ARCHIVE}") + endif() + set(ORTHANC_ROOT "${CMAKE_BINARY_DIR}/Orthanc-${ORTHANC_FRAMEWORK_VERSION}") if (NOT IS_DIRECTORY "${ORTHANC_ROOT}") @@ -269,7 +263,7 @@ message(FATAL_ERROR "Archive should have the \".tar.gz\" extension: ${ORTHANC_FRAMEWORK_ARCHIVE}") endif() - message("Uncompressing ${ORTHANC_FRAMEWORK_ARCHIVE}") + message("Uncompressing: ${ORTHANC_FRAMEWORK_ARCHIVE}") if ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows") # How to silently extract files using 7-zip