changeset 174:db6cc80efed0

sync
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 17 Apr 2018 14:26:18 +0200 (2018-04-17)
parents 01c650c5aa18
children 4ecd23ad4169
files CMakeLists.txt Resources/Orthanc/DownloadOrthancFramework.cmake
diffstat 2 files changed, 35 insertions(+), 42 deletions(-) [+]
line wrap: on
line diff
--- a/CMakeLists.txt	Mon Apr 16 21:31:34 2018 +0200
+++ b/CMakeLists.txt	Tue Apr 17 14:26:18 2018 +0200
@@ -46,6 +46,7 @@
 
 
 # Initialize the Orthanc framework
+set(ORTHANC_FRAMEWORK_PLUGIN ON)
 include(${ORTHANC_ROOT}/Resources/CMake/OrthancFrameworkParameters.cmake)
 
 set(ENABLE_LOCALE OFF)         # Disable support for locales (notably in Boost)
--- a/Resources/Orthanc/DownloadOrthancFramework.cmake	Mon Apr 16 21:31:34 2018 +0200
+++ b/Resources/Orthanc/DownloadOrthancFramework.cmake	Tue Apr 17 14:26:18 2018 +0200
@@ -43,21 +43,12 @@
 endif()
 
 
-if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "hg" OR
-    ORTHANC_FRAMEWORK_SOURCE STREQUAL "web")
-  if (NOT STATIC_BUILD AND
-      NOT ALLOW_DOWNLOADS)
-    message(FATAL_ERROR "CMake is not allowed to download from Internet. Please set the ALLOW_DOWNLOADS option to ON")
-  endif()
-endif()
-
-
-
 ##
 ## Detection of the requested version
 ##
 
 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 +56,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 +79,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 +138,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})
@@ -153,8 +151,12 @@
 ##
 
 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "hg")
+  if (NOT STATIC_BUILD AND NOT ALLOW_DOWNLOADS)
+    message(FATAL_ERROR "CMake is not allowed to download from Internet. Please set the ALLOW_DOWNLOADS option to ON")
+  endif()
+
   set(ORTHANC_ROOT ${CMAKE_BINARY_DIR}/orthanc)
-  
+
   if (NOT EXISTS ${ORTHANC_ROOT})
     message("Forking the Orthanc source repository using Mercurial")
 
@@ -193,20 +195,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 +207,14 @@
   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}")
+    if (NOT STATIC_BUILD AND NOT ALLOW_DOWNLOADS)
+      message(FATAL_ERROR "CMake is not allowed to download from Internet. Please set the ALLOW_DOWNLOADS option to ON")
+    endif()
+
+    message("Downloading: ${ORTHANC_FRAMEWORK_ARCHIVE}")
 
     file(DOWNLOAD
       "${ORTHANC_FRAMEWORK_URL}" "${ORTHANC_FRAMEWORK_ARCHIVE}" 
@@ -237,12 +223,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 +239,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 +261,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