Mercurial > hg > orthanc
comparison Resources/CMake/DownloadPackage.cmake @ 603:49945044b06d
check the presence of external software in CMake
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 15 Oct 2013 16:23:42 +0200 |
parents | 27d32fc6209a |
children | d775a3cb5a06 |
comparison
equal
deleted
inserted
replaced
602:d5043ff68d58 | 603:49945044b06d |
---|---|
6 macro(GetUrlExtension TargetVariable Url) | 6 macro(GetUrlExtension TargetVariable Url) |
7 #string(REGEX REPLACE "^.*/[^.]*\\." "" TMP "${Url}") | 7 #string(REGEX REPLACE "^.*/[^.]*\\." "" TMP "${Url}") |
8 string(REGEX REPLACE "^.*\\." "" TMP "${Url}") | 8 string(REGEX REPLACE "^.*\\." "" TMP "${Url}") |
9 string(TOLOWER "${TMP}" "${TargetVariable}") | 9 string(TOLOWER "${TMP}" "${TargetVariable}") |
10 endmacro() | 10 endmacro() |
11 | |
12 | |
13 ## | |
14 ## Check the existence of the required decompression tools | |
15 ## | |
16 | |
17 if ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows") | |
18 find_program(ZIP_EXECUTABLE 7z PATHS "$ENV{ProgramFiles}/7-Zip") | |
19 if (${ZIP_EXECUTABLE} MATCHES "ZIP_EXECUTABLE-NOTFOUND") | |
20 message(FATAL_ERROR "Please install the '7-zip' software (http://www.7-zip.org/)") | |
21 endif() | |
22 | |
23 else() | |
24 find_program(UNZIP_EXECUTABLE unzip) | |
25 if (${UNZIP_EXECUTABLE} MATCHES "UNZIP_EXECUTABLE-NOTFOUND") | |
26 message(FATAL_ERROR "Please install the 'unzip' package") | |
27 endif() | |
28 | |
29 find_program(TAR_EXECUTABLE tar) | |
30 if (${TAR_EXECUTABLE} MATCHES "TAR_EXECUTABLE-NOTFOUND") | |
31 message(FATAL_ERROR "Please install the 'tar' package") | |
32 endif() | |
33 endif() | |
11 | 34 |
12 | 35 |
13 macro(DownloadPackage MD5 Url TargetDirectory) | 36 macro(DownloadPackage MD5 Url TargetDirectory) |
14 if (NOT IS_DIRECTORY "${TargetDirectory}") | 37 if (NOT IS_DIRECTORY "${TargetDirectory}") |
15 GetUrlFilename(TMP_FILENAME "${Url}") | 38 GetUrlFilename(TMP_FILENAME "${Url}") |
27 message("Uncompressing ${TMP_FILENAME}") | 50 message("Uncompressing ${TMP_FILENAME}") |
28 | 51 |
29 if ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows") | 52 if ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows") |
30 # How to silently extract files using 7-zip | 53 # How to silently extract files using 7-zip |
31 # http://superuser.com/questions/331148/7zip-command-line-extract-silently-quietly | 54 # http://superuser.com/questions/331148/7zip-command-line-extract-silently-quietly |
32 | |
33 FIND_PROGRAM(ZIP_EXECUTABLE 7z PATHS "$ENV{ProgramFiles}/7-Zip") | |
34 | 55 |
35 if (("${TMP_EXTENSION}" STREQUAL "gz") OR ("${TMP_EXTENSION}" STREQUAL "tgz")) | 56 if (("${TMP_EXTENSION}" STREQUAL "gz") OR ("${TMP_EXTENSION}" STREQUAL "tgz")) |
36 execute_process( | 57 execute_process( |
37 COMMAND ${ZIP_EXECUTABLE} e -y ${TMP_PATH} | 58 COMMAND ${ZIP_EXECUTABLE} e -y ${TMP_PATH} |
38 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} | 59 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} |
68 endif() | 89 endif() |
69 | 90 |
70 else() | 91 else() |
71 if ("${TMP_EXTENSION}" STREQUAL "zip") | 92 if ("${TMP_EXTENSION}" STREQUAL "zip") |
72 execute_process( | 93 execute_process( |
73 COMMAND sh -c "unzip -q ${TMP_PATH}" | 94 COMMAND sh -c "${UNZIP_EXECUTABLE} -q ${TMP_PATH}" |
74 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} | 95 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} |
75 RESULT_VARIABLE Failure | 96 RESULT_VARIABLE Failure |
76 ) | 97 ) |
77 elseif (("${TMP_EXTENSION}" STREQUAL "gz") OR ("${TMP_EXTENSION}" STREQUAL "tgz")) | 98 elseif (("${TMP_EXTENSION}" STREQUAL "gz") OR ("${TMP_EXTENSION}" STREQUAL "tgz")) |
78 #message("tar xvfz ${TMP_PATH}") | 99 #message("tar xvfz ${TMP_PATH}") |
79 execute_process( | 100 execute_process( |
80 COMMAND sh -c "tar xfz ${TMP_PATH}" | 101 COMMAND sh -c "${TAR_EXECUTABLE} xfz ${TMP_PATH}" |
81 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} | 102 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} |
82 RESULT_VARIABLE Failure | 103 RESULT_VARIABLE Failure |
83 ) | 104 ) |
84 elseif ("${TMP_EXTENSION}" STREQUAL "bz2") | 105 elseif ("${TMP_EXTENSION}" STREQUAL "bz2") |
85 execute_process( | 106 execute_process( |
86 COMMAND sh -c "tar xfj ${TMP_PATH}" | 107 COMMAND sh -c "${TAR_EXECUTABLE} xfj ${TMP_PATH}" |
87 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} | 108 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} |
88 RESULT_VARIABLE Failure | 109 RESULT_VARIABLE Failure |
89 ) | 110 ) |
90 else() | 111 else() |
91 message(FATAL_ERROR "Unknown package format.") | 112 message(FATAL_ERROR "Unknown package format.") |