qt_download_submodule.cmake 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. function(qt_get_submodule_name OUT_NAME)
  2. string(REPLACE "5-" "" _tmp_name ${PORT})
  3. set(${OUT_NAME} ${_tmp_name} PARENT_SCOPE)
  4. endfunction()
  5. function(qt_download_submodule)
  6. cmake_parse_arguments(_csc "" "OUT_SOURCE_PATH" "PATCHES;BUILD_OPTIONS;BUILD_OPTIONS_RELEASE;BUILD_OPTIONS_DEBUG" ${ARGN})
  7. if(NOT DEFINED _csc_OUT_SOURCE_PATH)
  8. message(FATAL_ERROR "qt_download_module requires parameter OUT_SOURCE_PATH to be set! Please correct the portfile!")
  9. endif()
  10. vcpkg_buildpath_length_warning(37)
  11. qt_get_submodule_name(NAME)
  12. set(FULL_VERSION "${QT_MAJOR_MINOR_VER}.${QT_PATCH_VER}")
  13. set(ARCHIVE_NAME "${NAME}-everywhere-src-${FULL_VERSION}.tar.xz")
  14. set(URLS "http://download.qt.io/official_releases/qt/${QT_MAJOR_MINOR_VER}/${FULL_VERSION}/submodules/${ARCHIVE_NAME}"
  15. "http://mirrors.ocf.berkeley.edu/qt/official_releases/qt/${QT_MAJOR_MINOR_VER}/${FULL_VERSION}/submodules/${ARCHIVE_NAME}"
  16. )
  17. vcpkg_download_distfile(ARCHIVE_FILE
  18. URLS ${URLS}
  19. FILENAME ${ARCHIVE_NAME}
  20. SHA512 ${QT_HASH_${PORT}}
  21. )
  22. if(QT_UPDATE_VERSION)
  23. file(SHA512 "${ARCHIVE_FILE}" ARCHIVE_HASH)
  24. message(STATUS "${PORT} new hash is ${ARCHIVE_HASH}")
  25. file(APPEND "${VCPKG_ROOT_DIR}/ports/qt5-base/cmake/qt_new_hashes.cmake" "set(QT_HASH_${PORT} ${ARCHIVE_HASH})\n")
  26. else()
  27. vcpkg_extract_source_archive_ex(
  28. OUT_SOURCE_PATH SOURCE_PATH
  29. ARCHIVE "${ARCHIVE_FILE}"
  30. REF ${FULL_VERSION}
  31. PATCHES ${_csc_PATCHES}
  32. )
  33. endif()
  34. set(${_csc_OUT_SOURCE_PATH} ${SOURCE_PATH} PARENT_SCOPE)
  35. endfunction()