浏览代码

Check for local web client before downloading

When packaging for Ubuntu on Launchpad it's not allowed to download external resources as part of the build process. I believe this is true for other build systems too, but not 100% sure. This change would check the src folder for the appropriate version of the web client and if it's not there it would be downloaded just as before.

Plex-CLA-1.0-signed-off-by: Niclas Berglind <nb@kjam.se>
Niclas Berglind 9 年之前
父节点
当前提交
d7fa05f5fb
共有 1 个文件被更改,包括 17 次插入7 次删除
  1. 17 7
      CMakeModules/WebClientResources.cmake

+ 17 - 7
CMakeModules/WebClientResources.cmake

@@ -8,13 +8,23 @@ if(NOT SKIP_WEB_CLIENT)
 
   message(STATUS "web-client version: ${WEB_CLIENT_VERSION}")
 
-  file(
-    DOWNLOAD ${WEB_CLIENT_URL} ${CMAKE_CURRENT_BINARY_DIR}/${WEB_CLIENT_CPP}.tbz2
-    EXPECTED_HASH SHA1=${WEB_CLIENT_HASH}
-    TIMEOUT 100
-    SHOW_PROGRESS
-    TLS_VERIFY ON
-  )
+  set(LOCAL_WEB_CLIENT false)
+  if(EXISTS "${CMAKE_CURRENT_BINARY_DIR}/${WEB_CLIENT_CPP}.tbz2")
+    file(SHA1 "${CMAKE_CURRENT_BINARY_DIR}/${WEB_CLIENT_CPP}.tbz2" EXISTING_HASH)
+    if("${EXISTING_HASH}" STREQUAL "${WEB_CLIENT_HASH}")
+        set(LOCAL_WEB_CLIENT true)
+    endif("${EXISTING_HASH}" STREQUAL "${WEB_CLIENT_HASH}")
+  endif(EXISTS "${CMAKE_CURRENT_BINARY_DIR}/${WEB_CLIENT_CPP}.tbz2")
+
+  if(NOT LOCAL_WEB_CLIENT)
+    file(
+      DOWNLOAD ${WEB_CLIENT_URL} ${CMAKE_CURRENT_BINARY_DIR}/${WEB_CLIENT_CPP}.tbz2
+      EXPECTED_HASH SHA1=${WEB_CLIENT_HASH}
+      TIMEOUT 100
+      SHOW_PROGRESS
+      TLS_VERIFY ON
+    )
+  endif(NOT LOCAL_WEB_CLIENT)
 
   add_custom_command(
     OUTPUT ${WEB_CLIENT_CPP}