From 46eff1ccb06f775bc3662d87de4980e758fa556e Mon Sep 17 00:00:00 2001 From: shxyke Date: Sun, 11 Dec 2022 01:24:37 +0000 Subject: [PATCH] feat: Add checksums for download libs --- cmake/fastdeploy.cmake | 8 ++++++-- cmake/opencv.cmake | 8 ++++++-- cmake/utils.cmake | 9 ++++++--- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/cmake/fastdeploy.cmake b/cmake/fastdeploy.cmake index bfe5414bcd..0c1ce0ffe2 100644 --- a/cmake/fastdeploy.cmake +++ b/cmake/fastdeploy.cmake @@ -8,10 +8,13 @@ set(COMPRESSED_SUFFIX ".tar.gz") if(UNIX) set(FASTDEPLOY_FILENAME "FastDeploy-Linux") + set(FASTDEPLOY_CHECKSUM "5e1dedc72714f6f11fb1dfbc720d675203525152b777bd2711ba26f2a95e5f99") elseif(WIN32) set(FASTDEPLOY_FILENAME "FastDeploy-Windows") + set(FASTDEPLOY_CHECKSUM "0ea6064921a0af50ba8a1593fe1652a11379acad53f15e100731f02c3c9edfd1") elseif(APPLE) set(FASTDEPLOY_FILENAME "FastDeploy-macOS") + set(FASTDEPLOY_CHECKSUM "80188fb70c5632ba5b93338d5c6d323619430dcad77043250399dce8fb480d8d") endif(UNIX) set(FASTDEPLOY_URL ${FASTDEPLOY_URL_PREFIX}/${FASTDEPLOY_TAG}/${FASTDEPLOY_FILENAME}${COMPRESSED_SUFFIX}) @@ -22,8 +25,9 @@ if (FASTDEPLOY_DIRECTORY) include_directories(${FastDeploy_INCLUDE_DIRS}) list(APPEND DEPEND_LIBS ${FastDeploy_LIBS}) else () - download_and_decompress(${FASTDEPLOY_URL} - ${CMAKE_CURRENT_BINARY_DIR}/${FASTDEPLOY_FILENAME}${COMPRESSED_SUFFIX} + download_and_decompress(${FASTDEPLOY_URL} + ${CMAKE_CURRENT_BINARY_DIR}/${FASTDEPLOY_FILENAME}${COMPRESSED_SUFFIX} + ${FASTDEPLOY_CHECKSUM} ${THIRD_PARTY_PATH}/install/) set(FASTDEPLOY_FILENAME fastdeploy) set(FastDeploy_DIR ${THIRD_PARTY_PATH}/install/${FASTDEPLOY_FILENAME}) diff --git a/cmake/opencv.cmake b/cmake/opencv.cmake index b82a71f0b3..9e3069653c 100644 --- a/cmake/opencv.cmake +++ b/cmake/opencv.cmake @@ -8,10 +8,13 @@ set(COMPRESSED_SUFFIX ".tar.gz") if(UNIX) set(OPENCV_FILENAME "OpenCV-Linux") + set(OPENCV_CHECKSUM "ab41d96f64d8aada3c06584f88bcc5c94eab9f8a4c1a6fbe2e20d83d5509f1c3") elseif(WIN32) set(OPENCV_FILENAME "OpenCV-Windows") + set(OPENCV_CHECKSUM "92213f8615d5ca74bf6a8a3681abaac1f5981f9da6b5a1808759909329bb5ea2") elseif(APPLE) set(OPENCV_FILENAME "OpenCV-macOS") + set(OPENCV_CHECKSUM "44d6308696ee0b38d1ba40b8b16ee0cb1da4a0f9f72b6916afc5b18b99a9089e") endif(UNIX) set(OPENCV_URL ${OPENCV_URL_PREFIX}/${OPENCV_TAG}/${OPENCV_FILENAME}${COMPRESSED_SUFFIX}) @@ -22,8 +25,9 @@ if(OPENCV_DIRECTORY) include_directories(${OpenCV_INCLUDE_DIRS}) list(APPEND DEPEND_LIBS ${OpenCV_LIBS}) else() - download_and_decompress(${OPENCV_URL} - ${CMAKE_CURRENT_BINARY_DIR}/${OPENCV_FILENAME}${COMPRESSED_SUFFIX} + download_and_decompress(${OPENCV_URL} + ${CMAKE_CURRENT_BINARY_DIR}/${OPENCV_FILENAME}${COMPRESSED_SUFFIX} + ${OPENCV_CHECKSUM} ${THIRD_PARTY_PATH}/install/) set(OPENCV_FILENAME opencv) set(OpenCV_DIR ${THIRD_PARTY_PATH}/install/${OPENCV_FILENAME}) diff --git a/cmake/utils.cmake b/cmake/utils.cmake index 6cfdbd790e..349aa4f517 100644 --- a/cmake/utils.cmake +++ b/cmake/utils.cmake @@ -1,7 +1,10 @@ -function(download_and_decompress url filename decompress_dir) - if(NOT EXISTS ${filename}) +function(download_and_decompress url filename sha256_checksum decompress_dir) + if(EXISTS ${filename}) + file(SHA256 ${filename} CHECKSUM_VARIABLE) + endif() + if(NOT EXISTS ${filename} OR NOT CHECKSUM_VARIABLE STREQUAL sha256_checksum) message("Downloading file from ${url} to ${filename} ...") - file(DOWNLOAD ${url} "${filename}.tmp" SHOW_PROGRESS) + file(DOWNLOAD ${url} "${filename}.tmp" SHOW_PROGRESS EXPECTED_HASH SHA256=${sha256_checksum}) file(RENAME "${filename}.tmp" ${filename}) endif() if(NOT EXISTS ${decompress_dir})