1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- set(DEP_DIR ${CMAKE_BINARY_DIR}/dependencies)
- if(APPLE)
- set(OS "darwin")
- elseif(WIN32)
- set(OS "windows")
- elseif(UNIX)
- set(OS "linux")
- endif()
- set(ARCHSTR "${OS}-x86_64")
- function(download_deps depname dirpath)
- file(MAKE_DIRECTORY ${DEP_DIR})
- message(STATUS "Downloading ${depname}.hash.txt...")
- file(
- DOWNLOAD "https://nightlies.plex.tv/directdl/plex-dependencies/${depname}/latest/hash.txt" ${DEP_DIR}/${depname}-hash.txt
- STATUS HASH_STATUS
- )
- list(GET HASH_STATUS 0 SUCCESS)
- if(SUCCESS EQUAL 0)
- file(STRINGS ${DEP_DIR}/${depname}-hash.txt DEP_HASH LIMIT_COUNT 1)
- if(depname STREQUAL plexmediaplayer-qt)
- set(DEP_DIRNAME "konvergo-qt-${ARCHSTR}-release-${DEP_HASH}")
- elseif(depname STREQUAL plexmediaplayer-dependencies)
- set(DEP_DIRNAME "konvergo-depends-${ARCHSTR}-release-${DEP_HASH}")
- else()
- set(DEP_DIRNAME "${depname}-${ARCHSTR}-release-${DEP_HASH}")
- endif()
- set(DEP_FILENAME ${DEP_DIRNAME}.tbz2)
- set(DEP_URL "https://nightlies.plex.tv/directdl/plex-dependencies/${depname}/latest/${DEP_FILENAME}")
- set(${dirpath} ${DEP_DIR}/${DEP_DIRNAME} PARENT_SCOPE)
- if(NOT EXISTS ${DEP_DIR}/${DEP_DIRNAME})
- message(STATUS "Downloading ${DEP_FILENAME}.sha.txt...")
- file(DOWNLOAD ${DEP_URL}.sha.txt ${DEP_DIR}/${DEP_FILENAME}.sha.txt STATUS SHA_STATUS)
- list(GET SHA_STATUS 0 SHASUCCESS)
- if(SHASUCCESS EQUAL 0)
- file(STRINGS ${DEP_DIR}/${DEP_FILENAME}.sha.txt CONTENT_HASH LIMIT_COUNT 1)
- message(STATUS "Downloading ${DEP_FILENAME}...")
- file(
- DOWNLOAD ${DEP_URL} ${DEP_DIR}/${DEP_FILENAME}
- EXPECTED_HASH SHA1=${CONTENT_HASH}
- SHOW_PROGRESS
- STATUS DEP_STATUS
- )
- list(GET DEP_STATUS 0 DEP_SUCCESS)
- if(NOT DEP_SUCCESS EQUAL 0)
- message(FATAL_ERROR "Failed to download ${DEP_URL}")
- endif()
- if(NOT EXISTS ${DEP_DIR}/${DEP_DIRNAME})
- message(STATUS "Unpacking ${DEP_FILENAME}...")
- execute_process(
- COMMAND ${CMAKE_COMMAND} -E tar xjf ${DEP_DIR}/${DEP_FILENAME}
- WORKING_DIRECTORY ${DEP_DIR}
- )
- message(STATUS "Fixing install library names...")
- execute_process(
- COMMAND ${PROJECT_SOURCE_DIR}/scripts/fix-install-names.py ${DEP_DIR}/${DEP_DIRNAME}
- WORKING_DIRECTORY ${DEP_DIR}
- )
- message(STATUS "Done")
- endif()
- else(SHASUCCESS EQUAL 0)
- list(GET SHA_STATUS 1 SHAERROR)
- message(FATAL_ERROR "Failed to download ${DEP_FILENAME}.sha.txt error: ${SHAERROR}")
- endif(SHASUCCESS EQUAL 0)
- else(NOT EXISTS ${DEP_DIR}/${DEP_DIRNAME})
- message(STATUS "Directory ${DEP_DIR}/${DEP_DIRNAME} already exists, remove it to redownload")
- endif(NOT EXISTS ${DEP_DIR}/${DEP_DIRNAME})
- else(SUCCESS EQUAL 0)
- list(GET HASH_STATUS 1 HASHERROR)
- message(FATAL_ERROR "Failed to download ${depname}.hash.txt error: ${HASHERROR}")
- endif(SUCCESS EQUAL 0)
- endfunction(download_deps depname)
|