Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[vcpkg_acquire_msys] Use Mirrors #13889

Merged
merged 1 commit into from
Oct 6, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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"
dan-shaw marked this conversation as resolved.
Show resolved Hide resolved
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