diff --git a/docs/maintainers/vcpkg_from_sourceforge.md b/docs/maintainers/vcpkg_from_sourceforge.md index 823ee82f958396..faad0621571a42 100644 --- a/docs/maintainers/vcpkg_from_sourceforge.md +++ b/docs/maintainers/vcpkg_from_sourceforge.md @@ -4,10 +4,10 @@ Download and extract a project from sourceforge. ## Usage: ```cmake -vcpkg_from_sourceforge( +vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO - [REF <2.1-3>] + [REF <2.1-3>] SHA512 <547b417109332...> FILENAME [DISABLE_SSL] diff --git a/ports/argtable2/CONTROL b/ports/argtable2/CONTROL index 7a953dd145e1d9..6cdb294cfabde3 100644 --- a/ports/argtable2/CONTROL +++ b/ports/argtable2/CONTROL @@ -1,4 +1,4 @@ Source: argtable2 -Version: 2.13-5 +Version: 2.13-7 Homepage: http://argtable.sourceforge.net Description: Argtable is an ANSI C library for parsing GNU style command line options with a minimum of fuss. diff --git a/ports/cairo/CONTROL b/ports/cairo/CONTROL index cbbe5d3d85bc2e..0eda86fac3f26b 100644 --- a/ports/cairo/CONTROL +++ b/ports/cairo/CONTROL @@ -1,5 +1,5 @@ Source: cairo -Version: 1.16.0-5 +Version: 1.16.0-6 Homepage: https://cairographics.org Description: Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB. Build-Depends: zlib, libpng, pixman, freetype, fontconfig diff --git a/ports/cunit/CONTROL b/ports/cunit/CONTROL index 21e97d948bed87..c5725875f3a100 100644 --- a/ports/cunit/CONTROL +++ b/ports/cunit/CONTROL @@ -1,4 +1,4 @@ Source: cunit -Version: 2.1.3-4 +Version: 2.1.3-6 Homepage: https://sourceforge.net/projects/cunit/ Description: CUnit is a lightweight system for writing, administering, and running unit tests in C. It provides C programmers a basic testing functionality with a flexible variety of user interfaces diff --git a/ports/epsilon/CONTROL b/ports/epsilon/CONTROL index 8c829bef3a814c..1547a9967837a5 100644 --- a/ports/epsilon/CONTROL +++ b/ports/epsilon/CONTROL @@ -1,5 +1,5 @@ Source: epsilon -Version: 0.9.2-2 +Version: 0.9.2-4 Homepage: https://sourceforge.net/projects/epsilon-project/ Description: EPSILON is an Open Source wavelet image compressor, that is aimed on parallel and robust image processing. Build-Depends: libpopt \ No newline at end of file diff --git a/ports/freeglut/CONTROL b/ports/freeglut/CONTROL index fad233f80ff8c6..452615768f0887 100644 --- a/ports/freeglut/CONTROL +++ b/ports/freeglut/CONTROL @@ -1,4 +1,4 @@ Source: freeglut -Version: 3.2.1-2 +Version: 3.2.1-4 Homepage: https://sourceforge.net/projects/freeglut/ Description: Open source implementation of GLUT with source and binary backwards compatibility. diff --git a/ports/freeimage/CONTROL b/ports/freeimage/CONTROL index d7b6a4311b2c27..36829adc7a51bf 100644 --- a/ports/freeimage/CONTROL +++ b/ports/freeimage/CONTROL @@ -1,5 +1,5 @@ Source: freeimage -Version: 3.18.0-10 +Version: 3.18.0-12 Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openjpeg, libwebp (!uwp), libraw, jxrlib, openexr Homepage: https://sourceforge.net/projects/freeimage/ Description: Support library for graphics image formats diff --git a/ports/geographiclib/CONTROL b/ports/geographiclib/CONTROL index 18c787c72aee7d..a1c1aeff643c31 100644 --- a/ports/geographiclib/CONTROL +++ b/ports/geographiclib/CONTROL @@ -1,4 +1,4 @@ Source: geographiclib -Version: 1.47-patch1-14 +Version: 1.47-patch1-16 Homepage: https://sourceforge.net/projects/geographiclib/ Description: a small set of C++ classes for performing conversions between geographic, UTM, UPS, MGRS, geocentric, and local cartesian coordinates, for gravity (e.g., EGM2008), geoid height, and geomagnetic field (e.g., WMM2010) calculations, and for solving geodesic problems. diff --git a/ports/giflib/CONTROL b/ports/giflib/CONTROL index bb796c97a8466b..5361fc185a7be5 100644 --- a/ports/giflib/CONTROL +++ b/ports/giflib/CONTROL @@ -1,4 +1,4 @@ Source: giflib -Version: 5.1.4-4 +Version: 5.1.4-6 Homepage: https://sourceforge.net/projects/giflib/ Description: A library for reading and writing gif images. diff --git a/ports/gsoap/CONTROL b/ports/gsoap/CONTROL index 27c7a8c1bddd6f..e5901fca747107 100644 --- a/ports/gsoap/CONTROL +++ b/ports/gsoap/CONTROL @@ -1,5 +1,5 @@ Source: gsoap -Version: 2.8.102-1 +Version: 2.8.102-4 Build-Depends: curl Homepage: https://sourceforge.net/projects/gsoap2/ Description: The gSOAP toolkit is a C and C++ software development toolkit for SOAP and REST XML Web services and generic C/C++ XML data bindings. diff --git a/ports/healpix/CONTROL b/ports/healpix/CONTROL index a58d6ab63730d2..629b095ee45004 100644 --- a/ports/healpix/CONTROL +++ b/ports/healpix/CONTROL @@ -1,5 +1,5 @@ Source: healpix -Version: 1.12.10-2 +Version: 1.12.10-5 Homepage: http://healpix.sourceforge.net/ Description: HEALPix is an acronym for Hierarchical Equal Area isoLatitude Pixelation of a sphere. Build-Depends: cfitsio diff --git a/ports/irrlicht/CONTROL b/ports/irrlicht/CONTROL index 3207b7ae8c50c5..e8ff45bdd81fd5 100644 --- a/ports/irrlicht/CONTROL +++ b/ports/irrlicht/CONTROL @@ -1,5 +1,5 @@ Source: irrlicht -Version: 1.8.4-8 +Version: 1.8.4-10 Homepage: http://irrlicht.sourceforge.net Description: Irrlicht lightning fast 3d engine Build-Depends: zlib, libpng, bzip2, libjpeg-turbo diff --git a/ports/itpp/CONTROL b/ports/itpp/CONTROL index 8b1ae770166f50..2d4fa89005dec7 100644 --- a/ports/itpp/CONTROL +++ b/ports/itpp/CONTROL @@ -1,4 +1,4 @@ Source: itpp -Version: 4.3.1-3 +Version: 4.3.1-5 Homepage: http://itpp.sourceforge.net Description: IT++ is a C++ library of mathematical, signal processing and communication classes and functions. Its main use is in simulation of communication systems and for performing research in the area of communications. \ No newline at end of file diff --git a/ports/libaiff/CONTROL b/ports/libaiff/CONTROL index 155f5e7d0f9180..889511a5cf602e 100644 --- a/ports/libaiff/CONTROL +++ b/ports/libaiff/CONTROL @@ -1,4 +1,4 @@ Source: libaiff -Version: 5.0-4 +Version: 5.0-6 Homepage: https://sourceforge.net/projects/aifftools Description: LibAiff is an open-source library, providing C applications transparent read & write operations for Audio Interchange File Format (AIFF) files, with the goal of supporting all of its features diff --git a/ports/libdisasm/CONTROL b/ports/libdisasm/CONTROL index 7ab3231924a3ed..1a09c870ea370c 100644 --- a/ports/libdisasm/CONTROL +++ b/ports/libdisasm/CONTROL @@ -1,4 +1,4 @@ Source: libdisasm -Version: 0.23-5 +Version: 0.23-7 Homepage: https://sourceforge.net/projects/bastard Description: x86 Disassembler Library. diff --git a/ports/libmad/CONTROL b/ports/libmad/CONTROL index a044ba76bd4b32..356ecc65f98fa6 100644 --- a/ports/libmad/CONTROL +++ b/ports/libmad/CONTROL @@ -1,4 +1,4 @@ Source: libmad -Version: 0.15.1-6 +Version: 0.15.1-8 Homepage: http://www.mars.org/home/rob/proj/mpeg/ Description: high-quality MPEG audio decoder diff --git a/ports/libmikmod/CONTROL b/ports/libmikmod/CONTROL index 7344b803794299..637052cb2637e7 100644 --- a/ports/libmikmod/CONTROL +++ b/ports/libmikmod/CONTROL @@ -1,5 +1,5 @@ Source: libmikmod -Version: 3.3.11.1-6 +Version: 3.3.11.1-8 Homepage: https://sourceforge.net/projects/mikmod/ Description: Mikmod is a module player and library supporting many formats, including mod, s3m, it, and xm. Build-Depends: openal-soft diff --git a/ports/libnice/CONTROL b/ports/libnice/CONTROL index fcbc522a913499..a2f87af5cba4db 100644 --- a/ports/libnice/CONTROL +++ b/ports/libnice/CONTROL @@ -1,5 +1,5 @@ Source: libnice -Version: 0.1.15-3 +Version: 0.1.15-4 Homepage: https://nice.freedesktop.org Description: Libnice is an implementation of the IETF's Interactive Connectivity Establishment (ICE) standard (RFC 5245) and the Session Traversal Utilities for NAT (STUN) standard (RFC 5389). Build-Depends: glib, openssl diff --git a/ports/libnice/portfile.cmake b/ports/libnice/portfile.cmake index fc58cdc137299a..ff09f48372294c 100644 --- a/ports/libnice/portfile.cmake +++ b/ports/libnice/portfile.cmake @@ -22,7 +22,6 @@ vcpkg_install_cmake() vcpkg_copy_pdbs() -file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) file(COPY ${SOURCE_PATH}/COPYING.LGPL DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) file(COPY ${SOURCE_PATH}/COPYING.MPL DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/libsquish/CONTROL b/ports/libsquish/CONTROL index 619a937805fa55..2e3500478e4472 100644 --- a/ports/libsquish/CONTROL +++ b/ports/libsquish/CONTROL @@ -1,4 +1,4 @@ Source: libsquish -Version: 1.15-5 +Version: 1.15-7 Homepage: https://sourceforge.net/projects/libsquish Description: Open source DXT compression library. diff --git a/ports/libusb-win32/CONTROL b/ports/libusb-win32/CONTROL index b10d905198e16d..24dd02c85fdb9d 100644 --- a/ports/libusb-win32/CONTROL +++ b/ports/libusb-win32/CONTROL @@ -1,5 +1,5 @@ Source: libusb-win32 -Version: 1.2.6.0-4 +Version: 1.2.6.0-6 Homepage: https://sourceforge.net/projects/libusb-win32 Description: Allows user space applications to access many USB device on Windows. Supports: windows \ No newline at end of file diff --git a/ports/libuuid/CONTROL b/ports/libuuid/CONTROL index 3ec19066c9a2f6..5c11b9cac4f773 100644 --- a/ports/libuuid/CONTROL +++ b/ports/libuuid/CONTROL @@ -1,5 +1,5 @@ Source: libuuid -Version: 1.0.3-5 +Version: 1.0.3-7 Homepage: https://sourceforge.net/projects/libuuid Description: Universally unique id library Supports: linux|osx \ No newline at end of file diff --git a/ports/libxmp-lite/CONTROL b/ports/libxmp-lite/CONTROL index 45e1069dad1a76..fd791aa29012a7 100644 --- a/ports/libxmp-lite/CONTROL +++ b/ports/libxmp-lite/CONTROL @@ -1,4 +1,4 @@ Source: libxmp-lite -Version: 4.4.1-4 +Version: 4.4.1-6 Homepage: https://sourceforge.net/projects/xmp/ Description: Lightweight version of libxmp that supports MOD, S3M, XM and IT modules. diff --git a/ports/mathgl/CONTROL b/ports/mathgl/CONTROL index 4dd6fbb5125f23..7dc82d3f97d770 100644 --- a/ports/mathgl/CONTROL +++ b/ports/mathgl/CONTROL @@ -1,5 +1,5 @@ Source: mathgl -Version: 2.4.3-4 +Version: 2.4.3-6 Description: MathGL is a free library of fast C++ routines for the plotting of the data varied in one or more dimensions Default-Features: opengl, jpeg, png, zlib diff --git a/ports/mp3lame/CONTROL b/ports/mp3lame/CONTROL index bd8a34222ec01b..5cf9000651de60 100644 --- a/ports/mp3lame/CONTROL +++ b/ports/mp3lame/CONTROL @@ -1,4 +1,4 @@ Source: mp3lame -Version: 3.100-1 +Version: 3.100-3 Homepage: http://lame.sourceforge.net/ Description: LAME is a high quality MPEG Audio Layer III (MP3) encoder licensed under the LGPL. diff --git a/ports/opencc/CONTROL b/ports/opencc/CONTROL index b59adc760068e6..49765c5b9e912a 100644 --- a/ports/opencc/CONTROL +++ b/ports/opencc/CONTROL @@ -1,5 +1,5 @@ Source: opencc -Version: 2020-04-26-4 +Version: 2020-04-26-6 Description: A project for conversion between Traditional and Simplified Chinese Homepage: https://github.com/BYVoid/OpenCC Supports: !(arm|arm64|uwp) diff --git a/ports/pcre/CONTROL b/ports/pcre/CONTROL index 97a79426a4b4ab..97dd54c343df81 100644 --- a/ports/pcre/CONTROL +++ b/ports/pcre/CONTROL @@ -1,4 +1,4 @@ Source: pcre -Version: 8.44-2 +Version: 8.44-4 Homepage: https://www.pcre.org/ Description: Perl Compatible Regular Expressions diff --git a/ports/pcre/portfile.cmake b/ports/pcre/portfile.cmake index 92926a32f38f69..903d82a763a37b 100644 --- a/ports/pcre/portfile.cmake +++ b/ports/pcre/portfile.cmake @@ -1,11 +1,15 @@ set(PCRE_VERSION 8.44) -vcpkg_from_sourceforge( - OUT_SOURCE_PATH SOURCE_PATH - REPO pcre/pcre - REF ${PCRE_VERSION} +vcpkg_download_distfile(ARCHIVE + URLS "https://ftp.pcre.org/pub/pcre/pcre-${PCRE_VERSION}.zip" + "https://downloads.sourceforge.net/project/pcre/pcre/${PCRE_VERSION}/pcre-${PCRE_VERSION}.zip" FILENAME "pcre-${PCRE_VERSION}.zip" SHA512 adddec1236b25ff1c90e73835c2ba25d60a5839cbde2d6be7838a8ec099f7443dede931dc39002943243e21afea572eda71ee8739058e72235a192e4324398f0 +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} PATCHES # Fix CMake Deprecation Warning concerning OLD behavior for policy CMP0026 # Suppress MSVC compiler warnings C4703, C4146, C4308, which fixes errors diff --git a/ports/plplot/CONTROL b/ports/plplot/CONTROL index af69724f76658d..fe5ea0b198d233 100644 --- a/ports/plplot/CONTROL +++ b/ports/plplot/CONTROL @@ -1,5 +1,5 @@ Source: plplot -Version: 5.13.0-6 +Version: 5.13.0-8 Build-Depends: freetype, zlib, libpng, bzip2 Description: PLplot is a cross-platform software package for creating scientific plots whose (UTF-8) plot symbols and text are limited in practice only by what Unicode-aware system fonts are installed on a user's computer. diff --git a/ports/podofo/CONTROL b/ports/podofo/CONTROL index e2357fbe824691..a6965d832de761 100644 --- a/ports/podofo/CONTROL +++ b/ports/podofo/CONTROL @@ -1,5 +1,5 @@ Source: podofo -Version: 0.9.6-9 +Version: 0.9.6-11 Homepage: https://sourceforge.net/projects/podofo/ Description: PoDoFo is a library to work with the PDF file format Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openssl, freetype diff --git a/ports/polyclipping/CONTROL b/ports/polyclipping/CONTROL index 4a46772b2bd197..198090cc6f1344 100644 --- a/ports/polyclipping/CONTROL +++ b/ports/polyclipping/CONTROL @@ -1,4 +1,4 @@ Source: polyclipping -Version: 6.4.2-2 +Version: 6.4.2-4 Homepage: https://sourceforge.net/projects/polyclipping/ Description: The Clipper library performs clipping and offsetting for both lines and polygons. All four boolean clipping operations are supported - intersection, union, difference and exclusive-or. Polygons can be of any shape including self-intersecting polygons. diff --git a/ports/portmidi/CONTROL b/ports/portmidi/CONTROL index 1fafc6e9f1b441..f5518c3e14c30c 100644 --- a/ports/portmidi/CONTROL +++ b/ports/portmidi/CONTROL @@ -1,5 +1,5 @@ Source: portmidi -Version: 0.217.1-2 +Version: 0.217.1-4 Homepage: https://sourceforge.net/projects/portmedia/ Description: Free, cross-platform, open-source I/O library for MIDI Supports: !uwp \ No newline at end of file diff --git a/ports/rapidxml/CONTROL b/ports/rapidxml/CONTROL index 0bc175e7132326..7e119fb705f2dc 100644 --- a/ports/rapidxml/CONTROL +++ b/ports/rapidxml/CONTROL @@ -1,4 +1,4 @@ Source: rapidxml -Version: 1.13-2 +Version: 1.13-4 Homepage: https://sourceforge.net/projects/rapidxml Description: RapidXml is an attempt to create the fastest XML parser possible, while retaining useability, portability and reasonable W3C compatibility. diff --git a/ports/sigslot/CONTROL b/ports/sigslot/CONTROL index d1d9afded71b1b..e785404ebbd12b 100644 --- a/ports/sigslot/CONTROL +++ b/ports/sigslot/CONTROL @@ -1,3 +1,3 @@ Source: sigslot -Version: 1.0.0-1 +Version: 1.0.0-3 Description: Portable C++ type-safe, thread-safe signal/slot library for ISO C++, Unix/BSD/Linux and Win32. Sigslot allows C++ code to use the signal/slot paradigm made popular by, for example, Qt. diff --git a/ports/tinyxml/CONTROL b/ports/tinyxml/CONTROL index d6c4d6b240cefb..3a83e411e08302 100644 --- a/ports/tinyxml/CONTROL +++ b/ports/tinyxml/CONTROL @@ -1,4 +1,4 @@ Source: tinyxml -Version: 2.6.2-5 +Version: 2.6.2-7 Homepage: https://sourceforge.net/projects/tinyxml Description: A simple, small, minimal, C++ XML parser that can be easily integrating into other programs. diff --git a/ports/wtl/CONTROL b/ports/wtl/CONTROL index 39e78b1d33fe43..63f618d9b656cd 100644 --- a/ports/wtl/CONTROL +++ b/ports/wtl/CONTROL @@ -1,4 +1,4 @@ Source: wtl -Version: 10.0-8 +Version: 10.0-10 Homepage: https://sourceforge.net/projects/wtl/ Description: Windows Template Library (WTL) is a C++ library for developing Windows applications and UI components. diff --git a/scripts/cmake/vcpkg_download_distfile.cmake b/scripts/cmake/vcpkg_download_distfile.cmake index 8a8efd205fd3fe..6ad0738039ed50 100644 --- a/scripts/cmake/vcpkg_download_distfile.cmake +++ b/scripts/cmake/vcpkg_download_distfile.cmake @@ -47,7 +47,7 @@ ## * [fontconfig](https://github.com/Microsoft/vcpkg/blob/master/ports/fontconfig/portfile.cmake) ## * [freetype](https://github.com/Microsoft/vcpkg/blob/master/ports/freetype/portfile.cmake) function(vcpkg_download_distfile VAR) - set(options SKIP_SHA512) + set(options SKIP_SHA512 SILENT_EXIT) set(oneValueArgs FILENAME SHA512) set(multipleValuesArgs URLS HEADERS) cmake_parse_arguments(vcpkg_download_distfile "${options}" "${oneValueArgs}" "${multipleValuesArgs}" ${ARGN}) @@ -171,18 +171,31 @@ function(vcpkg_download_distfile VAR) endforeach(url) endif() - if (NOT download_success) - message(FATAL_ERROR - " \n" - " Failed to download file.\n" - " If you use a proxy, please set the HTTPS_PROXY and HTTP_PROXY environment\n" - " variables to \"https://user:password@your-proxy-ip-address:port/\".\n" - " Otherwise, please submit an issue at https://github.com/Microsoft/vcpkg/issues\n") + if (NOT vcpkg_download_distfile_SILENT_EXIT) + if (NOT download_success) + message(FATAL_ERROR + " \n" + " Failed to download file.\n" + " If you use a proxy, please set the HTTPS_PROXY and HTTP_PROXY environment\n" + " variables to \"https://user:password@your-proxy-ip-address:port/\".\n" + " Otherwise, please submit an issue at https://github.com/Microsoft/vcpkg/issues\n") + else() + test_hash("${download_file_path_part}" "downloaded file" "The file may have been corrupted in transit. This can be caused by proxies. If you use a proxy, please set the HTTPS_PROXY and HTTP_PROXY environment variables to \"https://user:password@your-proxy-ip-address:port/\".\n") + get_filename_component(downloaded_file_dir "${downloaded_file_path}" DIRECTORY) + file(MAKE_DIRECTORY "${downloaded_file_dir}") + file(RENAME ${download_file_path_part} ${downloaded_file_path}) + endif() else() - test_hash("${download_file_path_part}" "downloaded file" "The file may have been corrupted in transit. This can be caused by proxies. If you use a proxy, please set the HTTPS_PROXY and HTTP_PROXY environment variables to \"https://user:password@your-proxy-ip-address:port/\".\n") - get_filename_component(downloaded_file_dir "${downloaded_file_path}" DIRECTORY) - file(MAKE_DIRECTORY "${downloaded_file_dir}") - file(RENAME ${download_file_path_part} ${downloaded_file_path}) + if (NOT download_success) + message(WARNING + " \n" + " Failed to download file.\n") + else() + test_hash("${download_file_path_part}" "downloaded file" "The file may have been corrupted in transit. This can be caused by proxies. If you use a proxy, please set the HTTPS_PROXY and HTTP_PROXY environment variables to \"https://user:password@your-proxy-ip-address:port/\".\n") + get_filename_component(downloaded_file_dir "${downloaded_file_path}" DIRECTORY) + file(MAKE_DIRECTORY "${downloaded_file_dir}") + file(RENAME ${download_file_path_part} ${downloaded_file_path}) + endif() endif() endif() set(${VAR} ${downloaded_file_path} PARENT_SCOPE) diff --git a/scripts/cmake/vcpkg_from_sourceforge.cmake b/scripts/cmake/vcpkg_from_sourceforge.cmake index 4df36a81d59f62..2584992428fcd1 100644 --- a/scripts/cmake/vcpkg_from_sourceforge.cmake +++ b/scripts/cmake/vcpkg_from_sourceforge.cmake @@ -82,7 +82,8 @@ function(vcpkg_from_sourceforge) else() set(URL_PROTOCOL https:) endif() - set(SOURCEFORGE_HOST ${URL_PROTOCOL}//downloads.sourceforge.net/project) + + set(SOURCEFORGE_HOST ${URL_PROTOCOL}//sourceforge.net/projects) string(FIND ${_vdus_REPO} "/" FOUND_ORG) if (NOT FOUND_ORG EQUAL -1) @@ -94,14 +95,14 @@ function(vcpkg_from_sourceforge) endif() set(ORG_NAME ${ORG_NAME}/) else() - set(REPO_NAME ${_vdus_REPO}) - set(ORG_NAME ) + set(ORG_NAME ${_vdus_REPO}/) + set(REPO_NAME ) endif() if (DEFINED _vdus_REF) - set(URL "${SOURCEFORGE_HOST}/${ORG_NAME}${REPO_NAME}/${_vdus_REF}/${_vdus_FILENAME}") + set(URL "${SOURCEFORGE_HOST}/${ORG_NAME}files/${REPO_NAME}/${_vdus_REF}/${_vdus_FILENAME}") else() - set(URL "${SOURCEFORGE_HOST}/${ORG_NAME}${REPO_NAME}/${_vdus_FILENAME}") + set(URL "${SOURCEFORGE_HOST}/${ORG_NAME}${REPO_NAME}/files/${_vdus_FILENAME}") endif() set(NO_REMOVE_ONE_LEVEL ) @@ -111,12 +112,70 @@ function(vcpkg_from_sourceforge) string(SUBSTRING "${_vdus_SHA512}" 0 10 SANITIZED_REF) + list(APPEND SOURCEFORGE_MIRRORS + cfhcable # United States + pilotfiber # New York, NY + gigenet # Chicago, IL + versaweb # Las Vegas, NV + ayera # Modesto, CA + netactuate # Durham, NC + phoenixnap # Tempe, AZ + astuteinternet # Vancouver, BC + freefr # Paris, France + netcologne # Cologne, Germany + deac-riga # Latvia + excellmedia # Hyderabad, India + iweb # Montreal, QC + jaist # Nomi, Japan + jztkft # Mezotur, Hungary + managedway # Detroit, MI + nchc # Taipei, Taiwan + netix # Bulgaria + ufpr # Curitiba, Brazil + tenet # Wynberg, South Africa + ) + + # Try to use auto-select first + set(DOWNLOAD_URL ${URL}/download) + message(STATUS "Trying auto-select mirror...") vcpkg_download_distfile(ARCHIVE - URLS "${URL}" + URLS "${DOWNLOAD_URL}" SHA512 "${_vdus_SHA512}" FILENAME "${_vdus_FILENAME}" + SILENT_EXIT ) + + if (EXISTS ${ARCHIVE}) + set(download_success 1) + endif() + + if (NOT download_success EQUAL 1) + foreach(SOURCEFORGE_MIRROR ${SOURCEFORGE_MIRRORS}) + set(DOWNLOAD_URL ${URL}/download?use_mirror=${SOURCEFORGE_MIRROR}) + message(STATUS "Trying mirror ${SOURCEFORGE_MIRROR}...") + vcpkg_download_distfile(ARCHIVE + URLS "${DOWNLOAD_URL}" + SHA512 "${_vdus_SHA512}" + FILENAME "${_vdus_FILENAME}" + SILENT_EXIT + ) + + if (EXISTS ${ARCHIVE}) + set(download_success 1) + break() + endif() + endforeach() + endif() + if (NOT download_success) + message(FATAL_ERROR [[ + Couldn't download source from any of the sourceforge mirrors, please check your network. + If you use a proxy, please set the HTTPS_PROXY and HTTP_PROXY environment + variables to "http[s]://user:password@your-proxy-ip-address:port/". + Otherwise, please submit an issue at https://github.com/Microsoft/vcpkg/issues + ]]) + endif() + vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE "${ARCHIVE}"