Skip to content

Commit

Permalink
[vcpkg_acquire_msys] Use Mirrors (#13889)
Browse files Browse the repository at this point in the history
  • Loading branch information
ras0219-msft committed Oct 6, 2020
1 parent c902748 commit 76a7e92
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 43 deletions.
46 changes: 30 additions & 16 deletions scripts/cmake/vcpkg_acquire_msys.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,34 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT)
list(APPEND PACKAGES bash coreutils sed grep gawk diffutils make pkg-config)
endif()

macro(msys_package_download URL SHA FILENAME)
set(URLS "${URL}")
# Mirror list from https://github.com/msys2/MSYS2-packages/blob/master/pacman-mirrors/mirrorlist.msys
# Sourceforge is not used because it does not keep older package versions
set(MIRRORS
"https://www2.futureware.at/~nickoe/msys2-mirror/"
"https://mirror.yandex.ru/mirrors/msys2/"
"https://mirrors.tuna.tsinghua.edu.cn/msys2/"
"https://mirrors.ustc.edu.cn/msys2/"
"https://mirror.bit.edu.cn/msys2/"
"https://mirror.selfnet.de/msys2/"
"https://mirrors.sjtug.sjtu.edu.cn/msys2/"
)

foreach(MIRROR IN LISTS MIRRORS)
string(REPLACE "https://repo.msys2.org/" "${MIRROR}" MIRROR_URL "${URL}")
list(APPEND URLS "${MIRROR_URL}")
endforeach()
vcpkg_download_distfile(MSYS_ARCHIVE
URLS ${URLS}
SHA512 "${SHA}"
FILENAME "msys-${FILENAME}"
QUIET
)
string(APPEND TOTAL_HASH "${SHA}")
list(APPEND ARCHIVES "${MSYS_ARCHIVE}")
endmacro()

macro(msys_package)
cmake_parse_arguments(p "ZST;ANY" "URL;NAME;SHA512;VERSION;REPO" "DEPS" ${ARGN})
if(p_URL AND NOT p_NAME)
Expand Down Expand Up @@ -94,14 +122,7 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT)
if("${p_NAME}" IN_LIST PACKAGES)
list(REMOVE_ITEM PACKAGES "${p_NAME}")
list(APPEND PACKAGES ${p_DEPS})
vcpkg_download_distfile(MSYS_ARCHIVE
URLS "${p_URL}"
SHA512 "${p_SHA512}"
FILENAME "msys-${FILENAME}"
QUIET
)
string(APPEND TOTAL_HASH "${p_SHA512}")
list(APPEND ARCHIVES "${MSYS_ARCHIVE}")
msys_package_download("${p_URL}" "${p_SHA512}" "${FILENAME}")
endif()
endmacro()

Expand All @@ -111,14 +132,7 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT)
set(N "${P}")
else()
get_filename_component(FILENAME "${N}" NAME)
vcpkg_download_distfile(MSYS_ARCHIVE
URLS "${N}"
SHA512 "${P}"
FILENAME "msys-${FILENAME}"
QUIET
)
string(APPEND TOTAL_HASH "${P}")
list(APPEND ARCHIVES "${MSYS_ARCHIVE}")
msys_package_download("${N}" "${P}" "${FILENAME}")
unset(N)
endif()
endforeach()
Expand Down
38 changes: 11 additions & 27 deletions scripts/cmake/vcpkg_find_acquire_program.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -425,41 +425,25 @@ function(vcpkg_find_acquire_program VAR)
set(HASH 2a5480d503ac6e8203040c7e516a3395028520da05d0ebf3a2d56d5d24ba5d17630e8f318dd4e3cc2094cc4668b90108fb58e8b986b1ffebd429995058063c27)
elseif(VAR MATCHES "PKGCONFIG")
set(PROGNAME pkg-config)
set(VERSION 0.29.2-1)
set(LIBWINPTHREAD_VERSION git-8.0.0.5906.c9a21571-1)
if(ENV{PKG_CONFIG})
debug_message(STATUS "PKG_CONFIG found in ENV! Using $ENV{PKG_CONFIG}")
set(PKGCONFIG $ENV{PKG_CONFIG} PARENT_SCOPE)
return()
elseif(CMAKE_HOST_WIN32)
set(PROG_PATH_SUBDIR "${DOWNLOADS}/tools/${PROGNAME}/${VERSION}")
set(PKGCONFIG "${PROG_PATH_SUBDIR}/mingw32/bin/pkg-config.exe")
if(NOT EXISTS "${PKGCONFIG}")
vcpkg_download_distfile(PKGCONFIG_ARCHIVE
URLS "https://repo.msys2.org/mingw/i686/mingw-w64-i686-pkg-config-${VERSION}-any.pkg.tar.xz"
SHA512 3b1b706a24d9aef7bbdf3ce4427aaa813ba6fbd292ed9dda181b4300e117c3d59a159ddcca8b013fd01ce76da2d95d590314ff9628c0d68a6966bac4842540f0
FILENAME mingw-w64-i686-pkg-config-${VERSION}-any.pkg.tar.xz
set(VERSION 0.29.2-1)
set(LIBWINPTHREAD_VERSION git-8.0.0.5906.c9a21571-1)
vcpkg_acquire_msys(
PKGCONFIG_ROOT
NO_DEFAULT_PACKAGES
DIRECT_PACKAGES
"https://repo.msys2.org/mingw/i686/mingw-w64-i686-pkg-config-${VERSION}-any.pkg.tar.xz"
3b1b706a24d9aef7bbdf3ce4427aaa813ba6fbd292ed9dda181b4300e117c3d59a159ddcca8b013fd01ce76da2d95d590314ff9628c0d68a6966bac4842540f0
"https://repo.msys2.org/mingw/i686/mingw-w64-i686-libwinpthread-${LIBWINPTHREAD_VERSION}-any.pkg.tar.zst"
2c3d9e6b2eee6a4c16fd69ddfadb6e2dc7f31156627d85845c523ac85e5c585d4cfa978659b1fe2ec823d44ef57bc2b92a6127618ff1a8d7505458b794f3f01c
)
vcpkg_download_distfile(LIBWINPTHREAD_ARCHIVE
URLS "https://repo.msys2.org/mingw/i686/mingw-w64-i686-libwinpthread-${LIBWINPTHREAD_VERSION}-any.pkg.tar.zst"
SHA512 2c3d9e6b2eee6a4c16fd69ddfadb6e2dc7f31156627d85845c523ac85e5c585d4cfa978659b1fe2ec823d44ef57bc2b92a6127618ff1a8d7505458b794f3f01c
FILENAME mingw-w64-i686-libwinpthread-${LIBWINPTHREAD_VERSION}-any.pkg.tar.zst
)
file(REMOVE_RECURSE ${PROG_PATH_SUBDIR} ${PROG_PATH_SUBDIR}.tmp)
file(MAKE_DIRECTORY ${PROG_PATH_SUBDIR}.tmp)
vcpkg_execute_required_process(
ALLOW_IN_DOWNLOAD_MODE
COMMAND ${CMAKE_COMMAND} -E tar xzf ${LIBWINPTHREAD_ARCHIVE}
WORKING_DIRECTORY ${PROG_PATH_SUBDIR}.tmp
)
vcpkg_execute_required_process(
ALLOW_IN_DOWNLOAD_MODE
COMMAND ${CMAKE_COMMAND} -E tar xzf ${PKGCONFIG_ARCHIVE}
WORKING_DIRECTORY ${PROG_PATH_SUBDIR}.tmp
)
file(RENAME ${PROG_PATH_SUBDIR}.tmp ${PROG_PATH_SUBDIR})
endif()
set(${VAR} "${${VAR}}" PARENT_SCOPE)
set(${VAR} "${PKGCONFIG_ROOT}/mingw32/bin/pkg-config.exe" PARENT_SCOPE)
return()
else()
set(BREW_PACKAGE_NAME pkg-config)
Expand Down

0 comments on commit 76a7e92

Please sign in to comment.