aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2020-03-09 09:19:05 -0700
committerRobert Schumacher <roschuma@microsoft.com>2020-03-09 09:19:05 -0700
commit6b55c62144b120f3c5fc0d3cd8163f309241a18a (patch)
tree125aa435dff79db545fc4b08ab0c3cb537bc725c /scripts
parente21400c7cae2c2df3a9dce6ef8e3c4bf7109aaac (diff)
parentd0b1f2a9e8ed1ea53d181d13c69e15cf775148db (diff)
downloadvcpkg-6b55c62144b120f3c5fc0d3cd8163f309241a18a.tar.gz
vcpkg-6b55c62144b120f3c5fc0d3cd8163f309241a18a.zip
Merge remote-tracking branch 'origin/master' into HEAD
Diffstat (limited to 'scripts')
-rw-r--r--scripts/boost/generate-ports.ps16
-rw-r--r--scripts/boost/post-source-stubs/python.cmake13
-rw-r--r--scripts/bootstrap.ps15
-rw-r--r--scripts/bootstrap.sh12
-rw-r--r--scripts/ci.baseline.txt82
-rw-r--r--scripts/cmake/vcpkg_apply_patches.cmake13
-rw-r--r--scripts/cmake/vcpkg_configure_cmake.cmake2
-rw-r--r--scripts/cmake/vcpkg_configure_meson.cmake44
-rw-r--r--scripts/cmake/vcpkg_fail_port_install.cmake135
-rw-r--r--scripts/cmake/vcpkg_find_acquire_program.cmake41
-rw-r--r--scripts/cmake/vcpkg_fixup_cmake_targets.cmake60
-rw-r--r--scripts/cmake/vcpkg_install_meson.cmake16
-rw-r--r--scripts/cmake/vcpkg_prettify_command.cmake2
-rw-r--r--scripts/vcpkgTools.xml8
14 files changed, 289 insertions, 150 deletions
diff --git a/scripts/boost/generate-ports.ps1 b/scripts/boost/generate-ports.ps1
index 36ddfe66e..ec32e53fb 100644
--- a/scripts/boost/generate-ports.ps1
+++ b/scripts/boost/generate-ports.ps1
@@ -46,9 +46,9 @@ function Generate()
$controlDeps = ($Depends | sort) -join ", "
$versionSuffix = ""
- if ($Name -eq "iostreams")
+ if ($PortName -eq "iostreams" -or $PortName -eq "python")
{
- $versionsuffix = "-1"
+ $versionSuffix = "-1"
}
mkdir "$portsDir/boost-$PortName" -erroraction SilentlyContinue | out-null
@@ -363,7 +363,7 @@ foreach ($library in $libraries)
if ($library -eq "python")
{
- $deps += @("python3 (!osx&!linux)")
+ $deps += @("python3")
$needsBuild = $true
}
elseif ($library -eq "iostreams")
diff --git a/scripts/boost/post-source-stubs/python.cmake b/scripts/boost/post-source-stubs/python.cmake
index 5610c489d..5e2ae2b76 100644
--- a/scripts/boost/post-source-stubs/python.cmake
+++ b/scripts/boost/post-source-stubs/python.cmake
@@ -1,5 +1,8 @@
-# Find Python. Can't use find_package here, but we already know where everything is
-file(GLOB PYTHON_INCLUDE_PATH "${CURRENT_INSTALLED_DIR}/include/python3.*")
-set(PYTHONLIBS_RELEASE "${CURRENT_INSTALLED_DIR}/lib")
-set(PYTHONLIBS_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib")
-string(REGEX REPLACE ".*python([0-9\.]+)$" "\\1" PYTHON_VERSION "${PYTHON_INCLUDE_PATH}")
+# Find Python3 executable
+vcpkg_find_acquire_program(PYTHON3)
+set(VCPKG_PYTHON_EXECUTABLE "${PYTHON3}")
+# Find Python3 libraries. Can't use find_package here, but we already know where everything is
+file(GLOB VCPKG_PYTHON_INCLUDE "${CURRENT_INSTALLED_DIR}/include/python3.*")
+set(VCPKG_PYTHON_LIBS_RELEASE "${CURRENT_INSTALLED_DIR}/lib")
+set(VCPKG_PYTHON_LIBS_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib")
+string(REGEX REPLACE ".*python([0-9\.]+).*" "\\1" VCPKG_PYTHON_VERSION "${VCPKG_PYTHON_INCLUDE}")
diff --git a/scripts/bootstrap.ps1 b/scripts/bootstrap.ps1
index 3817fd691..1eaf1c598 100644
--- a/scripts/bootstrap.ps1
+++ b/scripts/bootstrap.ps1
@@ -412,13 +412,16 @@ if ($ec -ne 0)
}
Write-Host "`nBuilding vcpkg.exe... done.`n"
-Write-Host @"
+if (-not $disableMetrics)
+{
+ Write-Host @"
Telemetry
---------
vcpkg collects usage data in order to help us improve your experience. The data collected by Microsoft is anonymous. You can opt-out of telemetry by re-running bootstrap-vcpkg.bat with -disableMetrics.
Read more about vcpkg telemetry at docs/about/privacy.md
"@
+}
Write-Verbose "Placing vcpkg.exe in the correct location"
diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh
index 0af6b37ff..bf8de7897 100644
--- a/scripts/bootstrap.sh
+++ b/scripts/bootstrap.sh
@@ -263,8 +263,10 @@ mkdir -p "$buildDir"
rm -rf "$vcpkgRootDir/vcpkg"
cp "$buildDir/vcpkg" "$vcpkgRootDir/"
-echo "Telemetry"
-echo "---------"
-echo "vcpkg collects usage data in order to help us improve your experience. The data collected by Microsoft is anonymous. You can opt-out of telemetry by re-running bootstrap-vcpkg.sh with -disableMetrics"
-echo "Read more about vcpkg telemetry at docs/about/privacy.md"
-echo "" \ No newline at end of file
+if ! [ "$vcpkgDisableMetrics" = "ON" ]; then
+ echo "Telemetry"
+ echo "---------"
+ echo "vcpkg collects usage data in order to help us improve your experience. The data collected by Microsoft is anonymous. You can opt-out of telemetry by re-running bootstrap-vcpkg.sh with -disableMetrics"
+ echo "Read more about vcpkg telemetry at docs/about/privacy.md"
+ echo ""
+fi
diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt
index 00bc030c3..d310daf71 100644
--- a/scripts/ci.baseline.txt
+++ b/scripts/ci.baseline.txt
@@ -7,10 +7,10 @@
## fail - the port does not build in the CI system.
## This is not necessarily the same as if a port is expected to build
## on a developers machine because it may fail due to the machine
-## configuration. When set to fail the CI system will still attempt
+## configuration. When set to fail the CI system will still attempt
## to build the port and will report a CI failure until this file is updated.
## skip - Do not build this port in the CI system.
-## This is added to ports that may be flaky or conflict with other
+## This is added to ports that may be flaky or conflict with other
## ports. Please comment for why a port is skipped so it can be
## removed when the issue is resolved.
## ignore - attempt to build the port, but do not fail the CI test if the
@@ -27,7 +27,7 @@
## x64-windows
## x64-windows-static
## x86-windows
-##
+##
# Add new items alphabetically
@@ -45,7 +45,6 @@
7zip:x64-osx=fail
7zip:x64-uwp=fail
abseil:arm-uwp=fail
-abseil:x64-uwp=fail
ace:arm64-windows=fail
ace:arm-uwp=fail
ace:x64-osx=fail
@@ -171,8 +170,6 @@ boost-locale:arm-uwp=fail
boost-locale:x64-uwp=fail
boost-log:arm-uwp=fail
boost-log:x64-uwp=fail
-boost-python:x64-linux=ignore
-boost-mpi:x64-linux=fail
boost-mpi:x64-osx=fail
boost-stacktrace:arm-uwp=fail
boost-stacktrace:x64-uwp=fail
@@ -187,8 +184,6 @@ box2d:x64-uwp=fail
box2d:arm-uwp=fail
breakpad:arm64-windows=fail
breakpad:x64-osx=fail
-brotli:arm-uwp=fail
-brotli:x64-uwp=fail
bullet3:arm64-windows=fail
bullet3:arm-uwp=fail
bullet3:x64-uwp=fail
@@ -293,8 +288,6 @@ cppmicroservices:x64-uwp=fail
cpp-netlib:arm-uwp=fail
cpp-netlib:x64-uwp=fail
cpp-netlib:x64-linux=ignore
-cpprestsdk:arm-uwp=fail
-cpprestsdk:x64-uwp=fail
cpp-taskflow:x64-osx=fail
cppunit:arm64-windows=fail
cppunit:arm-uwp=fail
@@ -320,8 +313,6 @@ cudnn:x64-uwp=fail
cudnn:x64-windows-static=fail
cudnn:x86-windows=fail
cutelyst2:x64-osx=fail
-darknet:arm-uwp=fail
-darknet:x64-uwp=fail
date:arm64-windows=fail
dbow2:x64-osx=fail
dcmtk:arm64-windows=fail
@@ -378,6 +369,11 @@ duilib:arm-uwp=fail
duilib:x64-linux=fail
duilib:x64-osx=fail
duilib:x64-uwp=fail
+
+# requires python@2 from brew, but that no longer exists
+# python2 EOL yay!
+duktape:x64-osx=skip
+
dxut:arm64-windows=fail
dxut:arm-uwp=fail
dxut:x64-linux=fail
@@ -430,6 +426,12 @@ fann:x64-linux=fail
fann:x64-osx=fail
fann:x64-uwp=fail
fann:x64-windows-static=fail
+farmhash:arm64-windows=fail
+farmhash:arm-uwp=fail
+farmhash:x64-uwp=fail
+farmhash:x64-windows=fail
+farmhash:x64-windows-static=fail
+farmhash:x86-windows=fail
fastcdr:x64-linux=fail
fastrtps:arm-uwp=fail
fastrtps:x64-linux=fail
@@ -573,7 +575,6 @@ graphite2:x64-uwp=fail
graphqlparser:arm-uwp=fail
graphqlparser:x64-uwp=fail
grpc:arm-uwp=fail
-grpc:x64-uwp=fail
gsl:arm-uwp=fail
gsl:x64-uwp=fail
gsoap:arm-uwp=ignore
@@ -592,6 +593,13 @@ halide:x64-windows-static=fail
hdf5:arm64-windows=fail
hdf5:arm-uwp=fail
hdf5:x64-uwp=fail
+healpix:x86-windows=fail
+healpix:x64-windows=fail
+healpix:x64-windows-static=fail
+healpix:x64-uwp=fail
+healpix:arm64-windows=fail
+healpix:arm-uwp=fail
+healpix:x64-osx=fail
hidapi:arm64-windows=fail
hidapi:arm-uwp=fail
hidapi:x64-linux=fail
@@ -663,9 +671,7 @@ jemalloc:x64-uwp=fail
jemalloc:x64-windows-static=fail
jinja2cpplight:arm-uwp=fail
jinja2cpplight:x64-uwp=fail
-kd-soap:x64-linux=fail
kd-soap:x64-osx=fail
-kd-soap:x64-windows-static=fail
keystone:arm64-windows=fail
keystone:arm-uwp=fail
keystone:x64-uwp=fail
@@ -715,6 +721,9 @@ libconfig:x64-osx=fail
libcopp:arm64-windows=fail
libcopp:arm-uwp=fail
libcopp:x64-windows-static=fail
+libcpuid:arm-uwp=fail
+libcpuid:x64-uwp=fail
+libcpuid:arm64-windows=fail
libdatrie:x64-linux=fail
libdatrie:x64-osx=fail
libdisasm:arm-uwp=fail
@@ -768,6 +777,7 @@ libhdfs3:x64-uwp=fail
libhdfs3:x64-windows=fail
libhdfs3:x64-windows-static=fail
libhdfs3:x86-windows=fail
+libhdfs3:x64-linux=fail
libhydrogen:arm64-windows=fail
libics:arm-uwp=fail
libics:x64-uwp=fail
@@ -828,7 +838,6 @@ libmodplug:arm-uwp=fail
libmodplug:x64-uwp=fail
libmupdf:x64-linux=fail
libmupdf:x64-osx=fail
-libmysql:x64-osx=fail
libmysql:x86-windows=fail
libnice:x64-linux=fail
libnice:x64-osx=fail
@@ -1142,6 +1151,9 @@ msmpi:x64-osx=fail
msmpi:x64-uwp=fail
muparser:arm-uwp=fail
muparser:x64-uwp=fail
+murmurhash:arm-uwp=fail
+murmurhash:x64-uwp=fail
+murmurhash:arm64-windows=fail
nana:arm-uwp=fail
nana:x64-linux=fail
nana:x64-osx=fail
@@ -1237,6 +1249,7 @@ opencensus-cpp:arm64-windows=fail
opencensus-cpp:x64-windows=fail
opencensus-cpp:x64-windows-static=fail
opencensus-cpp:x86-windows=fail
+opencensus-cpp:x64-uwp=fail
opencl:arm64-windows=fail
opencl:arm-uwp=fail
opencl:x64-uwp=fail
@@ -1318,9 +1331,13 @@ opusfile:x64-uwp=fail
orc:x64-linux=ignore
orocos-kdl:arm-uwp=fail
orocos-kdl:x64-uwp=fail
-osg:x64-linux=fail
-osg:x64-osx=fail
-osg:x64-windows-static=fail
+osg:x86-windows=skip
+osg:x64-windows=skip
+osgearth:x64-osx=fail
+osgearth:x64-linux=fail
+osgearth:x64-windows-static=fail
+osg-qt:x64-windows-static=fail
+osg-qt:x64-linux=fail
otl:x64-windows=ignore
otl:x64-windows-static=ignore
otl:x64-uwp=ignore
@@ -1532,6 +1549,13 @@ rpclib:x86-windows=ignore
rpclib:x64-windows-static=ignore
rttr:arm-uwp=fail
rttr:x64-uwp=fail
+rxspencer:x64-uwp=fail
+rxspencer:arm-uwp=fail
+ryu:arm-uwp=fail
+ryu:x64-uwp=fail
+ryu:x64-windows-static=fail
+ryu:x86-windows=fail
+ryu::arm64-windows=fail
scintilla:arm-uwp=fail
scintilla:x64-linux=fail
scintilla:x64-osx=fail
@@ -1597,6 +1621,11 @@ shogun:x86-windows = skip
simdjson:arm64-windows=fail
simdjson:arm-uwp=fail
simdjson:x86-windows=fail
+skia:arm64-windows=fail
+skia:arm-uwp=fail
+skia:x64-linux=fail
+skia:x64-uwp=fail
+skia:x86-windows=fail
slikenet:arm-uwp=fail
slikenet:x64-uwp=fail
smpeg2:arm-uwp=fail
@@ -1651,6 +1680,9 @@ stormlib:arm-uwp=fail
stormlib:x64-uwp=fail
stxxl:arm-uwp=fail
stxxl:x64-uwp=fail
+superlu:arm64-windows=fail
+superlu:arm-uwp=fail
+superlu:x64-uwp=fail
systemc:arm64-windows=fail
systemc:arm-uwp=fail
systemc:x64-uwp=fail
@@ -1701,14 +1733,8 @@ tinkerforge:arm-uwp=fail
tinkerforge:x64-uwp=fail
tinyexif:arm-uwp=fail
tinyexif:x64-uwp=fail
-tinyfiledialogs:arm64-windows=fail
tinyfiledialogs:arm-uwp=fail
-tinyfiledialogs:x64-linux=fail
tinyfiledialogs:x64-uwp=fail
-tinyfiledialogs:x64-windows=fail
-tinyfiledialogs:x64-windows-static=fail
-tinyfiledialogs:x86-windows=fail
-tinyfiledialogs:x64-osx=fail
tinynpy:x64-linux=ignore
tiny-process-library:arm-uwp=fail
tiny-process-library:x64-uwp=fail
@@ -1737,6 +1763,12 @@ torch-th:x64-uwp=fail
torch-th:x64-windows-static=fail
tre:x64-osx=fail
treehopper:x64-windows-static=fail
+turbobase64:arm64-windows=fail
+turbobase64:arm-uwp=fail
+turbobase64:x64-uwp=fail
+turbobase64:x64-windows=fail
+turbobase64:x64-windows-static=fail
+turbobase64:x86-windows=fail
unicorn:arm64-windows=fail
unicorn:arm-uwp=fail
unicorn:x64-linux=fail
diff --git a/scripts/cmake/vcpkg_apply_patches.cmake b/scripts/cmake/vcpkg_apply_patches.cmake
index 8957fca27..9088def1b 100644
--- a/scripts/cmake/vcpkg_apply_patches.cmake
+++ b/scripts/cmake/vcpkg_apply_patches.cmake
@@ -1,6 +1,6 @@
## # vcpkg_apply_patches
##
-## Apply a set of patches to a source tree.
+## Apply a set of patches to a source tree. This function is deprecated in favor of the `PATCHES` argument to `vcpkg_from_github()` et al.
##
## ## Usage
## ```cmake
@@ -27,10 +27,8 @@
##
## ## Examples
##
-## * [boost](https://github.com/Microsoft/vcpkg/blob/master/ports/boost/portfile.cmake)
-## * [freetype](https://github.com/Microsoft/vcpkg/blob/master/ports/freetype/portfile.cmake)
-## * [libpng](https://github.com/Microsoft/vcpkg/blob/master/ports/libpng/portfile.cmake)
-
+## * [libbson](https://github.com/Microsoft/vcpkg/blob/master/ports/libbson/portfile.cmake)
+## * [gdal](https://github.com/Microsoft/vcpkg/blob/master/ports/gdal/portfile.cmake)
function(vcpkg_apply_patches)
cmake_parse_arguments(_ap "QUIET" "SOURCE_PATH" "PATCHES" ${ARGN})
@@ -43,13 +41,14 @@ function(vcpkg_apply_patches)
_execute_process(
COMMAND ${GIT} --work-tree=. --git-dir=.git apply "${ABSOLUTE_PATCH}" --ignore-whitespace --whitespace=nowarn --verbose
OUTPUT_FILE ${CURRENT_BUILDTREES_DIR}/${LOGNAME}-out.log
- ERROR_FILE ${CURRENT_BUILDTREES_DIR}/${LOGNAME}-err.log
+ ERROR_VARIABLE error
WORKING_DIRECTORY ${_ap_SOURCE_PATH}
RESULT_VARIABLE error_code
)
+ file(WRITE "${CURRENT_BUILDTREES_DIR}/${LOGNAME}-err.log" "${error}")
if(error_code AND NOT _ap_QUIET)
- message(FATAL_ERROR "Applying patch failed. Patch needs to be updated to work with source being used by vcpkg!")
+ message(FATAL_ERROR "Applying patch failed. ${error}")
endif()
math(EXPR PATCHNUM "${PATCHNUM}+1")
diff --git a/scripts/cmake/vcpkg_configure_cmake.cmake b/scripts/cmake/vcpkg_configure_cmake.cmake
index 260f2471e..9766bd267 100644
--- a/scripts/cmake/vcpkg_configure_cmake.cmake
+++ b/scripts/cmake/vcpkg_configure_cmake.cmake
@@ -38,7 +38,7 @@
## Specifies the precise generator to use.
##
## This is useful if some project-specific buildsystem has been wrapped in a cmake script that won't perform an actual build.
-## If used for this purpose, it should be set to "NMake Makefiles".
+## If used for this purpose, it should be set to `"NMake Makefiles"`.
##
## ### OPTIONS
## Additional options passed to CMake during the configuration.
diff --git a/scripts/cmake/vcpkg_configure_meson.cmake b/scripts/cmake/vcpkg_configure_meson.cmake
index 6dfb266cf..bbff5e9f6 100644
--- a/scripts/cmake/vcpkg_configure_meson.cmake
+++ b/scripts/cmake/vcpkg_configure_meson.cmake
@@ -1,3 +1,38 @@
+## # vcpkg_configure_meson
+##
+## Configure Meson for Debug and Release builds of a project.
+##
+## ## Usage
+## ```cmake
+## vcpkg_configure_meson(
+## SOURCE_PATH <${SOURCE_PATH}>
+## [OPTIONS <-DUSE_THIS_IN_ALL_BUILDS=1>...]
+## [OPTIONS_RELEASE <-DOPTIMIZE=1>...]
+## [OPTIONS_DEBUG <-DDEBUGGABLE=1>...]
+## )
+## ```
+##
+## ## Parameters
+## ### SOURCE_PATH
+## Specifies the directory containing the `meson.build`.
+## By convention, this is usually set in the portfile as the variable `SOURCE_PATH`.
+##
+## ### OPTIONS
+## Additional options passed to Meson during the configuration.
+##
+## ### OPTIONS_RELEASE
+## Additional options passed to Meson during the Release configuration. These are in addition to `OPTIONS`.
+##
+## ### OPTIONS_DEBUG
+## Additional options passed to Meson during the Debug configuration. These are in addition to `OPTIONS`.
+##
+## ## Notes
+## This command supplies many common arguments to Meson. To see the full list, examine the source.
+##
+## ## Examples
+##
+## * [fribidi](https://github.com/Microsoft/vcpkg/blob/master/ports/fribidi/portfile.cmake)
+## * [libepoxy](https://github.com/Microsoft/vcpkg/blob/master/ports/libepoxy/portfile.cmake)
function(vcpkg_configure_meson)
cmake_parse_arguments(_vcm "" "SOURCE_PATH" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE" ${ARGN})
@@ -5,16 +40,19 @@ function(vcpkg_configure_meson)
file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
# use the same compiler options as in vcpkg_configure_cmake
+ if(NOT VCPKG_TARGET_IS_WINDOWS)
+ message(FATAL_ERROR "vcpkg_configure_meson() currently only supports windows targets.")
+ endif()
set(MESON_COMMON_CFLAGS "${MESON_COMMON_CFLAGS} /DWIN32 /D_WINDOWS /W3 /utf-8")
set(MESON_COMMON_CXXFLAGS "${MESON_COMMON_CXXFLAGS} /DWIN32 /D_WINDOWS /W3 /utf-8 /GR /EHsc")
- if(DEFINED VCPKG_CRT_LINKAGE AND VCPKG_CRT_LINKAGE STREQUAL dynamic)
+ if(DEFINED VCPKG_CRT_LINKAGE AND VCPKG_CRT_LINKAGE STREQUAL "dynamic")
set(MESON_DEBUG_CFLAGS "${MESON_DEBUG_CFLAGS} /D_DEBUG /MDd /Z7 /Ob0 /Od /RTC1")
set(MESON_DEBUG_CXXFLAGS "${MESON_DEBUG_CXXFLAGS} /D_DEBUG /MDd /Z7 /Ob0 /Od /RTC1")
set(MESON_RELEASE_CFLAGS "${MESON_RELEASE_CFLAGS} /MD /O2 /Gy /DNDEBUG /Z7")
set(MESON_RELEASE_CXXFLAGS "${MESON_RELEASE_CXXFLAGS} /MD /O2 /Gy /DNDEBUG /Z7")
- elseif(DEFINED VCPKG_CRT_LINKAGE AND VCPKG_CRT_LINKAGE STREQUAL static)
+ elseif(DEFINED VCPKG_CRT_LINKAGE AND VCPKG_CRT_LINKAGE STREQUAL "static")
set(MESON_DEBUG_CFLAGS "${MESON_DEBUG_CFLAGS} /D_DEBUG /MTd /Z7 /Ob0 /Od /RTC1")
set(MESON_DEBUG_CXXFLAGS "${MESON_DEBUG_CXXFLAGS} /D_DEBUG /MTd /Z7 /Ob0 /Od /RTC1")
@@ -28,7 +66,7 @@ function(vcpkg_configure_meson)
# select meson cmd-line options
list(APPEND _vcm_OPTIONS -Dcmake_prefix_path=${CURRENT_INSTALLED_DIR})
list(APPEND _vcm_OPTIONS --buildtype plain --backend ninja --wrap-mode nodownload)
- if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
list(APPEND _vcm_OPTIONS --default-library shared)
else()
list(APPEND _vcm_OPTIONS --default-library static)
diff --git a/scripts/cmake/vcpkg_fail_port_install.cmake b/scripts/cmake/vcpkg_fail_port_install.cmake
index 0fdacb639..cf8777506 100644
--- a/scripts/cmake/vcpkg_fail_port_install.cmake
+++ b/scripts/cmake/vcpkg_fail_port_install.cmake
@@ -1,92 +1,95 @@
## # vcpkg_fail_port_install
##
-## Fails the current portfile with a (default) error message
+## Checks common requirements and fails the current portfile with a (default) error message
##
## ## Usage
## ```cmake
-## vcpkg_fail_port_install([MESSAGE <message>] [ON_TARGET <target1> [<target2> ...]]
-## [ON_ARCH <arch1> [<arch2> ...]]
-## [ON_CRT_LINKAGE <link1> [<link2> ...]])
-## [ON_LIBRARY_LINKAGE <linklib1> [<linklib2> ...]])
+## vcpkg_fail_port_install(
+## [ALWAYS]
+## [MESSAGE <"Reason for failure">]
+## [ON_TARGET <Windows> [<OSX> ...]]
+## [ON_ARCH <x64> [<arm> ...]]
+## [ON_CRT_LINKAGE <static> [<dynamic> ...]])
+## [ON_LIBRARY_LINKAGE <static> [<dynamic> ...]]
+## )
## ```
##
## ## Parameters
## ### MESSAGE
-## Additional failure message. If non is given a default message will be displayed depending on the failure condition
+## Additional failure message. If none is given, a default message will be displayed depending on the failure condition.
##
## ### ALWAYS
-## will always fail early
+## Will always fail early
##
## ### ON_TARGET
-## targets for which the build should fail early. Valid targets are <target> from VCPKG_IS_TARGET_<target> (see vcpkg_common_definitions.cmake)
+## Targets for which the build should fail early. Valid targets are `<target>` from `VCPKG_IS_TARGET_<target>` (see `vcpkg_common_definitions.cmake`).
##
## ### ON_ARCH
-## architecture for which the build should fail early.
+## Architecture for which the build should fail early.
##
## ### ON_CRT_LINKAGE
## CRT linkage for which the build should fail early.
##
## ### ON_LIBRARY_LINKAGE
-## library linkage for which the build should fail early.
+## Library linkage for which the build should fail early.
##
## ## Examples
##
## * [aws-lambda-cpp](https://github.com/Microsoft/vcpkg/blob/master/ports/aws-lambda-cpp/portfile.cmake)
function(vcpkg_fail_port_install)
- cmake_parse_arguments(PARSE_ARGV 0 _csc "ALWAYS" "MESSAGE" "ON_TARGET;ON_ARCH;ON_CRT_LINKAGE;ON_LIBRARY_LINKAGE")
- if(DEFINED _csc_UNPARSED_ARGUMENTS)
- message(FATAL_ERROR "Unknown arguments passed to vcpkg_fail_port_install. Please correct the portfile!")
- endif()
- if(DEFINED _csc_MESSAGE)
- set(_csc_MESSAGE "${_csc_MESSAGE}\n")
- else()
- set(_csc_MESSAGE "")
- endif()
-
- unset(_fail_port)
- #Target fail check
- if(DEFINED _csc_ON_TARGET)
- foreach(_target ${_csc_ON_TARGET})
- string(TOUPPER ${_target} _target_upper)
- if(VCPKG_TARGET_IS_${_target_upper})
- set(_fail_port TRUE)
- set(_csc_MESSAGE "${_csc_MESSAGE}Target '${_target}' not supported by ${PORT}!\n")
- endif()
- endforeach()
- endif()
-
- #Architecture fail check
- if(DEFINED _csc_ON_ARCH)
- foreach(_arch ${_csc_ON_ARCH})
- if(${VCPKG_TARGET_ARCHITECTURE} MATCHES ${_arch})
- set(_fail_port TRUE)
- set(_csc_MESSAGE "${_csc_MESSAGE}Architecture '${_arch}' not supported by ${PORT}!\n")
- endif()
- endforeach()
- endif()
-
- #CRT linkage fail check
- if(DEFINED _csc_ON_CRT_LINKAGE)
- foreach(_crt_link ${_csc_ON_CRT_LINKAGE})
- if("${VCPKG_CRT_LINKAGE}" MATCHES "${_crt_link}")
- set(_fail_port TRUE)
- set(_csc_MESSAGE "${_csc_MESSAGE}CRT linkage '${VCPKG_CRT_LINKAGE}' not supported by ${PORT}!\n")
- endif()
- endforeach()
- endif()
-
- #Library linkage fail check
- if(DEFINED _csc_ON_LIBRARY_LINKAGE)
- foreach(_lib_link ${_csc_ON_LIBRARY_LINKAGE})
- if("${VCPKG_LIBRARY_LINKAGE}" MATCHES "${_lib_link}")
- set(_fail_port TRUE)
- set(_csc_MESSAGE "${_csc_MESSAGE}Library linkage '${VCPKG_LIBRARY_LINKAGE}' not supported by ${PORT}!\n")
- endif()
- endforeach()
- endif()
-
- if(_fail_port OR _csc_ALWAYS)
- message(FATAL_ERROR ${_csc_MESSAGE})
- endif()
+ cmake_parse_arguments(PARSE_ARGV 0 _csc "ALWAYS" "MESSAGE" "ON_TARGET;ON_ARCH;ON_CRT_LINKAGE;ON_LIBRARY_LINKAGE")
+ if(DEFINED _csc_UNPARSED_ARGUMENTS)
+ message(FATAL_ERROR "Unknown arguments passed to vcpkg_fail_port_install. Please correct the portfile!")
+ endif()
+ if(DEFINED _csc_MESSAGE)
+ set(_csc_MESSAGE "${_csc_MESSAGE}\n")
+ else()
+ set(_csc_MESSAGE "")
+ endif()
-endfunction() \ No newline at end of file
+ unset(_fail_port)
+ #Target fail check
+ if(DEFINED _csc_ON_TARGET)
+ foreach(_target ${_csc_ON_TARGET})
+ string(TOUPPER ${_target} _target_upper)
+ if(VCPKG_TARGET_IS_${_target_upper})
+ set(_fail_port TRUE)
+ set(_csc_MESSAGE "${_csc_MESSAGE}Target '${_target}' not supported by ${PORT}!\n")
+ endif()
+ endforeach()
+ endif()
+
+ #Architecture fail check
+ if(DEFINED _csc_ON_ARCH)
+ foreach(_arch ${_csc_ON_ARCH})
+ if(${VCPKG_TARGET_ARCHITECTURE} MATCHES ${_arch})
+ set(_fail_port TRUE)
+ set(_csc_MESSAGE "${_csc_MESSAGE}Architecture '${_arch}' not supported by ${PORT}!\n")
+ endif()
+ endforeach()
+ endif()
+
+ #CRT linkage fail check
+ if(DEFINED _csc_ON_CRT_LINKAGE)
+ foreach(_crt_link ${_csc_ON_CRT_LINKAGE})
+ if("${VCPKG_CRT_LINKAGE}" MATCHES "${_crt_link}")
+ set(_fail_port TRUE)
+ set(_csc_MESSAGE "${_csc_MESSAGE}CRT linkage '${VCPKG_CRT_LINKAGE}' not supported by ${PORT}!\n")
+ endif()
+ endforeach()
+ endif()
+
+ #Library linkage fail check
+ if(DEFINED _csc_ON_LIBRARY_LINKAGE)
+ foreach(_lib_link ${_csc_ON_LIBRARY_LINKAGE})
+ if("${VCPKG_LIBRARY_LINKAGE}" MATCHES "${_lib_link}")
+ set(_fail_port TRUE)
+ set(_csc_MESSAGE "${_csc_MESSAGE}Library linkage '${VCPKG_LIBRARY_LINKAGE}' not supported by ${PORT}!\n")
+ endif()
+ endforeach()
+ endif()
+
+ if(_fail_port OR _csc_ALWAYS)
+ message(FATAL_ERROR ${_csc_MESSAGE})
+ endif()
+endfunction()
diff --git a/scripts/cmake/vcpkg_find_acquire_program.cmake b/scripts/cmake/vcpkg_find_acquire_program.cmake
index a525dbc11..ed5e010e0 100644
--- a/scripts/cmake/vcpkg_find_acquire_program.cmake
+++ b/scripts/cmake/vcpkg_find_acquire_program.cmake
@@ -14,20 +14,25 @@
## The current list of programs includes:
##
## - 7Z
+## - ARIA2 (Downloader)
## - BISON
+## - DARK
+## - DOXYGEN
## - FLEX
## - GASPREPROCESSOR
+## - GPERF
## - PERL
## - PYTHON2
## - PYTHON3
+## - GIT
## - GO
## - JOM
## - MESON
## - NASM
## - NINJA
## - NUGET
+## - SCONS
## - YASM
-## - ARIA2 (Downloader)
##
## Note that msys2 has a dedicated helper function: [`vcpkg_acquire_msys`](vcpkg_acquire_msys.md).
##
@@ -82,6 +87,20 @@ function(vcpkg_find_acquire_program VAR)
set(_vfa_RENAME "yasm.exe")
set(NOEXTRACT ON)
set(HASH c1945669d983b632a10c5ff31e86d6ecbff143c3d8b2c433c0d3d18f84356d2b351f71ac05fd44e5403651b00c31db0d14615d7f9a6ecce5750438d37105c55b)
+ elseif(VAR MATCHES "GIT")
+ set(PROGNAME git)
+ if(CMAKE_HOST_WIN32)
+ set(SUBDIR "git-2.25.1-1-windows")
+ set(URL "https://github.com/git-for-windows/git/releases/download/v2.25.1.windows.1/PortableGit-2.25.1-32-bit.7z.exe")
+ set(ARCHIVE "PortableGit-2.25.1-32-bit.7z.exe")
+ set(HASH 222d6e384ecae5841cb02dc004c4b3f56659d19b662bc93ab531df844c9477c9717c4a1adfb8bc2d3159678238fa4c79ccbdcb5c116eea5eccd652f4b483359e)
+ set(PATHS
+ "${DOWNLOADS}/tools/${SUBDIR}/mingw32/bin"
+ "${DOWNLOADS}/tools/git/${SUBDIR}/mingw32/bin")
+ else()
+ set(BREW_PACKAGE_NAME "git")
+ set(APT_PACKAGE_NAME "git")
+ endif()
elseif(VAR MATCHES "GO")
set(PROGNAME go)
set(PATHS ${DOWNLOADS}/tools/go/go/bin)
@@ -188,10 +207,10 @@ function(vcpkg_find_acquire_program VAR)
else()
set(SCRIPTNAME meson)
endif()
- set(PATHS ${DOWNLOADS}/tools/meson/meson-0.52.0)
- set(URL "https://github.com/mesonbuild/meson/archive/0.52.0.zip")
- set(ARCHIVE "meson-0.52.0.zip")
- set(HASH 2f2657599f19933c02be2a1faa508d5b2d137fba1ccc9d68a6b6d04b8d21163c33220c673643fa444fa86e94ba010cf8a851b9e6abc096559a7c735f5099a180)
+ set(PATHS ${DOWNLOADS}/tools/meson/meson-0.53.2)
+ set(URL "https://github.com/mesonbuild/meson/archive/0.53.2.zip")
+ set(ARCHIVE "meson-0.53.2.zip")
+ set(HASH 86c3347395528d2358c9514a76ec8a60908f8abadece5ecb9bac633ea735d4b40a27683002db017f06fa48ec68ea1bfe64d216fa17a54d6d42c8bc45f55606b2)
elseif(VAR MATCHES "FLEX")
if(CMAKE_HOST_WIN32)
set(PROGNAME win_flex)
@@ -277,6 +296,12 @@ function(vcpkg_find_acquire_program VAR)
set(ARCHIVE "bazel-${BAZEL_VERSION}-linux-x86_64")
set(NOEXTRACT ON)
set(HASH db4a583cf2996aeb29fd008261b12fe39a4a5faf0fbf96f7124e6d3ffeccf6d9655d391378e68dd0915bc91c9e146a51fd9661963743857ca25179547feceab1)
+ elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
+ set(_vfa_SUPPORTED ON)
+ set(URL "https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-darwin-x86_64")
+ set(ARCHIVE "bazel-${BAZEL_VERSION}-darwin-x86_64")
+ set(NOEXTRACT ON)
+ set(HASH 420a37081e6ee76441b0d92ff26d1715ce647737ce888877980d0665197b5a619d6afe6102f2e7edfb5062c9b40630a10b2539585e35479b780074ada978d23c)
else()
set(URL "https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-windows-x86_64.zip")
set(ARCHIVE "bazel-${BAZEL_VERSION}-windows-x86_64.zip")
@@ -339,6 +364,12 @@ function(vcpkg_find_acquire_program VAR)
COMMAND msiexec /a ${ARCHIVE_NATIVE_PATH} /qn TARGETDIR=${DESTINATION_NATIVE_PATH}
WORKING_DIRECTORY ${DOWNLOADS}
)
+ elseif("${ARCHIVE_PATH}" MATCHES ".7z.exe$")
+ vcpkg_find_acquire_program(7Z)
+ _execute_process(
+ COMMAND ${7Z} x "${ARCHIVE_PATH}" "-o${PROG_PATH_SUBDIR}" -y -bso0 -bsp0
+ WORKING_DIRECTORY ${PROG_PATH_SUBDIR}
+ )
else()
_execute_process(
COMMAND ${CMAKE_COMMAND} -E tar xzf ${ARCHIVE_PATH}
diff --git a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake
index d72381be5..b2faa4abe 100644
--- a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake
+++ b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake
@@ -1,24 +1,42 @@
-#.rst:
-# .. command:: vcpkg_fixup_cmake_targets
-#
-# Transforms all /debug/share/<port>/*targets-debug.cmake files and move them to /share/<port>.
-# Removes all /debug/share/<port>/*targets.cmake and /debug/share/<port>/*config.cmake
-#
-# Transforms all references matching /bin/*.exe to /tools/<port>/*.exe on Windows
-# Transforms all references matching /bin/* to /tools/<port>/* on other platforms
-#
-# Fixes ${_IMPORT_PREFIX} in auto generated targets to be one folder deeper.
-# Replaces ${CURRENT_INSTALLED_DIR} with ${_IMPORT_PREFIX} in configs/targets.
-#
-# ::
-# vcpkg_fixup_cmake_targets([CONFIG_PATH <config_path>])
-#
-# ``CONFIG_PATH``
-# *.cmake files subdirectory (like "lib/cmake/${PORT}").
-#
-# Example usage:
-# vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/myPort")
-
+## # vcpkg_fixup_cmake_targets
+##
+## Merge release and debug CMake targets and configs to support multiconfig generators.
+##
+## Additionally corrects common issues with targets, such as absolute paths and incorrectly placed binaries.
+##
+## ## Usage
+## ```cmake
+## vcpkg_fixup_cmake_targets([CONFIG_PATH <share/${PORT}>] [TARGET_PATH <share/${PORT}>])
+## ```
+##
+## ## Parameters
+##
+## ### CONFIG_PATH
+## Subpath currently containing `*.cmake` files subdirectory (like `lib/cmake/${PORT}`). Should be relative to `${CURRENT_PACKAGES_DIR}`.
+##
+## Defaults to `share/${PORT}`.
+##
+## ### TARGET_PATH
+## Subpath to which the above `*.cmake` files should be moved. Should be relative to `${CURRENT_PACKAGES_DIR}`.
+## This needs to be specified if the port name differs from the `find_package()` name.
+##
+## Defaults to `share/${PORT}`.
+##
+## ## Notes
+## Transform all `/debug/<CONFIG_PATH>/*targets-debug.cmake` files and move them to `/<TARGET_PATH>`.
+## Removes all `/debug/<CONFIG_PATH>/*targets.cmake` and `/debug/<CONFIG_PATH>/*config.cmake`.
+##
+## Transform all references matching `/bin/*.exe` to `/tools/<port>/*.exe` on Windows.
+## Transform all references matching `/bin/*` to `/tools/<port>/*` on other platforms.
+##
+## Fix `${_IMPORT_PREFIX}` in auto generated targets to be one folder deeper.
+## Replace `${CURRENT_INSTALLED_DIR}` with `${_IMPORT_PREFIX}` in configs and targets.
+##
+## ## Examples
+##
+## * [concurrentqueue](https://github.com/Microsoft/vcpkg/blob/master/ports/concurrentqueue/portfile.cmake)
+## * [curl](https://github.com/Microsoft/vcpkg/blob/master/ports/curl/portfile.cmake)
+## * [nlohmann-json](https://github.com/Microsoft/vcpkg/blob/master/ports/nlohmann-json/portfile.cmake)
function(vcpkg_fixup_cmake_targets)
cmake_parse_arguments(_vfct "" "CONFIG_PATH;TARGET_PATH" "" ${ARGN})
diff --git a/scripts/cmake/vcpkg_install_meson.cmake b/scripts/cmake/vcpkg_install_meson.cmake
index 7ab9d55b3..edc6c7302 100644
--- a/scripts/cmake/vcpkg_install_meson.cmake
+++ b/scripts/cmake/vcpkg_install_meson.cmake
@@ -1,7 +1,18 @@
+## # vcpkg_install_meson
+##
+## Builds a meson project previously configured with `vcpkg_configure_meson()`.
+##
+## ## Usage
+## ```cmake
+## vcpkg_install_meson()
+## ```
+##
+## ## Examples
+##
+## * [fribidi](https://github.com/Microsoft/vcpkg/blob/master/ports/fribidi/portfile.cmake)
+## * [libepoxy](https://github.com/Microsoft/vcpkg/blob/master/ports/libepoxy/portfile.cmake)
function(vcpkg_install_meson)
-
vcpkg_find_acquire_program(NINJA)
-
unset(ENV{DESTDIR}) # installation directory was already specified with '--prefix' option
message(STATUS "Package ${TARGET_TRIPLET}-rel")
@@ -17,5 +28,4 @@ function(vcpkg_install_meson)
WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
LOGNAME package-${TARGET_TRIPLET}-dbg
)
-
endfunction()
diff --git a/scripts/cmake/vcpkg_prettify_command.cmake b/scripts/cmake/vcpkg_prettify_command.cmake
index 9d9a2b798..ca04f9120 100644
--- a/scripts/cmake/vcpkg_prettify_command.cmake
+++ b/scripts/cmake/vcpkg_prettify_command.cmake
@@ -4,7 +4,7 @@
##
## ## Usage
## ```cmake
-## vcpkg_prettify_command()
+## vcpkg_prettify_command(<INPUT_VAR> <OUTPUT_VAR>)
## ```
##
## ## Examples
diff --git a/scripts/vcpkgTools.xml b/scripts/vcpkgTools.xml
index 8f90ce8dc..01073fdbb 100644
--- a/scripts/vcpkgTools.xml
+++ b/scripts/vcpkgTools.xml
@@ -29,11 +29,11 @@
<archiveName>cmake-3.12.4-FreeBSD-x86_64.tar.gz</archiveName>
</tool>
<tool name="git" os="windows">
- <version>2.21.0-1</version>
+ <version>2.25.1-1</version>
<exeRelativePath>mingw32\bin\git.exe</exeRelativePath>
- <url>https://github.com/git-for-windows/git/releases/download/v2.21.0.windows.1/PortableGit-2.21.0-32-bit.7z.exe</url>
- <sha512>d5600fc35e91cfa84e3547e38a9da9798cf0a53810cc35ac9a0dee671c4ef0e9fbcbe3eda9c790f8db4eafce7ce58d7a168d28938a66cdcca000bf5a7f5267c1</sha512>
- <archiveName>PortableGit-2.21.0-32-bit.7z.exe</archiveName>
+ <url>https://github.com/git-for-windows/git/releases/download/v2.25.1.windows.1/PortableGit-2.25.1-32-bit.7z.exe</url>
+ <sha512>222d6e384ecae5841cb02dc004c4b3f56659d19b662bc93ab531df844c9477c9717c4a1adfb8bc2d3159678238fa4c79ccbdcb5c116eea5eccd652f4b483359e</sha512>
+ <archiveName>PortableGit-2.25.1-32-bit.7z.exe</archiveName>
</tool>
<tool name="git" os="linux">
<version>2.7.4</version>