diff --git a/CHANGELOG.md b/CHANGELOG.md
index ed5dbbe5a61..499023e9d20 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,1318 @@
+vcpkg (2019.6.30)
+---
+#### Total port count: 1068
+#### Total port count per triplet (tested):
+|triplet|ports available|
+|---|---|
+|**x64-windows**|1006|
+|x86-windows|977|
+|x64-windows-static|895|
+|**x64-osx**|823|
+|**x64-linux**|755|
+|arm64-windows|654|
+|x64-uwp|532|
+|arm-uwp|504|
+
+#### The following commands and options have been updated:
+- [--overlay-ports](docs/specifications/ports-overlay.md) ***[NEW OPTION]***
+ - Specify directories to be used when searching for ports
+ - [(#6981)](https://github.com/Microsoft/vcpkg/pull/6981) Ports Overlay partial implementation
+ - [(#7002)](https://github.com/Microsoft/vcpkg/pull/7002) [--overlay-ports] Show location of overriden ports during install plan
+- --overlay-triplets ***[NEW OPTION]***
+ - Specify directories containing triplets files
+ - [(#7053)](https://github.com/Microsoft/vcpkg/pull/7053) Triplets Overlay Implementation
+- integrate
+ - [(#7095)](https://github.com/Microsoft/vcpkg/pull/7095) [vcpkg-integrate] Improve spelling, help, and autocomplete.
+
+#### The following documentation has been updated:
+- [Maintainer Guidelines and Policies](docs/maintainers/maintainer-guide.md) ***[NEW]***
+ - [(#6871)](https://github.com/Microsoft/vcpkg/pull/6871) [docs] Add maintainer guidelines
+- [Ports Overlay](docs/specifications/ports-overlay.md) ***[NEW]***
+ - [(#6981)](https://github.com/Microsoft/vcpkg/pull/6981) Ports Overlay partial implementation
+- [vcpkg_check_features](docs/maintainers/vcpkg_check_features.md) ***[NEW]***
+ - [(#6958)](https://github.com/Microsoft/vcpkg/pull/6958) [vcpkg] Add vcpkg_check_features
+ - [(#7091)](https://github.com/Microsoft/vcpkg/pull/7091) [vcpkg] Update vcpkg_check_features document
+- [vcpkg_execute_build_process](docs/maintainers/vcpkg_execute_build_process.md) ***[NEW]***
+ - [(#7039)](https://github.com/Microsoft/vcpkg/pull/7039) [docs]Update cmake docs
+- [CONTROL files](docs/maintainers/control-files.md#Homepage)
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+ - [(#6871)](https://github.com/Microsoft/vcpkg/pull/6871) [docs] Add maintainer guidelines
+- [index](docs/index.md)
+ - [(#6871)](https://github.com/Microsoft/vcpkg/pull/6871) [docs] Add maintainer guidelines
+- [Portfile helper functions](docs/maintainers/portfile-functions.md)
+ - [(#7039)](https://github.com/Microsoft/vcpkg/pull/7039) [docs]Update cmake docs
+- [vcpkg_configure_cmake](docs/maintainers/vcpkg_configure_cmake.md)
+ - [(#7074)](https://github.com/Microsoft/vcpkg/pull/7074) [vcpkg_configure_cmake] Add NO_CHARSET_FLAG option
+
+#### The following *remarkable* changes have been made to vcpkg's infrastructure:
+- [vcpkg_check_features.cmake](docs/maintainers/vcpkg_check_features.md)
+ - New portfile.cmake function for vcpkg contributors; Check if one or more features are a part of the package installation
+ - [(#6958)](https://github.com/Microsoft/vcpkg/pull/6958) [vcpkg] Add vcpkg_check_features
+ - [(#7091)](https://github.com/Microsoft/vcpkg/pull/7091) [vcpkg] Update vcpkg_check_features document
+- [CONTROL file Homepage field](docs/maintainers/control-files.md#Homepage)
+ - CONTROL files may now contain a 'Homepage' field which links to the port's official website
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+#### The following *additional* changes have been made to vcpkg's infrastructure:
+- [(#4942)](https://github.com/Microsoft/vcpkg/pull/4942) Update applocal.ps1
+- [(#5630)](https://github.com/Microsoft/vcpkg/pull/5630) [scripts] Fix vcpkg_fixup_cmake on non Windows platforms
+- [(#6383)](https://github.com/Microsoft/vcpkg/pull/6383) [vcpkg] update python3 to 3.7.3 on windows
+- [(#6590)](https://github.com/Microsoft/vcpkg/pull/6590) ffmpeg: enable arm/arm64 windows support
+- [(#6653)](https://github.com/Microsoft/vcpkg/pull/6653) [vcpkg] Fix install from head when no-downloads
+- [(#6667)](https://github.com/Microsoft/vcpkg/pull/6667) make meson not download things
+- [(#6695)](https://github.com/Microsoft/vcpkg/pull/6695) [icu] Enable parallel builds
+- [(#6704)](https://github.com/Microsoft/vcpkg/pull/6704) [DOXYGEN]Upgrade doxygen to 1.8.15.
+- [(#6788)](https://github.com/Microsoft/vcpkg/pull/6788) [vcpkg] Bootstrap should use Get-CimInstance instead of Get-WmiObject.
+- [(#6826)](https://github.com/Microsoft/vcpkg/pull/6826) [vcpkg] Apply clang format
+- [(#6846)](https://github.com/Microsoft/vcpkg/pull/6846) Introduce an easier way to identify target systems...
+- [(#6867)](https://github.com/Microsoft/vcpkg/pull/6867) Protect #pragma comment(lib, "foo") with _WIN32 checks
+- [(#6872)](https://github.com/Microsoft/vcpkg/pull/6872) set CMAKE_SYSTEM_PROCESSOR in Linux
+- [(#6880)](https://github.com/Microsoft/vcpkg/pull/6880) retry on flaky linker
+- [(#6919)](https://github.com/Microsoft/vcpkg/pull/6919) [vcpkg] Improve vcpkg::Files::Filesystem error handling
+- [(#6943)](https://github.com/Microsoft/vcpkg/pull/6943) address qhull flaky build with msvc linker
+- [(#6952)](https://github.com/Microsoft/vcpkg/pull/6952) bootstrap.sh: Retry up to 3 times for transient download errors
+- [(#6960)](https://github.com/Microsoft/vcpkg/pull/6960) Use correct path separators for each platform
+- [(#6968)](https://github.com/Microsoft/vcpkg/pull/6968) VS 2019 16.3 deprecates .
+- [(#6987)](https://github.com/Microsoft/vcpkg/pull/6987) Bump version to 2019.06.21
+- [(#7038)](https://github.com/Microsoft/vcpkg/pull/7038) #5248 make vcpkg buildable as 'system' user
+- [(#7039)](https://github.com/Microsoft/vcpkg/pull/7039) [docs]Update cmake docs
+- [(#7074)](https://github.com/Microsoft/vcpkg/pull/7074) [vcpkg_configure_cmake] Add NO_CHARSET_FLAG option
+- [(#7086)](https://github.com/Microsoft/vcpkg/pull/7086) [vcpkg] fail archived port install when decompression fails
+
+
+The following 44 ports have been added:
+
+| port | version |
+|---|---|
+|[any-lite](https://github.com/Microsoft/vcpkg/pull/6629) | 0.2.0
+|[argparse](https://github.com/Microsoft/vcpkg/pull/6866) | 2019-06-10
+|[bdwgc](https://github.com/Microsoft/vcpkg/pull/6405) | 8.0.4-1
+|[byte-lite](https://github.com/Microsoft/vcpkg/pull/6630) | 0.2.0
+|[casclib](https://github.com/Microsoft/vcpkg/pull/6744) | 1.50
+|[cjson](https://github.com/Microsoft/vcpkg/pull/6081) | 1.7.10-1
+|[cpp-httplib](https://github.com/Microsoft/vcpkg/pull/7037) | 0.2.0
+|[cppcodec](https://github.com/Microsoft/vcpkg/pull/6651) | 0.2
+|[expected-lite](https://github.com/Microsoft/vcpkg/pull/6642) | 0.3.0
+|[greatest](https://github.com/Microsoft/vcpkg/pull/6934) | 1.4.2
+|[hedley](https://github.com/Microsoft/vcpkg/pull/6776) | 2019-05-08-1
+|[immer](https://github.com/Microsoft/vcpkg/pull/6814) | 2019-06-07
+|[itpp](https://github.com/Microsoft/vcpkg/pull/6672) | 4.3.1
+|[ixwebsocket](https://github.com/Microsoft/vcpkg/pull/6835) | 4.0.3
+|[json-c](https://github.com/Microsoft/vcpkg/pull/6446) | 2019-05-31
+|[libfabric](https://github.com/Microsoft/vcpkg/pull/4740)[(#7036)](https://github.com/Microsoft/vcpkg/pull/7036) | 1.7.1-1
+|[libftdi](https://github.com/Microsoft/vcpkg/pull/6843)[(#7015)](https://github.com/Microsoft/vcpkg/pull/7015) [(#7055)](https://github.com/Microsoft/vcpkg/pull/7055) | 0.20-1
+|[libftdi1](https://github.com/Microsoft/vcpkg/pull/6843) | 1.4
+|[libpmemobj-cpp](https://github.com/Microsoft/vcpkg/pull/7020)[(#7097)](https://github.com/Microsoft/vcpkg/pull/7095) | 1.6-1
+|[libraqm](https://github.com/Microsoft/vcpkg/pull/6659) | 0.6.0
+|[libu2f-server](https://github.com/Microsoft/vcpkg/pull/6781) | 1.1.0
+|[libzen](https://github.com/Microsoft/vcpkg/pull/7004) | 0.4.37
+|[magic-enum](https://github.com/Microsoft/vcpkg/pull/6817) | 2019-06-07
+|[networkdirect-sdk](https://github.com/Microsoft/vcpkg/pull/4740) | 2.0.1
+|[observer-ptr-lite](https://github.com/Microsoft/vcpkg/pull/6652) | 0.4.0
+|[openigtlink](https://github.com/Microsoft/vcpkg/pull/6769) | 3.0
+|[optional-bare](https://github.com/Microsoft/vcpkg/pull/6654) | 1.1.0
+|[optional-lite](https://github.com/Microsoft/vcpkg/pull/6655) | 3.2.0
+|[polyclipping](https://github.com/Microsoft/vcpkg/pull/6769) | 6.4.2
+|[ppconsul](https://github.com/Microsoft/vcpkg/pull/6911)[(#6967)](https://github.com/Microsoft/vcpkg/pull/6967) | 0.3-1
+|[pprint](https://github.com/Microsoft/vcpkg/pull/6678) | 2019-06-01
+|[restclient-cpp](https://github.com/Microsoft/vcpkg/pull/6936)[(#7054)](https://github.com/Microsoft/vcpkg/pull/7054) | 0.5.1-2
+|[ring-span-lite](https://github.com/Microsoft/vcpkg/pull/6696) | 0.3.0
+|[robin-hood-hashing](https://github.com/Microsoft/vcpkg/pull/6709) | 3.2.13
+|[simde](https://github.com/Microsoft/vcpkg/pull/6777) | 2019-06-05
+|[span-lite](https://github.com/Microsoft/vcpkg/pull/6703) | 0.5.0
+|[sprout](https://github.com/Microsoft/vcpkg/pull/6997) | 2019-06-20
+|[stormlib](https://github.com/Microsoft/vcpkg/pull/6428) | 9.22
+|[string-view-lite](https://github.com/Microsoft/vcpkg/pull/6758) | 1.3.0
+|[tl-function-ref](https://github.com/Microsoft/vcpkg/pull/7028) | 1.0.0-1
+|[variant-lite](https://github.com/Microsoft/vcpkg/pull/6720) | 1.2.2
+|[wpilib](https://github.com/Microsoft/vcpkg/pull/6716)[(#7087)](https://github.com/Microsoft/vcpkg/pull/7087) | 2019.5.1
+|[zstr](https://github.com/Microsoft/vcpkg/pull/6773) | 1.0.1
+|[zydis](https://github.com/Microsoft/vcpkg/pull/6861) | 2.0.3
+
+
+
+The following 291 ports have been updated:
+
+- alembic `1.7.11` -> `1.7.11-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- angelscript `2.33.0` -> `2.33.0-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- angle `2019-03-13-c2ee2cc-3` -> `2019-06-13`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6892)](https://github.com/Microsoft/vcpkg/pull/6892) [angle] Update to latest master
+
+- arb `2.11.1-2` -> `2.16.0`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6763)](https://github.com/Microsoft/vcpkg/pull/6763) [arb]Upgrade version to 2.16.0 and fix build error.
+
+- armadillo `2019-04-16-f00d3225` -> `2019-04-16-3`
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#7022)](https://github.com/Microsoft/vcpkg/pull/7022) [armadillo] Fix build error in Linux
+
+- arrow `0.13.0-3` -> `0.13.0-4`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6757)](https://github.com/Microsoft/vcpkg/pull/6757) [arrow] fix findzstd patch
+
+- asio `1.12.2` -> `1.12.2-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6751)](https://github.com/Microsoft/vcpkg/pull/6751) [asio] Add cmake target
+ - [(#7083)](https://github.com/Microsoft/vcpkg/pull/7083) [asio] fix flaky build
+
+- assimp `4.1.0-4` -> `4.1.0-8`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6593)](https://github.com/Microsoft/vcpkg/pull/6593) [assimp]Fix lrrXML library dependencies.
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6887)](https://github.com/Microsoft/vcpkg/pull/6887) [assimp] Fix install assimp when passing --head
+
+- avro-c `1.8.2-1` -> `1.8.2-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- aws-c-common `0.3.0` -> `0.3.11-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6747)](https://github.com/Microsoft/vcpkg/pull/6747) [aws-c-common]Upgrade version to 0.3.11
+
+- aws-sdk-cpp `1.7.106` -> `1.7.116`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6932)](https://github.com/Microsoft/vcpkg/pull/6932) [aws-sdk-cpp]Upgrade to 1.7.116
+
+- azure-c-shared-utility `2019-05-16` -> `2019-05-16.1`
+ - [(#6804)](https://github.com/Microsoft/vcpkg/pull/6804) [azure] Update azure-iot-sdk-c for public-preview release of 2019-05-16
+
+- azure-iot-sdk-c `2019-05-16` -> `2019-05-16.1`
+ - [(#6804)](https://github.com/Microsoft/vcpkg/pull/6804) [azure] Update azure-iot-sdk-c for public-preview release of 2019-05-16
+
+- azure-macro-utils-c `2019-05-16` -> `2019-05-16.1`
+ - [(#6804)](https://github.com/Microsoft/vcpkg/pull/6804) [azure] Update azure-iot-sdk-c for public-preview release of 2019-05-16
+
+- azure-uamqp-c `2019-05-16` -> `2019-05-16.1`
+ - [(#6804)](https://github.com/Microsoft/vcpkg/pull/6804) [azure] Update azure-iot-sdk-c for public-preview release of 2019-05-16
+
+- azure-uhttp-c `2019-05-16` -> `2019-05-16.1`
+ - [(#6804)](https://github.com/Microsoft/vcpkg/pull/6804) [azure] Update azure-iot-sdk-c for public-preview release of 2019-05-16
+
+- azure-umqtt-c `2019-05-16` -> `2019-05-16.1`
+ - [(#6804)](https://github.com/Microsoft/vcpkg/pull/6804) [azure] Update azure-iot-sdk-c for public-preview release of 2019-05-16
+
+- blosc `1.16.3` -> `1.16.3-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6928)](https://github.com/Microsoft/vcpkg/pull/6928) [blosc] Fix the bug when building release-only.
+
+- bond `7.0.2-2` -> `8.1.0`
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+ - [(#6954)](https://github.com/Microsoft/vcpkg/pull/6954) [bond]Upgrade version to 8.1.0 and add Linux/OSX support.
+
+- boost-thread `1.70.0` -> `1.70.0-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6840)](https://github.com/Microsoft/vcpkg/pull/6840) [boost-thread] Fix old patches
+
+- boost-variant `1.69.0` -> `1.70.0`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#7047)](https://github.com/Microsoft/vcpkg/pull/7047) [Boost-variant] Upgrade to 1.70.0
+
+- botan `2.9.0` -> `2.9.0-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- c-ares `2019-5-2` -> `2019-5-2-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- cairo `1.16.0` -> `1.16.0-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6806)](https://github.com/Microsoft/vcpkg/pull/6806) [cairo] Fix linker errors on Linux and MacOS
+
+- capnproto `0.7.0-1` -> `0.7.0-2`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+ - [(#7024)](https://github.com/Microsoft/vcpkg/pull/7024) [capnproto] Enable Linux and OSX support
+
+- cartographer `1.0.0` -> `1.0.0-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- catch2 `2.7.2` -> `2.7.2-2`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- ccd `2.1` -> `2.1-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- celero `2.4.0-1` -> `2.5.0-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6845)](https://github.com/Microsoft/vcpkg/pull/6845) Celero: Update to v2.5.0 release
+
+- cereal `1.2.2-1` -> `1.2.2-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- ceres `1.14.0-3` -> `1.14.0-6`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- clapack `3.2.1-4` -> `3.2.1-9`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- clblas `2.12-1` -> `2.12-2`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- clfft `2.12.2` -> `2.12.2-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- cli `1.1` -> `1.1-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- clp `1.17.2` -> `1.17.2-2`
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- cnl `2019-01-09` -> `2019-06-23`
+ - [(#7031)](https://github.com/Microsoft/vcpkg/pull/7031) [cnl] Update cnl to latest
+
+- coinutils `2.11.2` -> `2.11.2-2`
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- collada-dom `2.5.0` -> `2.5.0-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- console-bridge `0.3.2-3` -> `0.3.2-4`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- cpp-netlib `0.13.0-final` -> `0.13.0-2`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- cppcms `1.1.0-2` -> `1.2.1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- cpr `1.3.0-6` -> `1.3.0-7`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6429)](https://github.com/Microsoft/vcpkg/pull/6429) [Curl] Upgrades 2019.05.08
+
+- crc32c `1.0.7` -> `1.0.7-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- cryptopp `8.1.0` -> `8.1.0-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6821)](https://github.com/Microsoft/vcpkg/pull/6821) [cryptopp] fix build by disabling assembly on osx
+
+- curl `7.61.1-7` -> `7.65.0-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6429)](https://github.com/Microsoft/vcpkg/pull/6429) [Curl] Upgrades 2019.05.08
+ - [(#6649)](https://github.com/Microsoft/vcpkg/pull/6649) [Curl] Fix cmake target name
+ - [(#6698)](https://github.com/Microsoft/vcpkg/pull/6698) [curl] Revert revert of `-imp` suffix removal.
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- cxxopts `2.1.2` -> `2.1.2-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- darknet `0.2.5-1` -> `0.2.5-4`
+ - [(#6787)](https://github.com/Microsoft/vcpkg/pull/6787) [darknet] update to latest release
+ - [(#7064)](https://github.com/Microsoft/vcpkg/pull/7064) [darknet] enable ninja
+
+- darts-clone `1767ab87cffe` -> `1767ab87cffe-1`
+ - [(#6875)](https://github.com/Microsoft/vcpkg/pull/6875) [libsodium/darts-clone] remove conflicting makefile
+
+- dcmtk `3.6.3-1` -> `3.6.4`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- dlib `19.17` -> `19.17-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+
+- doctest `2.3.2` -> `2.3.3`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6998)](https://github.com/Microsoft/vcpkg/pull/6998) [doctest] Update to 2.3.3
+
+- draco `1.3.3-2` -> `1.3.5`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6796)](https://github.com/Microsoft/vcpkg/pull/6796) [draco, flatbuffers, forge] Update to new version
+
+- duilib `2019-4-28-1` -> `2019-4-28-2`
+ - [(#7074)](https://github.com/Microsoft/vcpkg/pull/7074) [vcpkg_configure_cmake] Add NO_CHARSET_FLAG option
+
+- ebml `1.3.8` -> `1.3.9`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6662)](https://github.com/Microsoft/vcpkg/pull/6662) [ebml, matroska] Upgrade ebml to v1.3.9 and matroska to v1.5.2
+
+- eigen3 `3.3.7-1` -> `3.3.7-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- ensmallen `1.15.0` -> `1.15.1`
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- entityx `1.3.0` -> `1.3.0-1`
+ - [(#6736)](https://github.com/Microsoft/vcpkg/pull/6736) [entityx][entt] Disable parallel configure
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- entt `3.0.0` -> `3.0.0-1`
+ - [(#6736)](https://github.com/Microsoft/vcpkg/pull/6736) [entityx][entt] Disable parallel configure
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- exiv2 `0.27` -> `0.27.1-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+ - [(#6905)](https://github.com/Microsoft/vcpkg/pull/6905) [Exiv2] update to 0.27.1
+
+- fastcdr `1.0.6-2` -> `1.0.9-1`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- fcl `0.5.0-5` -> `0.5.0-6`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- ffmpeg `4.1-5` -> `4.1-8`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6590)](https://github.com/Microsoft/vcpkg/pull/6590) ffmpeg: enable arm/arm64 windows support
+ - [(#6694)](https://github.com/Microsoft/vcpkg/pull/6694) [ffmpeg] Correctly set environment variables for gcc/clang/icc
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6743)](https://github.com/Microsoft/vcpkg/pull/6743) [ffmpeg] Fix regression on windows
+ - [(#6784)](https://github.com/Microsoft/vcpkg/pull/6784) [FFmpeg] Add 'vpx' feature.
+
+- fizz `2019.05.13.00` -> `2019.05.20.00-1`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6969)](https://github.com/Microsoft/vcpkg/pull/6969) [libevent] Upgrade to version 2.1.10
+
+- flann `jan2019` -> `1.9.1-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6931)](https://github.com/Microsoft/vcpkg/pull/6931) [flann]Upgrade version to 1.9.1 and fix build error.
+ - [(#7073)](https://github.com/Microsoft/vcpkg/pull/7073) [flann] fix flaky config
+
+- flatbuffers `1.10.0-1` -> `1.11.0-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6796)](https://github.com/Microsoft/vcpkg/pull/6796) [draco, flatbuffers, forge] Update to new version
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- fmi4cpp `0.7.0` -> `0.7.0-1`
+ - [(#7021)](https://github.com/Microsoft/vcpkg/pull/7021) [nana, fmi4cpp] Fix Visual Studio 2019 deprecates .
+
+- folly `2019.05.13.00` -> `2019.05.20.00-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6974)](https://github.com/Microsoft/vcpkg/pull/6974) [Folly] define _CRT_INTERNAL_NONSTDC_NAMES to 0 to disable non-underscore posix names on windows
+
+- fontconfig `2.12.4-8` -> `2.12.4-9`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+
+- forest `11.0.1` -> `12.0.0`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6938)](https://github.com/Microsoft/vcpkg/pull/6938) [forest] move to 12.0.0
+
+- forge `1.0.3-1` -> `1.0.4-1`
+ - [(#6796)](https://github.com/Microsoft/vcpkg/pull/6796) [draco, flatbuffers, forge] Update to new version
+
+- freeimage `3.18.0-5` -> `3.18.0-6`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- freerdp `2.0.0-rc4-1` -> `2.0.0-rc4-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- freetype `2.9.1-1` -> `2.10.0`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6754)](https://github.com/Microsoft/vcpkg/pull/6754) Fix freetype cmake config files
+ - [(#7057)](https://github.com/Microsoft/vcpkg/pull/7057) [freetype] Upgrade to version 2.10.0
+
+- freexl `1.0.4-1` -> `1.0.4-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6813)](https://github.com/Microsoft/vcpkg/pull/6813) [freexl]: Linux build support
+
+- ftgl `2.3.1` -> `2.4.0-1`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- g2o `20170730_git-4` -> `20170730_git-5`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- gdcm `3.0.0` -> `3.0.0-3`
+ - [(#6710)](https://github.com/Microsoft/vcpkg/pull/6710) [gdcm,jbig2dec] move patches from #5169
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- gdk-pixbuf `2.36.9-2` -> `2.36.9-3`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6663)](https://github.com/Microsoft/vcpkg/pull/6663) [gdk-pixbuf] Fix Linux compilation.
+
+- geogram `1.6.9-3` -> `1.6.9-6`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- geographiclib `1.47-patch1-5` -> `1.47-patch1-6`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- gherkin-c `c-libs-e63e83104b` -> `4.1.2`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- gl3w `99ed3211` -> `2018-05-31-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- glad `0.1.29` -> `0.1.30`
+ - [(#6819)](https://github.com/Microsoft/vcpkg/pull/6819) [glad] update to 0.1.30
+
+- glbinding `3.1.0` -> `3.1.0-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6872)](https://github.com/Microsoft/vcpkg/pull/6872) set CMAKE_SYSTEM_PROCESSOR in Linux
+ - [(#6876)](https://github.com/Microsoft/vcpkg/pull/6876) [glbinding] remove conflict with other opengl ports
+
+- glew `2.1.0-3` -> `2.1.0-4`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6853)](https://github.com/Microsoft/vcpkg/pull/6853) [glew] Disable the link option /nodefaultlib and /noentry
+
+- glib `2.52.3-14-1` -> `2.52.3-14-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6663)](https://github.com/Microsoft/vcpkg/pull/6663) [gdk-pixbuf] Fix Linux compilation.
+
+- glibmm `2.52.1-8` -> `2.52.1-9`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6550)](https://github.com/Microsoft/vcpkg/pull/6550) [glibmm] Reintroduce CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- globjects `1.1.0-2018-09-19-1` -> `1.1.0-2`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- glog `0.4.0` -> `0.4.0-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- glslang `2018-03-02-2` -> `2019-03-05`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6689)](https://github.com/Microsoft/vcpkg/pull/6689) [shaderc] update
+
+- google-cloud-cpp `0.9.0` -> `0.10.0`
+ - [(#6785)](https://github.com/Microsoft/vcpkg/pull/6785) Upgrade google-cloud-cpp to 0.10.0.
+
+- graphicsmagick `1.3.31-1` -> `1.3.32`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6947)](https://github.com/Microsoft/vcpkg/pull/6947) Graphicsmagick 1.3.32
+
+- graphite2 `1.3.12` -> `1.3.12-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- grpc `1.20.1-1` -> `1.21.1-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#5630)](https://github.com/Microsoft/vcpkg/pull/5630) [scripts] Fix vcpkg_fixup_cmake on non Windows platforms
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- gsoap `2.8.82-2` -> `2.8.84-1`
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6756)](https://github.com/Microsoft/vcpkg/pull/6756) update to 2.8.84
+
+- gtk `3.22.19-2` -> `3.22.19-3`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6671)](https://github.com/Microsoft/vcpkg/pull/6671) [pango/gtk]Fix build error C2001.
+
+- harfbuzz `2.4.0` -> `2.5.1-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6659)](https://github.com/Microsoft/vcpkg/pull/6659) [libraqm] Add new port (0.6.0)
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6761)](https://github.com/Microsoft/vcpkg/pull/6761) [harfbuzz]Upgrade version to 2.5.1 and fix patches.
+ - [(#6879)](https://github.com/Microsoft/vcpkg/pull/6879) [harfbuzz] Propagate dependency on glib downstream
+
+- hdf5 `1.10.5-5` -> `1.10.5-7`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6771)](https://github.com/Microsoft/vcpkg/pull/6771) [netcdf-c/hdf5] improve/correct linkage
+
+- hpx `1.2.1-1` -> `1.3.0-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6755)](https://github.com/Microsoft/vcpkg/pull/6755) Updating HPX to V1.3.0
+
+- http-parser `2.9.2` -> `2.9.2-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- icu `61.1-6` -> `61.1-7`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6695)](https://github.com/Microsoft/vcpkg/pull/6695) [icu] Enable parallel builds
+
+- idevicerestore `1.0.12-2` -> `1.0.12-3`
+ - [(#6698)](https://github.com/Microsoft/vcpkg/pull/6698) [curl] Revert revert of `-imp` suffix removal.
+
+- imgui `1.70` -> `1.70-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- inih `43` -> `44`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- ismrmrd `1.4` -> `1.4.0-1`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- itk `4.13.0-906736bd-3` -> `5.0.0-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6767)](https://github.com/Microsoft/vcpkg/pull/6767) [itk] Upgrade to 5.0.0
+
+- jansson `2.11-2` -> `2.12-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- jasper `2.0.16-1` -> `2.0.16-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- jbig2dec `0.16` -> `0.16-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6710)](https://github.com/Microsoft/vcpkg/pull/6710) [gdcm,jbig2dec] move patches from #5169
+
+- json-dto `0.2.8` -> `0.2.8-2`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- json11 `2017-06-20-1` -> `2017-06-20-2`
+ - [(#6967)](https://github.com/Microsoft/vcpkg/pull/6967) [ppconsul] remove conflict with json11
+
+- jxrlib `1.1-6` -> `1.1-7`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- kangaru `4.1.3` -> `4.1.3-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- kd-soap `1.7.0` -> `1.8.0`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6838)](https://github.com/Microsoft/vcpkg/pull/6838) [kd-soap]Upgrade version to 1.8.0
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- lcm `1.3.95-1` -> `1.4.0`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6836)](https://github.com/Microsoft/vcpkg/pull/6836) [lcm]Upgrade version to 1.4.0 and fix build error.
+
+- leptonica `1.76.0` -> `1.76.0-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- leveldb `2017-10-25-8b1cd3753b184341e837b30383832645135d3d73-3` -> `1.22`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6900)](https://github.com/Microsoft/vcpkg/pull/6900) [leveldb] Port update
+
+- libbson `1.13.0` -> `1.14.0-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6862)](https://github.com/Microsoft/vcpkg/pull/6862) [libbson mongo-c-driver mongo-cxx-driver] upgrades to new revision
+
+- libcroco `0.6.13` -> `0.6.13-1`
+ - [(#6663)](https://github.com/Microsoft/vcpkg/pull/6663) [gdk-pixbuf] Fix Linux compilation.
+
+- libevent `2.1.8-5` -> `2.1.10`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6969)](https://github.com/Microsoft/vcpkg/pull/6969) [libevent] Upgrade to version 2.1.10
+
+- libfreenect2 `0.2.0-1` -> `0.2.0-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- libgeotiff `1.4.2-8` -> `1.4.2-9`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6000)](https://github.com/Microsoft/vcpkg/pull/6000) [LibLZMA] automatic configuration
+
+- libgit2 `0.28.1` -> `0.28.2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- libharu `2017-08-15-d84867ebf9f-6` -> `2017-08-15-8`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- libics `1.6.2` -> `1.6.3`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- libideviceactivation `1.2.68` -> `1.2.68-1`
+ - [(#6698)](https://github.com/Microsoft/vcpkg/pull/6698) [curl] Revert revert of `-imp` suffix removal.
+
+- libimobiledevice `1.2.1.215-1` -> `1.2.76`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- libjpeg-turbo `2.0.1-1` -> `2.0.2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6482)](https://github.com/Microsoft/vcpkg/pull/6482) [libjpeg-turbo] Upgrades 2019.05.08
+
+- liblemon `1.3.1-4` -> `2019-06-13`
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6679)](https://github.com/Microsoft/vcpkg/pull/6679) [liblemon] made into a rolling-release port
+
+- liblsl `1.13.0-b4` -> `1.13.0-b6`
+ - [(#6745)](https://github.com/Microsoft/vcpkg/pull/6745) [liblsl] Update liblsl port to 1.13.0-b6
+
+- liblzma `5.2.4-1` -> `5.2.4-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6000)](https://github.com/Microsoft/vcpkg/pull/6000) [LibLZMA] automatic configuration
+
+- libmikmod `3.3.11.1-2` -> `3.3.11.1-4`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#7035)](https://github.com/Microsoft/vcpkg/pull/7035) [libmikmod] patch cmake warning
+ - [(#7052)](https://github.com/Microsoft/vcpkg/pull/7052) [libmikmod] resolve ninja error (-w dupbuild=err)
+
+- libmodbus `3.1.4-2` -> `3.1.4-3`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- libmupdf `1.12.0-2` -> `1.15.0`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6710)](https://github.com/Microsoft/vcpkg/pull/6710) [gdcm,jbig2dec] move patches from #5169
+ - [(#7046)](https://github.com/Microsoft/vcpkg/pull/7046) [libmupdf] Update the port to version 1.15.0
+
+- libmysql `8.0.4-3` -> `8.0.4-4`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6442)](https://github.com/Microsoft/vcpkg/pull/6442) [libmysql]Fix build error in linux.
+
+- libogg `1.3.3-2` -> `1.3.3-4`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6588)](https://github.com/Microsoft/vcpkg/pull/6588) [libogg] Update to 1.3.3-3
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- libopusenc `0.1-1` -> `0.2.1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6748)](https://github.com/Microsoft/vcpkg/pull/6748) [libopusenc]Upgrade version to 0.2.1
+
+- libpff `2018-07-14` -> `2018-07-14-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- libplist `2.0.1.197-2` -> `1.2.77`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- libpng `1.6.37-1` -> `1.6.37-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- libqglviewer `2.7.1-1` -> `2.7.0`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- libraw `0.19.2` -> `201903-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6742)](https://github.com/Microsoft/vcpkg/pull/6742) [libraw] Add include for select_library_configurations [(#6715)](https://github.com/Microsoft/vcpkg/pull/6715)
+
+- libressl `2.9.1` -> `2.9.1-2`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- libsndfile `1.0.29-6830c42-6` -> `1.0.29-8`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6896)](https://github.com/Microsoft/vcpkg/pull/6896) [sndfile/libsndfile] remove duplicate port, forward to libsndfile
+
+- libsodium `1.0.17-2` -> `1.0.18`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6778)](https://github.com/Microsoft/vcpkg/pull/6778) [libsodium] Update to 1.0.18
+ - [(#6875)](https://github.com/Microsoft/vcpkg/pull/6875) [libsodium/darts-clone] remove conflicting makefile
+
+- libspatialite `4.3.0a-2` -> `4.3.0a-3`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6000)](https://github.com/Microsoft/vcpkg/pull/6000) [LibLZMA] automatic configuration
+
+- libsquish `1.15` -> `1.15-1`
+ - [(#6893)](https://github.com/Microsoft/vcpkg/pull/6893) [libsquish] fix flaky build
+
+- libtins `4.0-2` -> `4.2`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#7008)](https://github.com/Microsoft/vcpkg/pull/7008) [libtins]Upgrade version to 4.2 and adds dependent ports to new version.
+
+- libunibreak `4.1` -> `4.2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- libusb `1.0.22-2` -> `1.0.22-3`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- libusbmuxd `1.0.107-2` -> `1.2.77`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- libuv `1.29.0` -> `1.29.1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- libwebp `1.0.2-3` -> `1.0.2-6`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6648)](https://github.com/Microsoft/vcpkg/pull/6648) [libwebp]Fix static build: add dependency libraries "dxguid winmm".
+
+- libwebsockets `3.1.0` -> `3.1.0-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6855)](https://github.com/Microsoft/vcpkg/pull/6855) [libwebsockets] Fix build error on Linux
+
+- libxlsxwriter `0.8.6-1` -> `0.8.7-1`
+ - [(#7034)](https://github.com/Microsoft/vcpkg/pull/7034) [libxlsxwriter] upgrade to 0.8.7
+
+- libxslt `1.1.29` -> `1.1.33`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#7058)](https://github.com/Microsoft/vcpkg/pull/7058) [libxslt] Update the version to 1.1.33 and change the URL.
+
+- libyaml `0.2.1-1` -> `0.2.2`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- llvm `7.0.0-2` -> `7.0.0-3`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6631)](https://github.com/Microsoft/vcpkg/pull/6631) [llvm]Fix build error on x64-windows.
+
+- lmdb `0.9.23` -> `0.9.23-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- log4cplus `2.0.4` -> `2.0.4-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6930)](https://github.com/Microsoft/vcpkg/pull/6930) [log4cplus]Fix lnk2019 errors when using log4cplus.
+
+- lz4 `1.9.1-1` -> `1.9.1-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6735)](https://github.com/Microsoft/vcpkg/pull/6735) [lz4]Fix conflict file xxhash.h
+
+- magnum-extras `2019.01-1` -> `2019.01-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- magnum-integration `2019.01-1` -> `2019.01-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- mathgl `2.4.3` -> `2.4.3-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- matroska `1.5.1` -> `1.5.2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6662)](https://github.com/Microsoft/vcpkg/pull/6662) [ebml, matroska] Upgrade ebml to v1.3.9 and matroska to v1.5.2
+
+- miniz `2.0.8` -> `2.1.0`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- mlpack `3.1.0-1` -> `3.1.1`
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6907)](https://github.com/Microsoft/vcpkg/pull/6907) [mlpack] Updated to version 3.1.1
+
+- mongo-c-driver `1.13.0` -> `1.14.0-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6862)](https://github.com/Microsoft/vcpkg/pull/6862) [libbson mongo-c-driver mongo-cxx-driver] upgrades to new revision
+
+- mongo-cxx-driver `3.2.0-2` -> `3.4.0-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6862)](https://github.com/Microsoft/vcpkg/pull/6862) [libbson mongo-c-driver mongo-cxx-driver] upgrades to new revision
+
+- moos-core `10.4.0-2` -> `10.4.0-3`
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- mosquitto `1.5.0-3` -> `1.6.2-2`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- ms-angle `2018-04-18-1` -> `2018-04-18-2`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- msix `MsixCoreInstaller-preview` -> `MsixCoreInstaller-preview-1`
+ - [(#7074)](https://github.com/Microsoft/vcpkg/pull/7074) [vcpkg_configure_cmake] Add NO_CHARSET_FLAG option
+
+- msmpi `10.0` -> `10.0-2`
+ - [(#6945)](https://github.com/Microsoft/vcpkg/pull/6945) [msmpi] Fix /MD for static libs.
+
+- nana `1.7.1` -> `1.7.1-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#7021)](https://github.com/Microsoft/vcpkg/pull/7021) [nana, fmi4cpp] Fix Visual Studio 2019 deprecates .
+
+- nanomsg `1.1.5` -> `1.1.5-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- netcdf-c `4.7.0` -> `4.7.0-3`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6771)](https://github.com/Microsoft/vcpkg/pull/6771) [netcdf-c/hdf5] improve/correct linkage
+ - [(#6865)](https://github.com/Microsoft/vcpkg/pull/6865) [netcdf-c]Fix build error on linux.
+ - [(#6971)](https://github.com/Microsoft/vcpkg/pull/6971) [netcdf-c] Fix link error.
+
+- nlopt `2.6.1` -> `2.6.1-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6739)](https://github.com/Microsoft/vcpkg/pull/6739) [protobuf] Update to 3.8.0
+
+- nmslib `1.7.2-1` -> `1.7.3.6`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- nrf-ble-driver `4.1.0` -> `4.1.1`
+
+- nvtt `2.1.0-3` -> `2.1.1`
+ - [(#6765)](https://github.com/Microsoft/vcpkg/pull/6765) [nvtt]Upgrade version to 2.1.1 and fix build error on windows.
+
+- octomap `cefed0c1d79afafa5aeb05273cf1246b093b771c-6` -> `2017-03-11-7`
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- ogre `1.11.3-4` -> `1.12.0-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- oniguruma `6.9.2` -> `6.9.2-2`
+ - [(#6958)](https://github.com/Microsoft/vcpkg/pull/6958) [vcpkg] Add vcpkg_check_features
+ - [(#7091)](https://github.com/Microsoft/vcpkg/pull/7091) [vcpkg] Update vcpkg_check_features document
+
+- openblas `0.3.6-2` -> `0.3.6-4`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- opencv `3.4.3-7` -> `3.4.3-9`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6000)](https://github.com/Microsoft/vcpkg/pull/6000) [LibLZMA] automatic configuration
+ - [(#6812)](https://github.com/Microsoft/vcpkg/pull/6812) [opencv] Fixed OpenCV versioning using wrong commit
+ - [(#6901)](https://github.com/Microsoft/vcpkg/pull/6901) [opencv]Fix build error with feature gdcm: cannot find openjp2.
+
+- openexr `2.3.0-3` -> `2.3.0-4`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- openmama `6.2.3` -> `6.2.3-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- openmvg `1.4-2` -> `1.4-5`
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- openmvs `0.9` -> `1.0-1`
+ - [(#6692)](https://github.com/Microsoft/vcpkg/pull/6692) update to v1.0
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- openni2 `2.2.0.33-8` -> `2.2.0.33-9`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- openssl `0` -> `1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- opentracing `1.5.1` -> `1.5.1-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- openvdb `6.0.0-2` -> `6.1.0`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6864)](https://github.com/Microsoft/vcpkg/pull/6864) [openvdb]Upgrade version to 6.1.0, regenerate patches and fix build errors.
+
+- openvpn3 `2018-03-21` -> `2018-03-21-1`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- openvr `1.1.3b` -> `1.4.18`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- opusfile `0.11-2` -> `0.11-3`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- orc `1.5.5` -> `1.5.5-1`
+ - [(#6739)](https://github.com/Microsoft/vcpkg/pull/6739) [protobuf] Update to 3.8.0
+
+- orocos-kdl `1.4` -> `1.4-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- osi `0.108.4` -> `0.108.4-2`
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- paho-mqtt `1.2.1-1` -> `1.3.0`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6762)](https://github.com/Microsoft/vcpkg/pull/6762) [paho-mqtt] Upgrade to 1.3.0
+
+- pango `1.40.11-3` -> `1.40.11-4`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6671)](https://github.com/Microsoft/vcpkg/pull/6671) [pango/gtk]Fix build error C2001.
+
+- pangolin `0.5-6` -> `0.5-7`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- parallel-hashmap `1.22` -> `1.23`
+ - [(#6917)](https://github.com/Microsoft/vcpkg/pull/6917) [parallel-hashmap] Update to current 1.23 version and include natvis file.
+
+- pcl `1.9.1-3` -> `1.9.1-4`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- pdal `1.7.1-4` -> `1.7.1-5`
+ - [(#6000)](https://github.com/Microsoft/vcpkg/pull/6000) [LibLZMA] automatic configuration
+ - [(#6603)](https://github.com/Microsoft/vcpkg/pull/6603) [pdal] delete and replace different find modules
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- pdcurses `3.6` -> `3.8`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- poco `2.0.0-pre-1` -> `2.0.0-pre-2`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- podofo `0.9.6-6` -> `0.9.6-7`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6000)](https://github.com/Microsoft/vcpkg/pull/6000) [LibLZMA] automatic configuration
+
+- proj4 `4.9.3-1` -> `4.9.3-3`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6000)](https://github.com/Microsoft/vcpkg/pull/6000) [LibLZMA] automatic configuration
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- prometheus-cpp `0.6.0` -> `0.7.0`
+ - [(#6822)](https://github.com/Microsoft/vcpkg/pull/6822) [prometheus-cpp] Update to version 0.7.0
+
+- protobuf `3.7.1` -> `3.8.0-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6739)](https://github.com/Microsoft/vcpkg/pull/6739) [protobuf] Update to 3.8.0
+
+- pugixml `1.9-1` -> `1.9-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- qca `2.2.0-4` -> `2.2.1`
+ - [(#6839)](https://github.com/Microsoft/vcpkg/pull/6839) [qca]Upgrade version to 2.2.1 and fix build error.
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- qt5-base `5.12.3-1` -> `5.12.3-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#7019)](https://github.com/Microsoft/vcpkg/pull/7019) [qt5-base]Add execute permission when installing executables in Linux.
+
+- qt5-declarative `5.12.3` -> `5.12.3-1`
+ - [(#6927)](https://github.com/Microsoft/vcpkg/pull/6927) [qt5-declarative]Fix error when building release-only.
+
+- re2 `2019-05-07` -> `2019-05-07-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- realsense2 `2.16.1-2` -> `2.22.0-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#5275)](https://github.com/Microsoft/vcpkg/pull/5275) [realsense2] Enable OpenNI2 driver option
+ - [(#5777)](https://github.com/Microsoft/vcpkg/pull/5777) [realsense2] Update to v2.19.0
+
+- reproc `6.0.0` -> `6.0.0-1`
+ - [(#6711)](https://github.com/Microsoft/vcpkg/pull/6711) [reproc] Enabled C++ target for version 6.0.0.
+
+- restinio `0.4.9` -> `0.5.1-1`
+ - [(#6669)](https://github.com/Microsoft/vcpkg/pull/6669) RESTinio updated to v.0.4.9.1
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6749)](https://github.com/Microsoft/vcpkg/pull/6749) RESTinio updated to v.0.5.0
+ - [(#6933)](https://github.com/Microsoft/vcpkg/pull/6933) RESTinio updated to v.0.5.1
+
+- robin-map `0.2.0` -> `0.6.1`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- rtmidi `2.1.1-2` -> `4.0.0`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6635)](https://github.com/Microsoft/vcpkg/pull/6635) [rtmidi] Update to version 4.0.0
+
+- sdl2 `2.0.9-3` -> `2.0.9-4`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- sdl2-image `2.0.4-2` -> `2.0.4-3`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- sdl2-mixer `2.0.4-2` -> `2.0.4-3`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6929)](https://github.com/Microsoft/vcpkg/pull/6929) [sdl2-mixer]Fix build error with feature opusfile.
+
+- sdl2-net `2.0.1-6` -> `2.0.1-7`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- sdl2-ttf `2.0.15-2` -> `2.0.15-3`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- selene `0.3.1` -> `0.3.1-1`
+ - [(#6000)](https://github.com/Microsoft/vcpkg/pull/6000) [LibLZMA] automatic configuration
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- sf2cute `0.2.0` -> `0.2.0-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- shaderc `12fb656ab20ea9aa06e7084a74e5ff832b7ce2da-2` -> `2019-06-26`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6689)](https://github.com/Microsoft/vcpkg/pull/6689) [shaderc] update
+
+- shiva `1.0` -> `1.0-2`
+ - [(#6000)](https://github.com/Microsoft/vcpkg/pull/6000) [LibLZMA] automatic configuration
+ - [(#6637)](https://github.com/Microsoft/vcpkg/pull/6637) [shiva] Fix build error "Could NOT find PythonInterp"
+
+- shogun `6.1.3-1` -> `6.1.3-3`
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6739)](https://github.com/Microsoft/vcpkg/pull/6739) [protobuf] Update to 3.8.0
+ - [(#6872)](https://github.com/Microsoft/vcpkg/pull/6872) set CMAKE_SYSTEM_PROCESSOR in Linux
+
+- sndfile `1.0.29-cebfdf2-1` -> `0`
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6896)](https://github.com/Microsoft/vcpkg/pull/6896) [sndfile/libsndfile] remove duplicate port, forward to libsndfile
+
+- snowhouse `3.0.1` -> `3.1.0`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- so5extra `1.2.3` -> `1.2.3-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- sobjectizer `5.5.24.4` -> `5.5.24.4-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- sol2 `2.20.6` -> `3.0.2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- sophus `1.0.0-1` -> `1.0.0-6`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+
+- spdlog `1.3.1` -> `1.3.1-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6924)](https://github.com/Microsoft/vcpkg/pull/6924) [spdlog]Add feature[benchmark]
+
+- spirv-cross `2018-08-07-1` -> `2019-05-09`
+ - [(#6690)](https://github.com/Microsoft/vcpkg/pull/6690) update spirv cross
+
+- spirv-headers `2019-03-05` -> `2019-05-05`
+ - [(#6689)](https://github.com/Microsoft/vcpkg/pull/6689) [shaderc] update
+
+- spirv-tools `2018.1-2` -> `2019.3-dev`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6689)](https://github.com/Microsoft/vcpkg/pull/6689) [shaderc] update
+
+- sqlite-modern-cpp `3.2-e2248fa` -> `3.2-936cd0c8`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- sqlite-orm `1.3` -> `1.3-1`
+ - [(#6894)](https://github.com/Microsoft/vcpkg/pull/6894) [sqlite-orm] fix tag, update hash
+
+- sqlite3 `3.27.2` -> `3.28.0-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6856)](https://github.com/Microsoft/vcpkg/pull/6856) [sqlite3]: Switch back to CMAKE_SYSTEM_NAME checks per original PR
+ - [(#6856)](https://github.com/Microsoft/vcpkg/pull/6856) [sqlite3]: Shared library support for Linux
+ - [(#6921)](https://github.com/Microsoft/vcpkg/pull/6921) [sqlite3] Update to 3.28.0
+
+- sqlitecpp `2.2-2` -> `2.3.0`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- strict-variant `v0.5` -> `0.5`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- string-theory `2.1` -> `2.1-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- suitesparse `5.1.2-2` -> `5.4.0-3`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- systemc `2.3.3-2` -> `2.3.3-3`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- szip `2.1.1-3` -> `2.1.1-4`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- taglib `1.11.1-4` -> `1.11.1-20190531`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6851)](https://github.com/Microsoft/vcpkg/pull/6851) [taglib]Upgrade version to 1.11.1-20190531.
+
+- tbb `2019_U6` -> `2019_U7`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- tesseract `4.0.0-1` -> `4.0.0-3`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6000)](https://github.com/Microsoft/vcpkg/pull/6000) [LibLZMA] automatic configuration
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- theia `0.8` -> `0.8-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+
+- thor `2.0-2` -> `2.0-3`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6953)](https://github.com/Microsoft/vcpkg/pull/6953) [thor] Fix error on Linux.
+
+- thrift `2019-05-07` -> `2019-05-07-2`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6872)](https://github.com/Microsoft/vcpkg/pull/6872) set CMAKE_SYSTEM_PROCESSOR in Linux
+ - [(#7074)](https://github.com/Microsoft/vcpkg/pull/7074) [vcpkg_configure_cmake] Add NO_CHARSET_FLAG option
+
+- tidy-html5 `5.6.0` -> `5.6.0-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#7074)](https://github.com/Microsoft/vcpkg/pull/7074) [vcpkg_configure_cmake] Add NO_CHARSET_FLAG option
+
+- tiff `4.0.10-4` -> `4.0.10-6`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6000)](https://github.com/Microsoft/vcpkg/pull/6000) [LibLZMA] automatic configuration
+
+- tinyexif `1.0.2-4` -> `1.0.2-5`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- tinyobjloader `1.4.1-1` -> `1.0.7-1`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- tinyxml2 `7.0.1` -> `7.0.1-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- tl-expected `0.3-1` -> `1.0.0-1`
+ - [(#7028)](https://github.com/Microsoft/vcpkg/pull/7028) [tl] Update tl::expected and tl::optional, add tl::function_ref
+
+- tl-optional `0.5-1` -> `1.0.0-1`
+ - [(#7028)](https://github.com/Microsoft/vcpkg/pull/7028) [tl] Update tl::expected and tl::optional, add tl::function_ref
+
+- tmx `1.0.0` -> `1.0.0-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- treehopper `1.11.3-2` -> `1.11.3-3`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- trompeloeil `34` -> `34-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- umock-c `2019-05-16` -> `2019-05-16.1`
+ - [(#6804)](https://github.com/Microsoft/vcpkg/pull/6804) [azure] Update azure-iot-sdk-c for public-preview release of 2019-05-16
+
+- urdfdom `1.0.3` -> `1.0.3-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- urdfdom-headers `1.0.3` -> `1.0.4-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- usd `0.8.4` -> `0.8.4-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- uvatlas `sept2016-1` -> `apr2019`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- uvw `1.17.0_libuv-v1.29` -> `1.17.0_libuv-v1.29-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6844)](https://github.com/Microsoft/vcpkg/pull/6844) [vcpkg] Add optional 'Homepage' field to CONTROL
+
+- visit-struct `1.0` -> `1.0-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- vlpp `0.9.3.1-2` -> `0.10.0.0`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6793)](https://github.com/Microsoft/vcpkg/pull/6793) [vlpp] Upgrade to 0.10.0.0
+
+- vtk `8.2.0-2` -> `8.2.0-4`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6782)](https://github.com/Microsoft/vcpkg/pull/6782) [vtk] fix static hdf5 linkage.
+
+- vxl `v1.18.0-3` -> `v1.18.0-4`
+ - [(#6657)](https://github.com/Microsoft/vcpkg/pull/6657) [vxl] move problematic feature to optional one
+
+- wangle `2019.05.13.00` -> `2019.05.20.00-1`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- wil `2019-05-08` -> `2019-06-10`
+ - [(#6847)](https://github.com/Microsoft/vcpkg/pull/6847) Update commit for WIL
+
+- wt `4.0.5` -> `4.0.5-1`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6925)](https://github.com/Microsoft/vcpkg/pull/6925) [wt] Fix XML file installation path
+
+- xerces-c `3.2.2-9` -> `3.2.2-10`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6970)](https://github.com/Microsoft/vcpkg/pull/6970) [xerces-c]Replace the macro DLL_EXPORT with the macro XERCES_DLL_EXPORT
+
+- xeus `0.19.1-1` -> `0.19.2`
+ - [(#6618)](https://github.com/Microsoft/vcpkg/pull/6618) [many ports] Updates 2019.05.24
+
+- xsimd `7.2.3` -> `7.2.3-1`
+ - [(#7091)](https://github.com/Microsoft/vcpkg/pull/7091) [vcpkg] Update vcpkg_check_features document
+
+- xtensor `0.20.7` -> `0.20.7-1`
+ - [(#6958)](https://github.com/Microsoft/vcpkg/pull/6958) [vcpkg] Add vcpkg_check_features
+
+- xxhash `0.6.4-1` -> `0.7.0`
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+ - [(#6750)](https://github.com/Microsoft/vcpkg/pull/6750) [xxhash]Upgrade version to 0.7.0 and fix arm/uwp build errors.
+
+- z3 `4.8.4-1` -> `4.8.5-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6803)](https://github.com/Microsoft/vcpkg/pull/6803) [z3] bump version to 4.8.5
+
+- zopfli `2019-01-19` -> `2019-01-19-1`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- zserge-webview `2019-04-27-1` -> `2019-04-27-2`
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+
+- zxing-cpp `3.3.3-3` -> `3.3.3-5`
+ - [(#6371)](https://github.com/Microsoft/vcpkg/pull/6371) [openexr,openimageio,suitesparse,theia] updates for non-win32
+ - [(#6730)](https://github.com/Microsoft/vcpkg/pull/6730) [many ports] improvements for linux/wsl
+ - [(#6779)](https://github.com/Microsoft/vcpkg/pull/6779) [zxing-cpp] Fixed renaming zxing` -> `zxing-cpp`
+
+- zziplib `0.13.69-3` -> `0.13.69-4`
+ - [(#7090)](https://github.com/Microsoft/vcpkg/pull/7090) [zziplib] fix flaky build
+ - [(#2933)](https://github.com/Microsoft/vcpkg/pull/2933) [WIP] Add a Homepage URL entry for vcpkg ports
+
+
+-- vcpkg team vcpkg@microsoft.com WED, 16 Jul 2019 05:17:00 -0800
+
vcpkg (2018.11.23)
--------------
* Add ports:
diff --git a/docs/examples/overlay-triplets-linux-dynamic.md b/docs/examples/overlay-triplets-linux-dynamic.md
new file mode 100644
index 00000000000..6168d85e6fa
--- /dev/null
+++ b/docs/examples/overlay-triplets-linux-dynamic.md
@@ -0,0 +1,158 @@
+# Overlay triplets example: build dynamic libraries on Linux
+
+Using **vcpkg** you can build libraries for the following triplets:
+
+
+
+ - arm-uwp
+ - arm-windows
+ - arm64-uwp
+ - arm64-windows
+ - x86-uwp
+ - x86-windows
+ - x86-windows-static
+ - x64-uwp
+ - x64-linux
+ - x64-osx
+ - x64-windows
+ - x64-windows-static
+
+
+
+
+
+By design **vcpkg** builds only static libraries for Linux and Mac OS.
+However, this doesn't mean that you cannot use **vcpkg** to build your dynamic libraries on these platforms.
+
+This document will guide you through creating your own custom triplets to build dynamic libraries on Linux using **vcpkg**.
+
+### Step 1: Create a folder to contain your custom triplets
+
+```
+~/vcpkg$ mkdir ../custom-triplets
+```
+
+### Step 2: Create the custom triplet files
+
+To save time, copy the existing `x64-linux.cmake` triplet file.
+
+```
+~/vcpkg$ cp ./triplets/x64-linux.cmake ../custom-triplets/x64-linux-dynamic.cmake
+```
+
+And modify `custom-triplets/x64-linux-dynamic.cmake` to match the contents below:
+```
+set(VCPKG_TARGET_ARCHITECTURE x64)
+set(VCPKG_CRT_LINKAGE dynamic)
+# Change VCPKG_LIBRARY_LINKAGE from static to dynamic
+set(VCPKG_LIBRARY_LINKAGE dynamic)
+
+set(VCPKG_CMAKE_SYSTEM_NAME Linux)
+```
+
+### Step 3: Use `--overlay-triplets` to build dynamic libraries
+
+Use the `--overlay-triplets` option to include the triplets in the `custom-triplets` directory.
+
+```
+./vcpkg install sqlite3:x64-linux-dynamic --overlay-triplets=../custom-triplets
+The following packages will be built and installed:
+ sqlite3[core]:x64-linux
+Starting package 1/1: sqlite3:x64-linux-dynamic
+Building package sqlite3[core]:x64-linux-dynamic...
+-- Loading triplet configuration from: /home/custom-triplets/x64-linux-dynamic.cmake
+-- Downloading https://sqlite.org/2019/sqlite-amalgamation-3280000.zip...
+-- Extracting source /home/victor/git/vcpkg/downloads/sqlite-amalgamation-3280000.zip
+-- Applying patch fix-arm-uwp.patch
+-- Using source at /home/victor/git/vcpkg/buildtrees/sqlite3/src/3280000-6a3ff7ce92
+-- Configuring x64-linux-dynamic-dbg
+-- Configuring x64-linux-dynamic-rel
+-- Building x64-linux-dynamic-dbg
+-- Building x64-linux-dynamic-rel
+-- Performing post-build validation
+-- Performing post-build validation done
+Building package sqlite3[core]:x64-linux-dynamic... done
+Installing package sqlite3[core]:x64-linux-dynamic...
+Installing package sqlite3[core]:x64-linux-dynamic... done
+Elapsed time for package sqlite3:x64-linux-dynamic: 44.82 s
+
+Total elapsed time: 44.82 s
+
+The package sqlite3:x64-linux-dynamic provides CMake targets:
+
+ find_package(sqlite3 CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE sqlite3)
+```
+
+Overlay triplets will add your custom triplet files when using `vcpkg install`, `vcpkg update`, `vcpkg upgrade`, and `vcpkg remove`.
+
+When using the `--overlay-triplets` option, a message like the following lets you know that a custom triplet is being used:
+
+```
+-- Loading triplet configuration from: /home/custom-triplets/x64-linux-dynamic.cmake
+```
+
+## Overriding default triplets
+
+As you may have noticed, the default triplets for Windows (`x86-windows` and `x64-windows`) install dynamic libraries, while a suffix (`-static`) is needed for static libraries. This is inconsistent with Linux and Mac OS where only static libraries are built.
+
+Using `--overlay-ports` it is possible to override the default triplets to accomplish the same behavior on Linux:
+
+* `x64-linux`: Builds dynamic libraries,
+* `x64-linux-static`: Builds static libraries.
+
+### Step 1: Create the overriden triplet
+
+Using the custom triplet created in the previous example, rename `custom-triplets/x64-linux-dynamic.cmake` to `custom-triplets/x64-linux.cmake`.
+
+```
+~/vcpkg$ mv ../custom-triplets/x64-linux-dynamic.cmake ../custom-triplets/x64-linux.cmake
+```
+
+### Step 2: Copy and rename the default triplet
+
+Then, copy the default `x64-linux` triplet (which builds static libraries) in your `/custom-triplets` folder and rename it to `x64-linux-static.cmake`.
+
+```
+~/vcpkg$ cp ./triplets/x64-linux.cmake ../custom-triplets/x64-linux-static.cmake
+```
+
+### Step 3: Use `--overlay-ports` to override default triplets
+
+Use the `--overlay-triplets` option to include the triplets in the `custom-triplets` directory.
+
+```
+./vcpkg install sqlite3:x64-linux --overlay-triplets=../custom-triplets
+The following packages will be built and installed:
+ sqlite3[core]:x64-linux
+Starting package 1/1: sqlite3:x64-linux
+Building package sqlite3[core]:x64-linux...
+-- Loading triplet configuration from: /home/custom-triplets/x64-linux.cmake
+-- Downloading https://sqlite.org/2019/sqlite-amalgamation-3280000.zip...
+-- Extracting source /home/victor/git/vcpkg/downloads/sqlite-amalgamation-3280000.zip
+-- Applying patch fix-arm-uwp.patch
+-- Using source at /home/victor/git/vcpkg/buildtrees/sqlite3/src/3280000-6a3ff7ce92
+-- Configuring x64-linux-dbg
+-- Configuring x64-linux-rel
+-- Building x64-linux-dbg
+-- Building x64-linux-rel
+-- Performing post-build validation
+-- Performing post-build validation done
+Building package sqlite3[core]:x64-linux... done
+Installing package sqlite3[core]:x64-linux...
+Installing package sqlite3[core]:x64-linux... done
+Elapsed time for package sqlite3:x64-linux: 44.82 s
+
+Total elapsed time: 44.82 s
+
+The package sqlite3:x64-linux provides CMake targets:
+
+ find_package(sqlite3 CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE sqlite3)
+```
+
+Note that the default triplet is masked by your custom triplet:
+
+```
+-- Loading triplet configuration from: /home/custom-triplets/x64-linux.cmake
+```
diff --git a/ports/armadillo/CONTROL b/ports/armadillo/CONTROL
index 78f0a66c302..ef0c926a5be 100644
--- a/ports/armadillo/CONTROL
+++ b/ports/armadillo/CONTROL
@@ -1,4 +1,4 @@
Source: armadillo
-Version: 2019-04-16-3
+Version: 2019-04-16-4
Description: Armadillo is a high quality linear algebra library (matrix maths) for the C++ language, aiming towards a good balance between speed and ease of use
Build-Depends: openblas (!osx), clapack (!osx)
diff --git a/ports/armadillo/fix-CMakePath.patch b/ports/armadillo/fix-CMakePath.patch
new file mode 100644
index 00000000000..58cca5c64be
--- /dev/null
+++ b/ports/armadillo/fix-CMakePath.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9fea721..e6a273d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -473,7 +473,7 @@ install(EXPORT ArmadilloLibraryDepends DESTINATION
+ # and install it
+ set(ARMADILLO_INCLUDE_DIRS "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
+ set(ARMADILLO_LIB_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
+-set(ARMADILLO_CMAKE_DIR "${CMAKE_INSTALL_FULL_DATADIR}/Armadillo/CMake")
++set(ARMADILLO_CMAKE_DIR "${CMAKE_INSTALL_FULL_DATADIR}/Armadillo")
+
+
+ message(STATUS "Generating '${PROJECT_BINARY_DIR}/InstallFiles/ArmadilloConfig.cmake'")
diff --git a/ports/armadillo/portfile.cmake b/ports/armadillo/portfile.cmake
index 143591de649..4e5798f9b5c 100644
--- a/ports/armadillo/portfile.cmake
+++ b/ports/armadillo/portfile.cmake
@@ -11,6 +11,7 @@ vcpkg_from_gitlab(
HEAD_REF 9.400.x
PATCHES
remove_custom_modules.patch
+ fix-CMakePath.patch
)
file(REMOVE ${SOURCE_PATH}/cmake_aux/Modules/ARMA_FindBLAS.cmake)
@@ -31,6 +32,13 @@ vcpkg_copy_pdbs()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/Armadillo)
+file(GLOB SHARE_CONTENT ${CURRENT_PACKAGES_DIR}/share/Armadillo)
+list(LENGTH SHARE_CONTENT SHARE_LEN)
+if(SHARE_LEN EQUAL 0)
+ # On case sensitive file system there is an extra empty directory created that should be removed
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/Armadillo)
+endif()
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/armadillo)
file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/armadillo RENAME copyright)
diff --git a/ports/armadillo/usage b/ports/armadillo/usage
new file mode 100644
index 00000000000..58066f6a92b
--- /dev/null
+++ b/ports/armadillo/usage
@@ -0,0 +1,4 @@
+The package armadillo provides CMake targets:
+
+ find_package(Armadillo CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE ${ARMADILLO_LIBRARIES})
diff --git a/ports/basisu/CONTROL b/ports/basisu/CONTROL
new file mode 100644
index 00000000000..f514dbf2513
--- /dev/null
+++ b/ports/basisu/CONTROL
@@ -0,0 +1,5 @@
+Source: basisu
+Version: 0.0.1
+Homepage: https://github.com/BinomialLLC/basis_universal
+Description: Basis Universal is a supercompressed GPU texture and video compression format that outputs a highly compressed intermediate file format (.basis) that can be quickly transcoded to a wide variety of GPU texture compression formats.
+Build-Depends: lodepng
\ No newline at end of file
diff --git a/ports/basisu/portfile.cmake b/ports/basisu/portfile.cmake
new file mode 100644
index 00000000000..02956b584e0
--- /dev/null
+++ b/ports/basisu/portfile.cmake
@@ -0,0 +1,41 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO jherico/basis_universal
+ REF 11aa181a4bbf051475a01a1e73e39bf388819215
+ SHA512 62d7de6c6ca5e6235c8a377767389a7d5393e05bb5d0c024ce756e77d235132efa48280c9d529b6a91eddf0c906c3c84b6b78fdf339b1a47039b28d04161d2fe
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DBUILD_TESTS=OFF
+)
+
+vcpkg_install_cmake()
+
+#vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/basisu)
+if (WIN32)
+ set(TOOL_NAME basisu_tool.exe)
+else()
+ set(TOOL_NAME basisu_tool)
+endif()
+
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/basisu)
+file(COPY ${CURRENT_PACKAGES_DIR}/bin/${TOOL_NAME} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/basisu)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/basisu/LICENSE ${CURRENT_PACKAGES_DIR}/share/basisu/copyright)
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/basisu)
+
+# Remove unnecessary files
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/${TOOL_NAME})
+file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/${TOOL_NAME})
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+vcpkg_copy_pdbs()
diff --git a/ports/blend2d/CONTROL b/ports/blend2d/CONTROL
index ef22b526416..1854d386214 100644
--- a/ports/blend2d/CONTROL
+++ b/ports/blend2d/CONTROL
@@ -1,10 +1,10 @@
Source: blend2d
-Version: beta_2019-04-30
+Version: beta_2019-07-16
Description: Beta 2D Vector Graphics Powered by a JIT Compiler
Default-Features: jit, logging
Feature: jit
-Description: asmjit is used to jit compile pipelines
+Description: Default feature. Enables jit pipeline compilation. Not supported for ARM and UWP.
Feature: logging
-Description: enables logging
+Description: Default feature. Enables logging.
diff --git a/ports/blend2d/portfile.cmake b/ports/blend2d/portfile.cmake
index c23c90afd5c..39f665afd9a 100644
--- a/ports/blend2d/portfile.cmake
+++ b/ports/blend2d/portfile.cmake
@@ -3,12 +3,12 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO blend2d/blend2d
- REF 69141350b5a654f328c8529ae301aa1e6bad5342
- SHA512 d9bdd234f443c0ef8793dba1a76cc567bab3f9cf32d835d9e285f7ad946a56e0bc03eab30f61bbce51318e18a74ecfcfc965ac94e1ff6cef21e9b3ccc6a42120
+ REF 934d07161971aeef5c4ac3b15e69ff57929445ac
+ SHA512 71b17611c20a8a7d27a37b0984918ce4ed608d8d2d053d116cd4c0ca9b7fcad742f39ef9939d9addf600113c2ad399d1dc4ee72b5f036ccda58b7d4237316928
HEAD_REF master
)
-string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BLEND2D_BUILD_STATIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BLEND2D_STATIC)
if(NOT ("jit" IN_LIST FEATURES))
set(BLEND2D_BUILD_NO_JIT TRUE)
@@ -17,14 +17,13 @@ if(NOT ("logging" IN_LIST FEATURES))
set(BLEND2D_BUILD_NO_LOGGING TRUE)
endif()
-
if(NOT BLEND2D_BUILD_NO_JIT)
vcpkg_from_github(
OUT_SOURCE_PATH ASMJIT_SOURCE_PATH
REPO asmjit/asmjit
- REF f4e685cef003c40ad0d348d0c9eb2a1fe63d8521
- SHA512 77981fc32e746fc88f5707b4a8e8557283261b2657248f0d4900f47bd500de4efe47619a53f32413ea3c6f116e084cac6fdb48b6b92d75e824585d94c785d2b1
- HEAD_REF next-wip
+ REF 5d40561d14f93dc45613bfa03155d1dfb4f5825a
+ SHA512 88f16fc1ff8e9eb1b8d7441d7bd2e08d238a2104f3de94aaa16972faac704bf526996fa1556a3831701fb370f051df6839b4058690cf2f49ea5aeb1224c84fe0
+ HEAD_REF master
)
file(REMOVE_RECURSE ${SOURCE_PATH}/3rdparty/asmjit)
@@ -38,7 +37,7 @@ vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
- -DBLEND2D_BUILD_STATIC=${BLEND2D_BUILD_STATIC}
+ -DBLEND2D_STATIC=${BLEND2D_STATIC}
-DBLEND2D_BUILD_NO_JIT=${BLEND2D_BUILD_NO_JIT}
-DBLEND2D_BUILD_NO_LOGGING=${BLEND2D_BUILD_NO_LOGGING}
)
@@ -50,11 +49,16 @@ vcpkg_copy_pdbs()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-if(BLEND2D_BUILD_STATIC)
+if(BLEND2D_STATIC)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
endif()
# Handle copyright
-file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/blend2d RENAME copyright)
+configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
+
+if(BLEND2D_STATIC)
+ # Install usage
+ configure_file(${CMAKE_CURRENT_LIST_DIR}/usage ${CURRENT_PACKAGES_DIR}/share/${PORT}/usage @ONLY)
+endif()
diff --git a/ports/blend2d/usage b/ports/blend2d/usage
new file mode 100644
index 00000000000..b6d8a652cbd
--- /dev/null
+++ b/ports/blend2d/usage
@@ -0,0 +1 @@
+Define BL_STATIC before any @PORT@ includes.
diff --git a/ports/bond/CONTROL b/ports/bond/CONTROL
index 0d1b82bc31c..6e5daf0a901 100644
--- a/ports/bond/CONTROL
+++ b/ports/bond/CONTROL
@@ -1,6 +1,6 @@
-Source: bond
-Maintainer: bond@microsoft.com
-Version: 8.1.0
-Description: Bond is a cross-platform framework for working with schematized data. It supports cross-language de/serialization and powerful generic mechanisms for efficiently manipulating data. Bond is broadly used at Microsoft in high scale services.
-Homepage: https://github.com/Microsoft/bond
-Build-Depends: rapidjson, boost-config, boost-utility, boost-assign
+Source: bond
+Maintainer: bond@microsoft.com
+Version: 8.1.0-2
+Description: Bond is a cross-platform framework for working with schematized data. It supports cross-language de/serialization and powerful generic mechanisms for efficiently manipulating data. Bond is broadly used at Microsoft in high scale services.
+Homepage: https://github.com/Microsoft/bond
+Build-Depends: rapidjson, boost-config, boost-utility, boost-assign
diff --git a/ports/bond/portfile.cmake b/ports/bond/portfile.cmake
index 42755dbf924..921b1b8cc82 100644
--- a/ports/bond/portfile.cmake
+++ b/ports/bond/portfile.cmake
@@ -29,22 +29,11 @@ if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "windows" OR
endif()
else()
- message(STATUS "Installing stack...")
- vcpkg_download_distfile(
- ARCHIVE
- URLS "https://get.haskellstack.org/"
- FILENAME "stack-install.sh"
- SHA512 6db2008297416ad856aa498908bf695737cf3cc466440397720a458358e9661d07abdba762662080ee8bbd8171cdcb05eec6d3696382575c099adfb8427e05fd
- )
-
- set(BASH /bin/bash)
-
- vcpkg_execute_required_process(
- COMMAND ${BASH} --noprofile --norc "${ARCHIVE}" -f
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}
- LOGNAME install-stack
- )
-
+ # According to the readme on https://github.com/microsoft/bond/
+ # The build needs a version of the Haskel Tool stack that is newer than some distros ship with.
+ # For this reason the message is not guarded by checking to see if the tool is installed.
+ message("\nA recent version of Haskell Tool Stack is required to build.\n For information on how to install see https://docs.haskellstack.org/en/stable/README/\n")
+
endif()
vcpkg_configure_cmake(
diff --git a/ports/boost-asio/CONTROL b/ports/boost-asio/CONTROL
index 3d93e7c0734..123d9f854e4 100644
--- a/ports/boost-asio/CONTROL
+++ b/ports/boost-asio/CONTROL
@@ -1,6 +1,6 @@
# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
Source: boost-asio
-Version: 1.70.0-1
+Version: 1.70.0-2
Build-Depends: boost-array, boost-assert, boost-bind, boost-chrono, boost-compatibility, boost-config, boost-coroutine (!uwp), boost-date-time, boost-detail, boost-function, boost-integer, boost-regex, boost-smart-ptr, boost-system, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, openssl
Homepage: https://github.com/boostorg/asio
Description: Boost asio module
diff --git a/ports/boost-asio/portfile.cmake b/ports/boost-asio/portfile.cmake
index dbb2b239c02..f24dd1aeda5 100644
--- a/ports/boost-asio/portfile.cmake
+++ b/ports/boost-asio/portfile.cmake
@@ -8,6 +8,7 @@ vcpkg_from_github(
REF boost-1.70.0
SHA512 394c7e557d97bbb8b98453846a098c8ab7f4eb92d752bd4089d2020e0d5060cff1e53f5e50b2f8910e64b66c934b2bde4a7137bd1a6050e8b1279c2e4576b2e5
HEAD_REF master
+ PATCHES windows_alloca_header.patch
)
include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
diff --git a/ports/boost-asio/windows_alloca_header.patch b/ports/boost-asio/windows_alloca_header.patch
new file mode 100644
index 00000000000..609e1ebfe11
--- /dev/null
+++ b/ports/boost-asio/windows_alloca_header.patch
@@ -0,0 +1,15 @@
+diff --git a/include/boost/asio/detail/impl/socket_ops.ipp b/include/boost/asio/detail/impl/socket_ops.ipp
+index 7d7c31f..d2cd468 100644
+--- a/include/boost/asio/detail/impl/socket_ops.ipp
++++ b/include/boost/asio/detail/impl/socket_ops.ipp
+@@ -27,6 +27,10 @@
+ #include
+ #include
+
++#if defined(BOOST_ASIO_WINDOWS)
++#include
++#endif
++
+ #if defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ # include
+ # include
diff --git a/ports/boost-type-erasure/CONTROL b/ports/boost-type-erasure/CONTROL
index d9090d787ee..ef2b1699e7b 100644
--- a/ports/boost-type-erasure/CONTROL
+++ b/ports/boost-type-erasure/CONTROL
@@ -1,6 +1,6 @@
# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
Source: boost-type-erasure
-Version: 1.70.0
-Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-fusion, boost-iterator, boost-modular-build-helper, boost-mp11, boost-mpl, boost-preprocessor, boost-smart-ptr, boost-thread (!arm), boost-throw-exception, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-vmd
+Version: 1.70.0-1
+Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-fusion, boost-iterator, boost-modular-build-helper, boost-mp11, boost-mpl, boost-preprocessor, boost-smart-ptr, boost-thread, boost-throw-exception, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-vmd
Homepage: https://github.com/boostorg/type_erasure
Description: Boost type_erasure module
diff --git a/ports/botan/portfile.cmake b/ports/botan/portfile.cmake
index 81eb3706c78..6d0c81c8d66 100644
--- a/ports/botan/portfile.cmake
+++ b/ports/botan/portfile.cmake
@@ -15,7 +15,7 @@ vcpkg_from_github(
if(CMAKE_HOST_WIN32)
vcpkg_find_acquire_program(JOM)
set(build_tool "${JOM}")
- set(parallel_build "/J ${VCPKG_CONCURRENCY}")
+ set(parallel_build "/J${VCPKG_CONCURRENCY}")
else()
find_program(MAKE make)
set(build_tool "${MAKE}")
@@ -87,8 +87,8 @@ function(BOTAN_BUILD BOTAN_BUILD_TYPE)
message(STATUS "Build ${TARGET_TRIPLET}-${BOTAN_BUILD_TYPE}")
vcpkg_execute_build_process(
- COMMAND ${build_tool}
- NO_PARALLEL_COMMAND "${build_tool} ${parallel_build}"
+ COMMAND "${build_tool}" ${parallel_build}
+ NO_PARALLEL_COMMAND "${build_tool}"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BOTAN_BUILD_TYPE}"
LOGNAME build-${TARGET_TRIPLET}-${BOTAN_BUILD_TYPE})
message(STATUS "Build ${TARGET_TRIPLET}-${BOTAN_BUILD_TYPE} done")
diff --git a/ports/clapack/CONTROL b/ports/clapack/CONTROL
index 2b5d137fcb9..9e7328e70ab 100644
--- a/ports/clapack/CONTROL
+++ b/ports/clapack/CONTROL
@@ -1,5 +1,5 @@
Source: clapack
-Version: 3.2.1-9
+Version: 3.2.1-10
Homepage: https://www.netlib.org/clapack
Description: CLAPACK (f2c'ed version of LAPACK)
Build-Depends: openblas (!osx)
diff --git a/ports/clapack/FindLAPACK.cmake b/ports/clapack/FindLAPACK.cmake
index 002218eb8d5..0b5924ff4a4 100644
--- a/ports/clapack/FindLAPACK.cmake
+++ b/ports/clapack/FindLAPACK.cmake
@@ -1,237 +1,468 @@
-#.rst:
-# clapack config for vcpkg
-# ------------
-#
-# Find the clapack includes and library.
-#
-# Result Variables
-# ^^^^^^^^^^^^^^^^
-#
-# This script defines the following variables:
-#
-# ``CLAPACK_FOUND``
-# True if clapack library found
-#
-# ``CLAPACK_VERSION``
-# Containing the clapack version tag (manually defined)
-#
-# ``CLAPACK_INCLUDE_DIR``
-# Location of clapack headers
-#
-# ``CLAPACK_LIBRARY``
-# List of libraries to link with when using clapack
-#
-# Result Targets
-# ^^^^^^^^^^^^^^
-#
-# This script defines the following targets:
-#
-# ``clapack::clapack``
-# Target to use clapack
-#
-# Compatibility Variables
-# ^^^^^^^^^^^^^^^^^^^^^^^
-#
-# This script defines the following variables for compatibility reasons:
-#
-# ``F2C_FOUND``
-# True if f2c (fortran-to-c wrap layer) library found
-#
-# ``F2C_INCLUDE_DIR``
-# Location of clapack headers
-#
-# ``F2C_LIBRARY``
-# Library containing the fortran-to-c wrap layer, necessary for clapack and automatically included when used
-#
-# ``LAPACK_FOUND``
-# True if clapack library found
-#
-# ``LAPACK_VERSION``
-# Containing the clapack version tag (manually defined)
-#
-# ``LAPACK_INCLUDE_DIR``
-# Location of clapack headers
-#
-# ``LAPACK_LIBRARY``
-# List of libraries to link with when using clapack
-#
-# Compatibility Targets
-# ^^^^^^^^^^^^^^
-#
-# This script defines the following targets for compatibility reasons:
-#
-# ``lapack``
-# Target to use lapack
-
-include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
-include(${CMAKE_ROOT}/Modules/CheckSymbolExists.cmake)
-include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
-include(${CMAKE_ROOT}/Modules/CMakeFindDependencyMacro.cmake)
-
-set(CLAPACK_VERSION "3.2.1")
-
-set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
-find_dependency(Threads)
-
-if(UNIX)
- find_library(ADDITIONAL_LAPACK_LIBRARY m)
- set(PTHREAD_LINK_NAME "-pthread")
-endif()
-
-if(NOT F2C_LIBRARY)
- find_library(F2C_LIBRARY_RELEASE NAMES f2c libf2c)
- find_library(F2C_LIBRARY_DEBUG NAMES f2cd libf2cd)
- select_library_configurations(F2C)
-
- #keep a list of "pure" f2c libs, without dependencies
- set(oF2C_LIBRARY_RELEASE ${F2C_LIBRARY_RELEASE})
- set(oF2C_LIBRARY_DEBUG ${F2C_LIBRARY_DEBUG})
- set(oF2C_LIBRARY ${F2C_LIBRARY})
-
- list(APPEND F2C_LIBRARY ${ADDITIONAL_LAPACK_LIBRARY})
-endif()
-
-if(NOT LAPACK_LIBRARY)
- find_library(LAPACK_LIBRARY_RELEASE NAMES lapack)
- find_library(LAPACK_LIBRARY_DEBUG NAMES lapackd)
-
- #keep a list of "pure" lapack libs, without dependencies
- set(oLAPACK_LIBRARY_RELEASE ${LAPACK_LIBRARY_RELEASE})
- set(oLAPACK_LIBRARY_DEBUG ${LAPACK_LIBRARY_DEBUG})
- select_library_configurations(oLAPACK)
-
- list(APPEND LAPACK_LIBRARY_RELEASE ${F2C_LIBRARY_RELEASE})
- list(APPEND LAPACK_LIBRARY_DEBUG ${F2C_LIBRARY_DEBUG})
-
- find_dependency(BLAS)
- get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY IMPORTED_IMPLIB_RELEASE)
- if(NOT _loc)
- get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY LOCATION_RELEASE)
- endif()
- set(LAPACK_BLAS_LIBRARY_RELEASE ${_loc})
- get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY IMPORTED_IMPLIB_DEBUG)
- if(NOT _loc)
- get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY LOCATION_DEBUG)
- endif()
- set(LAPACK_BLAS_LIBRARY_DEBUG ${_loc})
- select_library_configurations(LAPACK_BLAS)
- list(APPEND LAPACK_LIBRARY_RELEASE ${LAPACK_BLAS_LIBRARY_RELEASE})
- list(APPEND LAPACK_LIBRARY_DEBUG ${LAPACK_BLAS_LIBRARY_DEBUG})
-
- select_library_configurations(LAPACK)
- list(APPEND LAPACK_LIBRARY Threads::Threads)
-endif()
-
-if(NOT F2C_INCLUDE_DIR)
- find_path(F2C_INCLUDE_DIR NAMES f2c.h)
-endif()
-
-if(NOT LAPACK_INCLUDE_DIR)
- find_path(LAPACK_INCLUDE_DIR NAMES clapack.h)
-endif()
-
-list(APPEND LAPACK_INCLUDE_DIR ${F2C_INCLUDE_DIR})
-set(LAPACK_INCLUDE_DIR "${LAPACK_INCLUDE_DIR}" CACHE PATH "" FORCE)
-set(LAPACK_INCLUDE_DIRS "${LAPACK_INCLUDE_DIR}" CACHE PATH "" FORCE)
-set(CLAPACK_INCLUDE_DIR "${LAPACK_INCLUDE_DIR}" CACHE PATH "" FORCE)
-set(CLAPACK_INCLUDE_DIRS "${LAPACK_INCLUDE_DIR}" CACHE PATH "" FORCE)
-set(F2C_INCLUDE_DIRS "${F2C_INCLUDE_DIR}" CACHE PATH "" FORCE)
-
-set(LAPACK_DLL_DIR ${LAPACK_INCLUDE_DIR})
-list(TRANSFORM LAPACK_DLL_DIR APPEND "/../bin")
-message(STATUS "LAPACK_DLL_DIR: ${LAPACK_DLL_DIR}")
-
-if(WIN32)
- find_file(LAPACK_LIBRARY_RELEASE_DLL NAMES lapack.dll PATHS ${LAPACK_DLL_DIR})
- find_file(LAPACK_LIBRARY_DEBUG_FOLDER NAMES lapackd.dll PATHS ${LAPACK_DLL_DIR})
- find_file(F2C_LIBRARY_RELEASE_DLL NAMES f2c.dll libf2c.dll PATHS ${LAPACK_DLL_DIR})
- find_file(F2C_LIBRARY_DEBUG_DLL NAMES f2cd.dll libf2cd.dll PATHS ${LAPACK_DLL_DIR})
-endif()
-
-set(LAPACK_BLAS_LIBRARY "${LAPACK_BLAS_LIBRARY}" CACHE STRING "" FORCE)
-set(F2C_LIBRARIES "${F2C_LIBRARY}" CACHE STRING "" FORCE)
-set(LAPACK_VERSION "${CLAPACK_VERSION}" CACHE STRING "" FORCE)
-set(LAPACK_LIBRARIES "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
-set(CLAPACK_LIBRARY "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
-set(CLAPACK_LIBRARIES "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
-
-set(LAPACK_LIBRARY "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
-set(F2C_LIBRARY "${F2C_LIBRARY}" CACHE STRING "" FORCE)
-set(LAPACK_LIBRARY_RELEASE "${LAPACK_LIBRARY_RELEASE}" CACHE STRING "" FORCE)
-set(LAPACK_LIBRARY_DEBUG "${LAPACK_LIBRARY_DEBUG}" CACHE STRING "" FORCE)
-set(F2C_LIBRARY_RELEASE "${F2C_LIBRARY_RELEASE}" CACHE STRING "" FORCE)
-set(F2C_LIBRARY_DEBUG "${F2C_LIBRARY_DEBUG}" CACHE STRING "" FORCE)
-
-find_package_handle_standard_args(CLAPACK DEFAULT_MSG CLAPACK_LIBRARY CLAPACK_INCLUDE_DIR)
-mark_as_advanced(CLAPACK_INCLUDE_DIR CLAPACK_LIBRARY)
-
-find_package_handle_standard_args(LAPACK DEFAULT_MSG LAPACK_LIBRARY LAPACK_INCLUDE_DIR)
-mark_as_advanced(LAPACK_INCLUDE_DIR LAPACK_LIBRARY)
-
-find_package_handle_standard_args(F2C DEFAULT_MSG F2C_LIBRARY F2C_INCLUDE_DIR)
-mark_as_advanced(F2C_INCLUDE_DIR F2C_LIBRARY)
-
-#TARGETS
-if(CLAPACK_FOUND AND NOT TARGET clapack::clapack)
- if(EXISTS "${LAPACK_LIBRARY_RELEASE_DLL}")
- add_library(clapack::clapack SHARED IMPORTED)
- set_target_properties(clapack::clapack PROPERTIES
- IMPORTED_LOCATION_RELEASE "${LAPACK_LIBRARY_RELEASE_DLL}"
- IMPORTED_IMPLIB_RELEASE "${oLAPACK_LIBRARY_RELEASE}"
- INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
- INTERFACE_LINK_LIBRARIES "$<$>:${oF2C_LIBRARY_RELEASE}>;$<$:${oF2C_LIBRARY_DEBUG}>;$<$>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$:${LAPACK_BLAS_LIBRARY_DEBUG}>;$;$"
- IMPORTED_CONFIGURATIONS Release
- IMPORTED_LINK_INTERFACE_LANGUAGES "C")
- if(EXISTS "${LAPACK_LIBRARY_DEBUG_DLL}")
- set_property(TARGET clapack::clapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
- set_target_properties(clapack::clapack PROPERTIES
- IMPORTED_LOCATION_DEBUG "${LAPACK_LIBRARY_DEBUG_DLL}"
- IMPORTED_IMPLIB_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
- endif()
- else()
- add_library(clapack::clapack UNKNOWN IMPORTED)
- set_target_properties(clapack::clapack PROPERTIES
- IMPORTED_LOCATION_RELEASE "${oLAPACK_LIBRARY_RELEASE}"
- INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
- INTERFACE_LINK_LIBRARIES "$<$>:${oF2C_LIBRARY_RELEASE}>;$<$:${oF2C_LIBRARY_DEBUG}>;$<$>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$:${LAPACK_BLAS_LIBRARY_DEBUG}>;$;$"
- IMPORTED_CONFIGURATIONS Release
- IMPORTED_LINK_INTERFACE_LANGUAGES "C")
- if(EXISTS "${LAPACK_LIBRARY_DEBUG}")
- set_property(TARGET clapack::clapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
- set_target_properties(clapack::clapack PROPERTIES
- IMPORTED_LOCATION_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
- endif()
- endif()
-endif()
-
-if(CLAPACK_FOUND AND NOT TARGET lapack)
- if(EXISTS "${LAPACK_LIBRARY_RELEASE_DLL}")
- add_library(lapack SHARED IMPORTED)
- set_target_properties(lapack PROPERTIES
- IMPORTED_LOCATION_RELEASE "${LAPACK_LIBRARY_RELEASE_DLL}"
- IMPORTED_IMPLIB_RELEASE "${oLAPACK_LIBRARY_RELEASE}"
- INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
- INTERFACE_LINK_LIBRARIES "$<$>:${oF2C_LIBRARY_RELEASE}>;$<$:${oF2C_LIBRARY_DEBUG}>;$<$>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$:${LAPACK_BLAS_LIBRARY_DEBUG}>;$;$"
- IMPORTED_CONFIGURATIONS Release
- IMPORTED_LINK_INTERFACE_LANGUAGES "C")
- if(EXISTS "${LAPACK_LIBRARY_DEBUG_DLL}")
- set_property(TARGET lapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
- set_target_properties(lapack PROPERTIES
- IMPORTED_LOCATION_DEBUG "${LAPACK_LIBRARY_DEBUG_DLL}"
- IMPORTED_IMPLIB_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
- endif()
- else()
- add_library(lapack UNKNOWN IMPORTED)
- set_target_properties(lapack PROPERTIES
- IMPORTED_LOCATION_RELEASE "${oLAPACK_LIBRARY_RELEASE}"
- INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
- IMPORTED_CONFIGURATIONS Release
- INTERFACE_LINK_LIBRARIES "$<$>:${oF2C_LIBRARY_RELEASE}>;$<$:${oF2C_LIBRARY_DEBUG}>;$<$>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$:${LAPACK_BLAS_LIBRARY_DEBUG}>;$;$"
- IMPORTED_LINK_INTERFACE_LANGUAGES "C")
- if(EXISTS "${LAPACK_LIBRARY_DEBUG}")
- set_property(TARGET lapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
- set_target_properties(lapack PROPERTIES
- IMPORTED_LOCATION_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
- endif()
- endif()
-endif()
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindLAPACK
+----------
+
+Find LAPACK library
+
+This module finds an installed fortran library that implements the
+LAPACK linear-algebra interface (see http://www.netlib.org/lapack/).
+
+The approach follows that taken for the autoconf macro file,
+acx_lapack.m4 (distributed at
+http://ac-archive.sourceforge.net/ac-archive/acx_lapack.html).
+
+Input Variables
+^^^^^^^^^^^^^^^
+
+The following variables may be set to influence this module's behavior:
+
+``BLA_STATIC``
+ if ``ON`` use static linkage
+
+``BLA_VENDOR``
+ If set, checks only the specified vendor, if not set checks all the
+ possibilities. List of vendors valid in this module:
+
+ * ``Intel10_32`` (intel mkl v10 32 bit)
+ * ``Intel10_64lp`` (intel mkl v10+ 64 bit, threaded code, lp64 model)
+ * ``Intel10_64lp_seq`` (intel mkl v10+ 64 bit, sequential code, lp64 model)
+ * ``Intel10_64ilp`` (intel mkl v10+ 64 bit, threaded code, ilp64 model)
+ * ``Intel10_64ilp_seq`` (intel mkl v10+ 64 bit, sequential code, ilp64 model)
+ * ``Intel`` (obsolete versions of mkl 32 and 64 bit)
+ * ``OpenBLAS``
+ * ``FLAME``
+ * ``ACML``
+ * ``Apple``
+ * ``NAS``
+ * ``Generic``
+
+``BLA_F95``
+ if ``ON`` tries to find BLAS95/LAPACK95
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module defines the following variables:
+
+``LAPACK_FOUND``
+ library implementing the LAPACK interface is found
+``LAPACK_LINKER_FLAGS``
+ uncached list of required linker flags (excluding -l and -L).
+``LAPACK_LIBRARIES``
+ uncached list of libraries (using full path name) to link against
+ to use LAPACK
+``LAPACK95_LIBRARIES``
+ uncached list of libraries (using full path name) to link against
+ to use LAPACK95
+``LAPACK95_FOUND``
+ library implementing the LAPACK95 interface is found
+
+.. note::
+
+ C or CXX must be enabled to use Intel MKL
+
+ For example, to use Intel MKL libraries and/or Intel compiler:
+
+ .. code-block:: cmake
+
+ set(BLA_VENDOR Intel10_64lp)
+ find_package(LAPACK)
+#]=======================================================================]
+
+set(_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+
+# Check the language being used
+if( NOT (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED OR CMAKE_Fortran_COMPILER_LOADED) )
+ if(LAPACK_FIND_REQUIRED)
+ message(FATAL_ERROR "FindLAPACK requires Fortran, C, or C++ to be enabled.")
+ else()
+ message(STATUS "Looking for LAPACK... - NOT found (Unsupported languages)")
+ return()
+ endif()
+endif()
+
+if (CMAKE_Fortran_COMPILER_LOADED)
+include(${CMAKE_ROOT}/Modules/CheckFortranFunctionExists.cmake)
+else ()
+include(${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
+endif ()
+include(${CMAKE_ROOT}/Modules/CMakePushCheckState.cmake)
+include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
+
+cmake_push_check_state()
+set(CMAKE_REQUIRED_QUIET ${LAPACK_FIND_QUIETLY})
+
+set(LAPACK_FOUND FALSE)
+set(LAPACK95_FOUND FALSE)
+
+# TODO: move this stuff to separate module
+
+macro(Check_Lapack_Libraries LIBRARIES _prefix _name _flags _list _blas _threads)
+# This macro checks for the existence of the combination of fortran libraries
+# given by _list. If the combination is found, this macro checks (using the
+# Check_Fortran_Function_Exists macro) whether can link against that library
+# combination using the name of a routine given by _name using the linker
+# flags given by _flags. If the combination of libraries is found and passes
+# the link test, LIBRARIES is set to the list of complete library paths that
+# have been found. Otherwise, LIBRARIES is set to FALSE.
+
+# N.B. _prefix is the prefix applied to the names of all cached variables that
+# are generated internally and marked advanced by this macro.
+
+set(_libraries_work TRUE)
+set(${LIBRARIES})
+set(${LIBRARIES}_RELEASE)
+set(_combined_name)
+if (NOT _libdir)
+ if (WIN32)
+ set(_libdir ENV LIB)
+ elseif (APPLE)
+ set(_libdir ENV DYLD_LIBRARY_PATH)
+ else ()
+ set(_libdir ENV LD_LIBRARY_PATH)
+ endif ()
+endif ()
+
+list(APPEND _libdir "${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}")
+
+foreach(_library ${_list})
+ set(_combined_name ${_combined_name}_${_library})
+
+ if(_libraries_work)
+ if (BLA_STATIC)
+ if (WIN32)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ endif ()
+ if (APPLE)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ else ()
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ endif ()
+ else ()
+ if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ # for ubuntu's libblas3gf and liblapack3gf packages
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} .so.3gf)
+ endif ()
+ endif ()
+ find_library(${_prefix}_${_library}_LIBRARY_RELEASE
+ NAMES ${_library}
+ PATHS ${_libdir}
+ )
+ mark_as_advanced(${_prefix}_${_library}_LIBRARY_RELEASE)
+ find_library(${_prefix}_${_library}_LIBRARY_DEBUG
+ NAMES ${_library}d
+ PATHS ${_libdir}
+ )
+ mark_as_advanced(${_prefix}_${_library}_LIBRARY_DEBUG)
+ select_library_configurations(${_prefix}_${_library})
+ if(NOT ${_prefix}_${_library}_LIBRARY_RELEASE MATCHES "NOTFOUND")
+ set(${LIBRARIES}_RELEASE ${${LIBRARIES}_RELEASE} ${${_prefix}_${_library}_LIBRARY_RELEASE})
+ endif()
+ set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY})
+ set(_libraries_work ${${_prefix}_${_library}_LIBRARY})
+ endif()
+endforeach()
+
+if(_libraries_work)
+ # Test this combination of libraries.
+ if(NOT "${_blas}" STREQUAL "")
+ string(GENEX_STRIP "${_blas}" _test_blas)
+ endif()
+ if(UNIX AND BLA_STATIC)
+ set(CMAKE_REQUIRED_LIBRARIES ${_flags} "-Wl,--start-group" ${${LIBRARIES}_RELEASE} ${_test_blas} "-Wl,--end-group" ${_threads})
+ else()
+ set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}_RELEASE} ${_test_blas} ${_threads})
+ endif()
+ #message("DEBUG: CMAKE_REQUIRED_LIBRARIES = ${CMAKE_REQUIRED_LIBRARIES}")
+ #message("DEBUG: _test_blas = ${_test_blas} former ${_blas}")
+ if (NOT CMAKE_Fortran_COMPILER_LOADED)
+ check_function_exists("${_name}_" ${_prefix}${_combined_name}_WORKS)
+ else ()
+ check_fortran_function_exists(${_name} ${_prefix}${_combined_name}_WORKS)
+ endif ()
+ set(CMAKE_REQUIRED_LIBRARIES)
+ set(_test_blas)
+ set(_libraries_work ${${_prefix}${_combined_name}_WORKS})
+# message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}")
+endif()
+
+ if(_libraries_work)
+ set(${LIBRARIES} ${${LIBRARIES}} "${_blas}" ${_threads})
+ else()
+ set(${LIBRARIES} FALSE)
+ endif()
+
+endmacro()
+
+
+set(LAPACK_LINKER_FLAGS)
+set(LAPACK_LIBRARIES)
+set(LAPACK95_LIBRARIES)
+
+
+if(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED)
+ find_package(BLAS)
+else()
+ find_package(BLAS REQUIRED)
+endif()
+
+
+if(BLAS_FOUND)
+ set(LAPACK_LINKER_FLAGS ${BLAS_LINKER_FLAGS})
+ if (NOT $ENV{BLA_VENDOR} STREQUAL "")
+ set(BLA_VENDOR $ENV{BLA_VENDOR})
+ else ()
+ if(NOT BLA_VENDOR)
+ set(BLA_VENDOR "All")
+ endif()
+ endif ()
+
+#intel lapack
+if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
+ if (NOT WIN32)
+ set(LAPACK_mkl_LM "-lm")
+ set(LAPACK_mkl_LDL "-ldl")
+ endif ()
+ if (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
+ if(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED)
+ find_PACKAGE(Threads)
+ else()
+ find_package(Threads REQUIRED)
+ endif()
+
+ if (BLA_VENDOR MATCHES "_64ilp")
+ set(LAPACK_mkl_ILP_MODE "ilp64")
+ else ()
+ set(LAPACK_mkl_ILP_MODE "lp64")
+ endif ()
+
+ set(LAPACK_SEARCH_LIBS "")
+
+ if (BLA_F95)
+ set(LAPACK_mkl_SEARCH_SYMBOL "cheev_f95")
+ set(_LIBRARIES LAPACK95_LIBRARIES)
+ set(_BLAS_LIBRARIES ${BLAS95_LIBRARIES})
+
+ # old
+ list(APPEND LAPACK_SEARCH_LIBS
+ "mkl_lapack95")
+ # new >= 10.3
+ list(APPEND LAPACK_SEARCH_LIBS
+ "mkl_intel_c")
+ list(APPEND LAPACK_SEARCH_LIBS
+ "mkl_lapack95_${LAPACK_mkl_ILP_MODE}")
+ else()
+ set(LAPACK_mkl_SEARCH_SYMBOL "cheev")
+ set(_LIBRARIES LAPACK_LIBRARIES)
+ set(_BLAS_LIBRARIES ${BLAS_LIBRARIES})
+
+ # old
+ list(APPEND LAPACK_SEARCH_LIBS
+ "mkl_lapack")
+ endif()
+
+ # First try empty lapack libs
+ if (NOT ${_LIBRARIES})
+ check_lapack_libraries(
+ ${_LIBRARIES}
+ LAPACK
+ ${LAPACK_mkl_SEARCH_SYMBOL}
+ ""
+ ""
+ "${_BLAS_LIBRARIES}"
+ ""
+ )
+ endif ()
+ # Then try the search libs
+ foreach (IT ${LAPACK_SEARCH_LIBS})
+ if (NOT ${_LIBRARIES})
+ check_lapack_libraries(
+ ${_LIBRARIES}
+ LAPACK
+ ${LAPACK_mkl_SEARCH_SYMBOL}
+ ""
+ "${IT}"
+ "${_BLAS_LIBRARIES}"
+ "${CMAKE_THREAD_LIBS_INIT};${LAPACK_mkl_LM};${LAPACK_mkl_LDL}"
+ )
+ endif ()
+ endforeach ()
+
+ unset(LAPACK_mkl_ILP_MODE)
+ unset(LAPACK_mkl_SEARCH_SYMBOL)
+ unset(LAPACK_mkl_LM)
+ unset(LAPACK_mkl_LDL)
+ endif ()
+endif()
+
+if (BLA_VENDOR STREQUAL "Goto" OR BLA_VENDOR STREQUAL "All")
+ if(NOT LAPACK_LIBRARIES)
+ check_lapack_libraries(
+ LAPACK_LIBRARIES
+ LAPACK
+ cheev
+ ""
+ "goto2"
+ "${BLAS_LIBRARIES}"
+ ""
+ )
+ endif()
+endif ()
+
+if (BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All")
+ if(NOT LAPACK_LIBRARIES)
+ check_lapack_libraries(
+ LAPACK_LIBRARIES
+ LAPACK
+ cheev
+ ""
+ "openblas"
+ "${BLAS_LIBRARIES}"
+ ""
+ )
+ endif()
+endif ()
+
+if (BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
+ if(NOT LAPACK_LIBRARIES)
+ check_lapack_libraries(
+ LAPACK_LIBRARIES
+ LAPACK
+ cheev
+ ""
+ "flame"
+ "${BLAS_LIBRARIES}"
+ ""
+ )
+ endif()
+endif ()
+
+#acml lapack
+ if (BLA_VENDOR MATCHES "ACML" OR BLA_VENDOR STREQUAL "All")
+ if (BLAS_LIBRARIES MATCHES ".+acml.+")
+ set (LAPACK_LIBRARIES ${BLAS_LIBRARIES})
+ endif ()
+ endif ()
+
+# Apple LAPACK library?
+if (BLA_VENDOR STREQUAL "Apple" OR BLA_VENDOR STREQUAL "All")
+ if(NOT LAPACK_LIBRARIES)
+ check_lapack_libraries(
+ LAPACK_LIBRARIES
+ LAPACK
+ cheev
+ ""
+ "Accelerate"
+ "${BLAS_LIBRARIES}"
+ ""
+ )
+ endif()
+endif ()
+if (BLA_VENDOR STREQUAL "NAS" OR BLA_VENDOR STREQUAL "All")
+ if ( NOT LAPACK_LIBRARIES )
+ check_lapack_libraries(
+ LAPACK_LIBRARIES
+ LAPACK
+ cheev
+ ""
+ "vecLib"
+ "${BLAS_LIBRARIES}"
+ ""
+ )
+ endif ()
+endif ()
+# Generic LAPACK library?
+if (BLA_VENDOR STREQUAL "Generic" OR
+ BLA_VENDOR STREQUAL "ATLAS" OR
+ BLA_VENDOR STREQUAL "All")
+ if ( NOT LAPACK_LIBRARIES )
+ check_lapack_libraries(
+ LAPACK_LIBRARIES
+ LAPACK
+ cheev
+ ""
+ "lapack"
+ "${BLAS_LIBRARIES}"
+ ""
+ )
+ endif ()
+ if ( NOT LAPACK_LIBRARIES )
+ check_lapack_libraries(
+ LAPACK_LIBRARIES
+ LAPACK
+ cheev
+ ""
+ "lapack;libf2c"
+ "${BLAS_LIBRARIES}"
+ ""
+ )
+ endif ()
+ if ( NOT LAPACK_LIBRARIES )
+ check_lapack_libraries(
+ LAPACK_LIBRARIES
+ LAPACK
+ cheev
+ ""
+ "lapack;f2c"
+ "${BLAS_LIBRARIES}"
+ ""
+ )
+ endif ()
+endif ()
+
+else()
+ message(STATUS "LAPACK requires BLAS")
+endif()
+
+if(BLA_F95)
+ if(LAPACK95_LIBRARIES)
+ set(LAPACK95_FOUND TRUE)
+ else()
+ set(LAPACK95_FOUND FALSE)
+ endif()
+ if(NOT LAPACK_FIND_QUIETLY)
+ if(LAPACK95_FOUND)
+ message(STATUS "A library with LAPACK95 API found.")
+ else()
+ if(LAPACK_FIND_REQUIRED)
+ message(FATAL_ERROR
+ "A required library with LAPACK95 API not found. Please specify library location."
+ )
+ else()
+ message(STATUS
+ "A library with LAPACK95 API not found. Please specify library location."
+ )
+ endif()
+ endif()
+ endif()
+ set(LAPACK_FOUND "${LAPACK95_FOUND}")
+ set(LAPACK_LIBRARIES "${LAPACK95_LIBRARIES}")
+else()
+ if(LAPACK_LIBRARIES)
+ set(LAPACK_FOUND TRUE)
+ else()
+ set(LAPACK_FOUND FALSE)
+ endif()
+
+ if(NOT LAPACK_FIND_QUIETLY)
+ if(LAPACK_FOUND)
+ message(STATUS "A library with LAPACK API found.")
+ else()
+ if(LAPACK_FIND_REQUIRED)
+ message(FATAL_ERROR
+ "A required library with LAPACK API not found. Please specify library location."
+ )
+ else()
+ message(STATUS
+ "A library with LAPACK API not found. Please specify library location."
+ )
+ endif()
+ endif()
+ endif()
+endif()
+
+cmake_pop_check_state()
+set(CMAKE_FIND_LIBRARY_SUFFIXES ${_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
diff --git a/ports/clapack/enable_openblas_compat.patch b/ports/clapack/enable_openblas_compat.patch
deleted file mode 100644
index 3199354757a..00000000000
--- a/ports/clapack/enable_openblas_compat.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-diff --git a/INCLUDE/blaswrap.h b/INCLUDE/blaswrap.h
-index 333a17a..fb6750a 100644
---- a/INCLUDE/blaswrap.h
-+++ b/INCLUDE/blaswrap.h
-@@ -155,6 +155,107 @@
- #define ctrsm_ f2c_ctrsm
- #define ztrsm_ f2c_ztrsm
-
-+#else
-+
-+#define sswap_ sswap
-+#define saxpy_ saxpy
-+#define sasum_ sasum
-+#define isamax_ isamax
-+#define scopy_ scopy
-+#define sscal_ sscal
-+#define sger_ sger
-+#define snrm2_ snrm2
-+#define ssymv_ ssymv
-+#define sdot_ sdot
-+#define saxpy_ saxpy
-+#define ssyr2_ ssyr2
-+#define srot_ srot
-+#define sgemv_ sgemv
-+#define strsv_ strsv
-+#define sgemm_ sgemm
-+#define strsm_ strsm
-+
-+#define dswap_ dswap
-+#define daxpy_ daxpy
-+#define dasum_ dasum
-+#define idamax_ idamax
-+#define dcopy_ dcopy
-+#define dscal_ dscal
-+#define dger_ dger
-+#define dnrm2_ dnrm2
-+#define dsymv_ dsymv
-+#define ddot_ ddot
-+#define dsyr2_ dsyr2
-+#define drot_ drot
-+#define dgemv_ dgemv
-+#define dtrsv_ dtrsv
-+#define dgemm_ dgemm
-+#define dtrsm_ dtrsm
-+
-+#define cswap_ cswap
-+#define caxpy_ caxpy
-+#define scasum_ scasum
-+#define icamax_ icamax
-+#define ccopy_ ccopy
-+#define cscal_ cscal
-+#define scnrm2_ scnrm2
-+#define cgemv_ cgemv
-+#define ctrsv_ ctrsv
-+#define cgemm_ cgemm
-+#define ctrsm_ ctrsm
-+#define cgerc_ cgerc
-+#define chemv_ chemv
-+#define cher2_ cher2
-+
-+#define zswap_ zswap
-+#define zaxpy_ zaxpy
-+#define dzasum_ dzasum
-+#define izamax_ izamax
-+#define zcopy_ zcopy
-+#define zscal_ zscal
-+#define dznrm2_ dznrm2
-+#define zgemv_ zgemv
-+#define ztrsv_ ztrsv
-+#define zgemm_ zgemm
-+#define ztrsm_ ztrsm
-+#define zgerc_ zgerc
-+#define zhemv_ zhemv
-+#define zher2_ zher2
-+
-+/* LAPACK */
-+#define dlacon_ dlacon
-+#define slacon_ slacon
-+#define icmax1_ icmax1
-+#define scsum1_ scsum1
-+#define clacon_ clacon
-+#define dzsum1_ dzsum1
-+#define izmax1_ izmax1
-+#define zlacon_ zlacon
-+
-+/* Fortran interface */
-+#define c_bridge_dgssv_ c_bridge_dgssv
-+#define c_fortran_sgssv_ c_fortran_sgssv
-+#define c_fortran_dgssv_ c_fortran_dgssv
-+#define c_fortran_cgssv_ c_fortran_cgssv
-+#define c_fortran_zgssv_ c_fortran_zgssv
-+
-+#define cdotc_ cdotc
-+#define cdotu_ cdotu
-+#define csscal_ csscal
-+#define zdscal_ zdscal
-+#define zdotc_ zdotc
-+#define zdotu_ zdotu
-+#define ctrmm_ ctrmm
-+#define dtrmm_ dtrmm
-+#define strmm_ strmm
-+#define ztrmm_ ztrmm
-+#define cgeru_ cgeru
-+#define zgeru_ zgeru
-+#define xerbla_ xerbla
-+#define dtrmv_ dtrmv
-+#define dsyrk_ dsyrk
-+#define zherk_ zherk
-+
- #endif /* NO_BLAS_WRAP */
-
- #endif /* __BLASWRAP_H */
diff --git a/ports/clapack/portfile.cmake b/ports/clapack/portfile.cmake
index 2845bbdc220..90169d79b20 100644
--- a/ports/clapack/portfile.cmake
+++ b/ports/clapack/portfile.cmake
@@ -1,11 +1,5 @@
include(vcpkg_common_functions)
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
- message(WARNING "You do not need this package on macOS, since you already have the Accelerate Framework")
- return()
-endif()
-
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_download_distfile(ARCHIVE
@@ -14,16 +8,11 @@ vcpkg_download_distfile(ARCHIVE
SHA512 cf19c710291ddff3f6ead7d86bdfdeaebca21291d9df094bf0a8ef599546b007757fb2dbb19b56511bb53ef7456eac0c73973b9627bf4d02982c856124428b49
)
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
- set(ADDITIONAL_PATCH "enable_openblas_compat.patch")
-endif()
-
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
PATCHES
remove_internal_blas.patch
- ${ADDITIONAL_PATCH}
)
vcpkg_configure_cmake(
@@ -37,7 +26,7 @@ vcpkg_install_cmake()
vcpkg_copy_pdbs()
#TODO: fix the official exported targets, since they are broken (luckily it seems that no-one uses them for now)
-vcpkg_fixup_cmake_targets()
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/clapack)
#we install a cmake wrapper since the official FindLAPACK module in cmake does find clapack easily, unfortunately...
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/lapack)
diff --git a/ports/clapack/vcpkg-cmake-wrapper.cmake b/ports/clapack/vcpkg-cmake-wrapper.cmake
index aee3e1e086f..26a0a1624b8 100644
--- a/ports/clapack/vcpkg-cmake-wrapper.cmake
+++ b/ports/clapack/vcpkg-cmake-wrapper.cmake
@@ -1,8 +1,2 @@
-set(LAPACK_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
-list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
+include(${CMAKE_CURRENT_LIST_DIR}/FindLAPACK.cmake)
-if(NOT LAPACK_LIBRARIES)
- _find_package(${ARGS})
-endif()
-
-set(CMAKE_MODULE_PATH ${LAPACK_PREV_MODULE_PATH})
diff --git a/ports/cpprestsdk/CONTROL b/ports/cpprestsdk/CONTROL
index 016bad4544d..be8d24045ba 100644
--- a/ports/cpprestsdk/CONTROL
+++ b/ports/cpprestsdk/CONTROL
@@ -1,5 +1,5 @@
Source: cpprestsdk
-Version: 2.10.13-1
+Version: 2.10.14
Build-Depends: zlib, openssl (!uwp&!windows), boost-system (!uwp&!windows), boost-date-time (!uwp&!windows), boost-regex (!uwp&!windows), boost-thread (!uwp&!windows), boost-filesystem (!uwp&!windows), boost-random (!uwp&!windows), boost-chrono (!uwp&!windows), boost-asio (!uwp&!windows)
Homepage: https://github.com/Microsoft/cpprestsdk
Description: C++11 JSON, REST, and OAuth library
diff --git a/ports/cpprestsdk/portfile.cmake b/ports/cpprestsdk/portfile.cmake
index 6747c0b2c8f..8add4c1ab1b 100644
--- a/ports/cpprestsdk/portfile.cmake
+++ b/ports/cpprestsdk/portfile.cmake
@@ -3,8 +3,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Microsoft/cpprestsdk
- REF v2.10.13
- SHA512 43e60ee1266e0009f04452736a1b5127439d54416060f81544613007a8bcc084705bedd482ec3519140e79a6f56bddba6d25e9752228595bb8f83ce560ae39b8
+ REF v2.10.14
+ SHA512 7208b8c31e42a9bda2bf1d5c65527e54e3f946ec57743aaf7058c12a311de78de354d5ff859f35b3a8936c8964ac5695a692e234f3365edc426cf9580f76cd4f
HEAD_REF master
)
diff --git a/ports/curl/CONTROL b/ports/curl/CONTROL
index 0b20283691a..72d5d3e669b 100644
--- a/ports/curl/CONTROL
+++ b/ports/curl/CONTROL
@@ -1,5 +1,5 @@
Source: curl
-Version: 7.65.0-3
+Version: 7.65.2-1
Build-Depends: zlib
Homepage: https://github.com/curl/curl
Description: A library for transferring data with URLs
diff --git a/ports/curl/portfile.cmake b/ports/curl/portfile.cmake
index 5c4f94fdf8c..49d4d12e6dd 100644
--- a/ports/curl/portfile.cmake
+++ b/ports/curl/portfile.cmake
@@ -3,8 +3,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO curl/curl
- REF curl-7_65_0
- SHA512 436b6b42654c1db2b3f69df410a7f28401a50faf18e74f328a93585c147541e697664b0e9e7df03239fd76c797c1bb4f435f4c668a6b0ad28bdd67e17f786491
+ REF curl-7_65_2
+ SHA512 8e06377a6d8837a4c2cd96f978f0ac848b9472500fd25983bb1f9e5f52d9d6f7ff0c71d443587a979cf80fd19412bb64b9362b774cf91e02479fdfad7e085b16
HEAD_REF master
PATCHES
0001_cmake.patch
diff --git a/ports/dbg-macro/CONTROL b/ports/dbg-macro/CONTROL
new file mode 100644
index 00000000000..80a2e3165e9
--- /dev/null
+++ b/ports/dbg-macro/CONTROL
@@ -0,0 +1,4 @@
+Source: dbg-macro
+Version: 2019-07-11
+Description: A dbg(...) macro for C++
+Homepage: https://github.com/sharkdp/dbg-macro
diff --git a/ports/dbg-macro/portfile.cmake b/ports/dbg-macro/portfile.cmake
new file mode 100644
index 00000000000..3aee7268dd9
--- /dev/null
+++ b/ports/dbg-macro/portfile.cmake
@@ -0,0 +1,16 @@
+# single header file library
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO sharkdp/dbg-macro
+ REF 4409d8428baf700873bcfee42e63bbca6700b97e
+ SHA512 f9f936707631bee112566a24c92cbf171e54362099df689253ab38d0489400f65c284df81749376f18cb3ebcefea3cc18844554016798c2542ec73dc2afcc931
+ HEAD_REF master
+)
+
+file(COPY ${SOURCE_PATH}/dbg.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+# Handle copyright
+configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
diff --git a/ports/directxtk/CONTROL b/ports/directxtk/CONTROL
index 469788934ac..e1f3ce5d5c9 100644
--- a/ports/directxtk/CONTROL
+++ b/ports/directxtk/CONTROL
@@ -1,4 +1,4 @@
Source: directxtk
-Version: apr2019
+Version: apr2019-1
Homepage: https://github.com/Microsoft/DirectXTK
Description: A collection of helper classes for writing DirectX 11.x code in C++.
diff --git a/ports/directxtk/fix-invalid-configuration.patch b/ports/directxtk/fix-invalid-configuration.patch
new file mode 100644
index 00000000000..785fd009acc
--- /dev/null
+++ b/ports/directxtk/fix-invalid-configuration.patch
@@ -0,0 +1,39 @@
+diff --git a/DirectXTK_Windows10.sln b/DirectXTK_Windows10.sln
+index 8962307..9e3b8a7 100644
+--- a/DirectXTK_Windows10.sln
++++ b/DirectXTK_Windows10.sln
+@@ -15,11 +15,11 @@ Global
+ Debug|ARM = Debug|ARM
+ Debug|ARM64 = Debug|ARM64
+ Debug|x64 = Debug|x64
+- Debug|x86 = Debug|x86
++ Debug|Win32 = Debug|Win32
+ Release|ARM = Release|ARM
+ Release|ARM64 = Release|ARM64
+ Release|x64 = Release|x64
+- Release|x86 = Release|x86
++ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.ActiveCfg = Debug|ARM
+@@ -28,16 +28,16 @@ Global
+ {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM64.Build.0 = Debug|ARM64
+ {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.ActiveCfg = Debug|x64
+ {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.Build.0 = Debug|x64
+- {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.ActiveCfg = Debug|Win32
+- {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.Build.0 = Debug|Win32
++ {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|Win32.ActiveCfg = Debug|Win32
++ {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|Win32.Build.0 = Debug|Win32
+ {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.ActiveCfg = Release|ARM
+ {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.Build.0 = Release|ARM
+ {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM64.ActiveCfg = Release|ARM64
+ {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM64.Build.0 = Release|ARM64
+ {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.ActiveCfg = Release|x64
+ {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.Build.0 = Release|x64
+- {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.ActiveCfg = Release|Win32
+- {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.Build.0 = Release|Win32
++ {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|Win32.ActiveCfg = Release|Win32
++ {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
diff --git a/ports/directxtk/portfile.cmake b/ports/directxtk/portfile.cmake
index 245c8a4af0f..0449d8f61d1 100644
--- a/ports/directxtk/portfile.cmake
+++ b/ports/directxtk/portfile.cmake
@@ -12,6 +12,7 @@ vcpkg_from_github(
REF apr2019
SHA512 811ed222c1650d34a8475e44719cca8972a85d96f9ccb10548e1501eb9d28fd8685de90832b517cdcbf21ae8c9160dea69000e8dca06fab745a15a7acc14ba98
HEAD_REF master
+ PATCHES fix-invalid-configuration.patch
)
IF (TRIPLET_SYSTEM_ARCH MATCHES "x86")
@@ -20,33 +21,41 @@ ELSE()
SET(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH})
ENDIF()
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(SLN_NAME "Windows10")
+else()
+ set(SLN_NAME "Desktop_2017")
+endif()
+
vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/DirectXTK_Desktop_2017.sln
+ PROJECT_PATH ${SOURCE_PATH}/DirectXTK_${SLN_NAME}.sln
PLATFORM ${BUILD_ARCH}
)
file(INSTALL
- ${SOURCE_PATH}/Bin/Desktop_2017/${BUILD_ARCH}/Release/DirectXTK.lib
+ ${SOURCE_PATH}/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/DirectXTK.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(INSTALL
- ${SOURCE_PATH}/Bin/Desktop_2017/${BUILD_ARCH}/Debug/DirectXTK.lib
+ ${SOURCE_PATH}/Bin/${SLN_NAME}/${BUILD_ARCH}/Debug/DirectXTK.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
-set(DXTK_TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools/directxtk)
-file(MAKE_DIRECTORY ${DXTK_TOOL_PATH})
+if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(DXTK_TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools/directxtk)
+ file(MAKE_DIRECTORY ${DXTK_TOOL_PATH})
+
+ file(INSTALL
+ ${SOURCE_PATH}/MakeSpriteFont/bin/Release/MakeSpriteFont.exe
+ DESTINATION ${DXTK_TOOL_PATH})
+
+ file(INSTALL
+ ${SOURCE_PATH}/XWBTool/Bin/Desktop_2017/${BUILD_ARCH}/Release/XWBTool.exe
+ DESTINATION ${DXTK_TOOL_PATH})
+endif()
file(INSTALL
- ${SOURCE_PATH}/MakeSpriteFont/bin/Release/MakeSpriteFont.exe
- DESTINATION ${DXTK_TOOL_PATH})
-
-file(INSTALL
- ${SOURCE_PATH}/XWBTool/Bin/Desktop_2017/${BUILD_ARCH}/Release/XWBTool.exe
- DESTINATION ${DXTK_TOOL_PATH})
-
-file(INSTALL
- ${SOURCE_PATH}/Inc/
- DESTINATION ${CURRENT_PACKAGES_DIR}/include/DirectXTK
+ ${SOURCE_PATH}/Inc/
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include/DirectXTK
)
# Handle copyright
diff --git a/ports/eastl/CONTROL b/ports/eastl/CONTROL
index f7f9c89a341..5e0c40bf7c2 100644
--- a/ports/eastl/CONTROL
+++ b/ports/eastl/CONTROL
@@ -1,5 +1,5 @@
Source: eastl
-Version: 3.13.05-1
+Version: 3.14.00
Homepage: https://github.com/electronicarts/EASTL
Description: Electronic Arts Standard Template Library.
It is a C++ template library of containers, algorithms, and iterators useful for runtime and tool development across multiple platforms. It is a fairly extensive and robust implementation of such a library and has an emphasis on high performance above all other considerations.
diff --git a/ports/eastl/fix_cmake_install.patch b/ports/eastl/fix_cmake_install.patch
new file mode 100644
index 00000000000..b67e26f1282
--- /dev/null
+++ b/ports/eastl/fix_cmake_install.patch
@@ -0,0 +1,19 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b8171cd..c771e77 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -41,6 +41,7 @@ add_definitions(-DEASTL_OPENSOURCE=1)
+ #-------------------------------------------------------------------------------------------
+ # Include dirs
+ #-------------------------------------------------------------------------------------------
++include_directories(APPEND test/packages)
+ target_include_directories(EASTL PUBLIC include)
+
+ #-------------------------------------------------------------------------------------------
+@@ -48,3 +49,6 @@ target_include_directories(EASTL PUBLIC include)
+ #-------------------------------------------------------------------------------------------
+ target_link_libraries(EASTL EABase)
+
++install(TARGETS EASTL DESTINATION lib)
++install(DIRECTORY include/EASTL DESTINATION include)
++install(DIRECTORY test/packages/EABase DESTINATION include)
diff --git a/ports/eastl/fix_uwp.patch b/ports/eastl/fix_uwp.patch
new file mode 100644
index 00000000000..4fd144a1300
--- /dev/null
+++ b/ports/eastl/fix_uwp.patch
@@ -0,0 +1,13 @@
+diff --git a/include/Common/EABase/config/eaplatform.h b/include/Common/EABase/config/eaplatform.h
+index 8b16146..54079ab 100644
+--- a/include/Common/EABase/config/eaplatform.h
++++ b/include/Common/EABase/config/eaplatform.h
+@@ -125,7 +125,7 @@
+ #endif
+
+
+-#elif defined(EA_PLATFORM_XBOXONE) || defined(_DURANGO) || defined(EA_PLATFORM_CAPILANO) || (defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_GAMES || WINAPI_FAMILY == WINAPI_FAMILY_TV_TITLE))
++#elif defined(EA_PLATFORM_XBOXONE) || defined(_DURANGO) || defined(EA_PLATFORM_CAPILANO) || (defined(WINAPI_FAMILY) && WINAPI_FAMILY && (WINAPI_FAMILY == WINAPI_FAMILY_GAMES || WINAPI_FAMILY == WINAPI_FAMILY_TV_TITLE))
+ // XBox One
+ // Durango was Microsoft's code-name for the platform, which is now obsolete.
+ // Microsoft uses _DURANGO instead of some variation of _XBOX, though it's not natively defined by the compiler.
diff --git a/ports/eastl/portfile.cmake b/ports/eastl/portfile.cmake
index 13cf14a2108..e1c1a0d449a 100644
--- a/ports/eastl/portfile.cmake
+++ b/ports/eastl/portfile.cmake
@@ -2,19 +2,37 @@ include(vcpkg_common_functions)
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/eastl)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO electronicarts/EABase
+ REF 6f27a2f7aa21f2d71ae8c6bc1d889d0119677a56
+ SHA512 9176fb2d508cf023c3c16c61a511196a2f6af36172145544bba44062a00ca7591e54e4fc16ac13562ef0e2d629b626f398bff3669b4cdb7ba0068548d6a53883
+ HEAD_REF master
+ PATCHES
+ fix_uwp.patch
+)
+
+set(EABASE_PATH ${SOURCE_PATH})
+
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO electronicarts/EASTL
- REF 3.13.05
- SHA512 2364554339203c972f10d58ebe8f14fb221a40451f4cd2c3c5acd6891e8580c1a0a5d4ba592c91349d3feca50d9880648bb37358820a1c9552dde3f7af400a82
+ REF dcd2b838d52de13691999aff8faeaa8f284928ac
+ SHA512 9756ee47a30447f17ceb45fb5143d6e80905636cf709c171059a83f74094fb25391c896de0ea5e063cdad4e7334c5f963c75b1c34ad539fd24175983a2054159
HEAD_REF master
- PATCHES fixchar8_t.patch # can be removed after electronicarts/EASTL#274 is resolved
+ PATCHES
+ fixchar8_t.patch # can be removed after electronicarts/EASTL#274 is resolved
+ fix_cmake_install.patch
)
+file(COPY ${EABASE_PATH}/include/Common/EABase/ DESTINATION ${SOURCE_PATH}/test/packages/EABase)
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
+ OPTIONS
+ -DEASTL_BUILD_TESTS=OFF
+ -DEASTL_BUILD_BENCHMARK=OFF
)
vcpkg_install_cmake()
diff --git a/ports/ecsutil/CONTROL b/ports/ecsutil/CONTROL
index 3d6136ddaf8..f008311f24a 100644
--- a/ports/ecsutil/CONTROL
+++ b/ports/ecsutil/CONTROL
@@ -1,4 +1,4 @@
Source: ecsutil
-Version: 1.0.6.1
+Version: 1.0.6.1-1
Description: Native Windows SDK for accessing ECS via the S3 HTTP protocol.
-Build-Depends: atlmfc
+Build-Depends: atlmfc (windows)
diff --git a/ports/geogram/CONTROL b/ports/geogram/CONTROL
index 8fd66be95fe..4eb40eee046 100644
--- a/ports/geogram/CONTROL
+++ b/ports/geogram/CONTROL
@@ -1,5 +1,5 @@
Source: geogram
-Version: 1.6.9-6
+Version: 1.6.9-7
Homepage: https://gforge.inria.fr/projects/geogram/
Description: Geogram is a programming library of geometric algorithms.
Build-Depends: openblas (!osx), clapack (!osx)
diff --git a/ports/geogram/enable_openblas_compatibility.patch b/ports/geogram/enable_openblas_compatibility.patch
deleted file mode 100644
index e6ab75a4cba..00000000000
--- a/ports/geogram/enable_openblas_compatibility.patch
+++ /dev/null
@@ -1,1008 +0,0 @@
-diff --git a/src/lib/third_party/numerics/ARPACK/arpack_cnames.h b/src/lib/third_party/numerics/ARPACK/arpack_cnames.h
-new file mode 100644
-index 0000000..e6f2c48
---- /dev/null
-+++ b/src/lib/third_party/numerics/ARPACK/arpack_cnames.h
-@@ -0,0 +1,105 @@
-+#ifndef __ARPACK_CNAMES
-+#define __ARPACK_CNAMES
-+
-+/*
-+ * These defines set up the naming scheme required to have a fortran 77
-+ * routine call a C routine
-+ * for following Fortran to C interface:
-+ * FORTRAN CALL C DECLARATION
-+ * call dgemm(...) void dgemm(...)
-+ */
-+/* BLAS */
-+#define sswap_ sswap
-+#define saxpy_ saxpy
-+#define sasum_ sasum
-+#define isamax_ isamax
-+#define scopy_ scopy
-+#define sscal_ sscal
-+#define sger_ sger
-+#define snrm2_ snrm2
-+#define ssymv_ ssymv
-+#define sdot_ sdot
-+#define saxpy_ saxpy
-+#define ssyr2_ ssyr2
-+#define srot_ srot
-+#define sgemv_ sgemv
-+#define strsv_ strsv
-+#define sgemm_ sgemm
-+#define strsm_ strsm
-+
-+#define dswap_ dswap
-+#define daxpy_ daxpy
-+#define dasum_ dasum
-+#define idamax_ idamax
-+#define dcopy_ dcopy
-+#define dscal_ dscal
-+#define dger_ dger
-+#define dnrm2_ dnrm2
-+#define dsymv_ dsymv
-+#define ddot_ ddot
-+#define dsyr2_ dsyr2
-+#define drot_ drot
-+#define dgemv_ dgemv
-+#define dtrsv_ dtrsv
-+#define dgemm_ dgemm
-+#define dtrsm_ dtrsm
-+
-+#define cswap_ cswap
-+#define caxpy_ caxpy
-+#define scasum_ scasum
-+#define icamax_ icamax
-+#define ccopy_ ccopy
-+#define cscal_ cscal
-+#define scnrm2_ scnrm2
-+#define cgemv_ cgemv
-+#define ctrsv_ ctrsv
-+#define cgemm_ cgemm
-+#define ctrsm_ ctrsm
-+#define cgerc_ cgerc
-+#define chemv_ chemv
-+#define cher2_ cher2
-+
-+#define zswap_ zswap
-+#define zaxpy_ zaxpy
-+#define dzasum_ dzasum
-+#define izamax_ izamax
-+#define zcopy_ zcopy
-+#define zscal_ zscal
-+#define dznrm2_ dznrm2
-+#define zgemv_ zgemv
-+#define ztrsv_ ztrsv
-+#define zgemm_ zgemm
-+#define ztrsm_ ztrsm
-+#define zgerc_ zgerc
-+#define zhemv_ zhemv
-+#define zher2_ zher2
-+
-+/* LAPACK */
-+#define dlacon_ dlacon
-+#define slacon_ slacon
-+#define icmax1_ icmax1
-+#define scsum1_ scsum1
-+#define clacon_ clacon
-+#define dzsum1_ dzsum1
-+#define izmax1_ izmax1
-+#define zlacon_ zlacon
-+
-+/* Fortran interface */
-+#define c_bridge_dgssv_ c_bridge_dgssv
-+#define c_fortran_sgssv_ c_fortran_sgssv
-+#define c_fortran_dgssv_ c_fortran_dgssv
-+#define c_fortran_cgssv_ c_fortran_cgssv
-+#define c_fortran_zgssv_ c_fortran_zgssv
-+
-+#define cdotc_ cdotc
-+#define csscal_ csscal
-+#define zdscal_ zdscal
-+#define zdotc_ zdotc
-+#define ctrmm_ ctrmm
-+#define dtrmm_ dtrmm
-+#define strmm_ strmm
-+#define ztrmm_ ztrmm
-+#define cgeru_ cgeru
-+#define zgeru_ zgeru
-+
-+#endif /* __ARPACK_CNAMES */
-diff --git a/src/lib/third_party/numerics/ARPACK/cgetv0.c b/src/lib/third_party/numerics/ARPACK/cgetv0.c
-index 48e8677..871d7b0 100755
---- a/src/lib/third_party/numerics/ARPACK/cgetv0.c
-+++ b/src/lib/third_party/numerics/ARPACK/cgetv0.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/cnaitr.c b/src/lib/third_party/numerics/ARPACK/cnaitr.c
-index ee9318b..693f399 100755
---- a/src/lib/third_party/numerics/ARPACK/cnaitr.c
-+++ b/src/lib/third_party/numerics/ARPACK/cnaitr.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/cnapps.c b/src/lib/third_party/numerics/ARPACK/cnapps.c
-index 0c4a6a2..4929fc1 100755
---- a/src/lib/third_party/numerics/ARPACK/cnapps.c
-+++ b/src/lib/third_party/numerics/ARPACK/cnapps.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/cnaup2.c b/src/lib/third_party/numerics/ARPACK/cnaup2.c
-index 8322446..2d98e4b 100755
---- a/src/lib/third_party/numerics/ARPACK/cnaup2.c
-+++ b/src/lib/third_party/numerics/ARPACK/cnaup2.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/cnaupd.c b/src/lib/third_party/numerics/ARPACK/cnaupd.c
-index e51f72e..4fe5dca 100755
---- a/src/lib/third_party/numerics/ARPACK/cnaupd.c
-+++ b/src/lib/third_party/numerics/ARPACK/cnaupd.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/cneigh.c b/src/lib/third_party/numerics/ARPACK/cneigh.c
-index d96bebd..adfa279 100755
---- a/src/lib/third_party/numerics/ARPACK/cneigh.c
-+++ b/src/lib/third_party/numerics/ARPACK/cneigh.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/cneupd.c b/src/lib/third_party/numerics/ARPACK/cneupd.c
-index 6a839e7..35fc426 100755
---- a/src/lib/third_party/numerics/ARPACK/cneupd.c
-+++ b/src/lib/third_party/numerics/ARPACK/cneupd.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/cngets.c b/src/lib/third_party/numerics/ARPACK/cngets.c
-index 9788d00..663406f 100755
---- a/src/lib/third_party/numerics/ARPACK/cngets.c
-+++ b/src/lib/third_party/numerics/ARPACK/cngets.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/csortc.c b/src/lib/third_party/numerics/ARPACK/csortc.c
-index 8c6cedb..0d330fe 100755
---- a/src/lib/third_party/numerics/ARPACK/csortc.c
-+++ b/src/lib/third_party/numerics/ARPACK/csortc.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* \BeginDoc */
-
- /* \Name: csortc */
-diff --git a/src/lib/third_party/numerics/ARPACK/cstatn.c b/src/lib/third_party/numerics/ARPACK/cstatn.c
-index 6fcde6d..4eb47dc 100755
---- a/src/lib/third_party/numerics/ARPACK/cstatn.c
-+++ b/src/lib/third_party/numerics/ARPACK/cstatn.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dgetv0.c b/src/lib/third_party/numerics/ARPACK/dgetv0.c
-index 0f4c2bb..2206708 100755
---- a/src/lib/third_party/numerics/ARPACK/dgetv0.c
-+++ b/src/lib/third_party/numerics/ARPACK/dgetv0.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dlaqrb.c b/src/lib/third_party/numerics/ARPACK/dlaqrb.c
-index baa4f12..d4275a7 100755
---- a/src/lib/third_party/numerics/ARPACK/dlaqrb.c
-+++ b/src/lib/third_party/numerics/ARPACK/dlaqrb.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Table of constant values */
-
- static integer c__1 = 1;
-diff --git a/src/lib/third_party/numerics/ARPACK/dnaitr.c b/src/lib/third_party/numerics/ARPACK/dnaitr.c
-index 8fffe7f..74eca38 100755
---- a/src/lib/third_party/numerics/ARPACK/dnaitr.c
-+++ b/src/lib/third_party/numerics/ARPACK/dnaitr.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dnapps.c b/src/lib/third_party/numerics/ARPACK/dnapps.c
-index 67dac36..b0083a1 100755
---- a/src/lib/third_party/numerics/ARPACK/dnapps.c
-+++ b/src/lib/third_party/numerics/ARPACK/dnapps.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dnaup2.c b/src/lib/third_party/numerics/ARPACK/dnaup2.c
-index 28dabb6..8b48f33 100755
---- a/src/lib/third_party/numerics/ARPACK/dnaup2.c
-+++ b/src/lib/third_party/numerics/ARPACK/dnaup2.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dnaupd.c b/src/lib/third_party/numerics/ARPACK/dnaupd.c
-index e20298c..dcfaf47 100755
---- a/src/lib/third_party/numerics/ARPACK/dnaupd.c
-+++ b/src/lib/third_party/numerics/ARPACK/dnaupd.c
-@@ -11,7 +11,7 @@
- */
-
- #include "protos.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dnconv.c b/src/lib/third_party/numerics/ARPACK/dnconv.c
-index e2324b7..aa0bf91 100755
---- a/src/lib/third_party/numerics/ARPACK/dnconv.c
-+++ b/src/lib/third_party/numerics/ARPACK/dnconv.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dneigh.c b/src/lib/third_party/numerics/ARPACK/dneigh.c
-index b7057eb..94e3680 100755
---- a/src/lib/third_party/numerics/ARPACK/dneigh.c
-+++ b/src/lib/third_party/numerics/ARPACK/dneigh.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dneupd.c b/src/lib/third_party/numerics/ARPACK/dneupd.c
-index 141255d..067041b 100755
---- a/src/lib/third_party/numerics/ARPACK/dneupd.c
-+++ b/src/lib/third_party/numerics/ARPACK/dneupd.c
-@@ -11,7 +11,7 @@
- */
-
- #include "protos.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dngets.c b/src/lib/third_party/numerics/ARPACK/dngets.c
-index 9b0ee73..e39848f 100755
---- a/src/lib/third_party/numerics/ARPACK/dngets.c
-+++ b/src/lib/third_party/numerics/ARPACK/dngets.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dsaitr.c b/src/lib/third_party/numerics/ARPACK/dsaitr.c
-index 2f3df52..89a597a 100755
---- a/src/lib/third_party/numerics/ARPACK/dsaitr.c
-+++ b/src/lib/third_party/numerics/ARPACK/dsaitr.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dsapps.c b/src/lib/third_party/numerics/ARPACK/dsapps.c
-index e87b27d..4a320c9 100755
---- a/src/lib/third_party/numerics/ARPACK/dsapps.c
-+++ b/src/lib/third_party/numerics/ARPACK/dsapps.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dsaup2.c b/src/lib/third_party/numerics/ARPACK/dsaup2.c
-index e5f224f..b93e80b 100755
---- a/src/lib/third_party/numerics/ARPACK/dsaup2.c
-+++ b/src/lib/third_party/numerics/ARPACK/dsaup2.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dsaupd.c b/src/lib/third_party/numerics/ARPACK/dsaupd.c
-index a9e456f..d20ebe2 100755
---- a/src/lib/third_party/numerics/ARPACK/dsaupd.c
-+++ b/src/lib/third_party/numerics/ARPACK/dsaupd.c
-@@ -11,7 +11,7 @@
- */
-
- #include "protos.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dsconv.c b/src/lib/third_party/numerics/ARPACK/dsconv.c
-index 843ac29..25e3b8f 100755
---- a/src/lib/third_party/numerics/ARPACK/dsconv.c
-+++ b/src/lib/third_party/numerics/ARPACK/dsconv.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dseigt.c b/src/lib/third_party/numerics/ARPACK/dseigt.c
-index c7e975b..ba74d2f 100755
---- a/src/lib/third_party/numerics/ARPACK/dseigt.c
-+++ b/src/lib/third_party/numerics/ARPACK/dseigt.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dsesrt.c b/src/lib/third_party/numerics/ARPACK/dsesrt.c
-index 1bf99ee..8a2030f 100755
---- a/src/lib/third_party/numerics/ARPACK/dsesrt.c
-+++ b/src/lib/third_party/numerics/ARPACK/dsesrt.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Table of constant values */
-
- static integer c__1 = 1;
-diff --git a/src/lib/third_party/numerics/ARPACK/dseupd.c b/src/lib/third_party/numerics/ARPACK/dseupd.c
-index 9b81477..065e4d8 100755
---- a/src/lib/third_party/numerics/ARPACK/dseupd.c
-+++ b/src/lib/third_party/numerics/ARPACK/dseupd.c
-@@ -11,7 +11,7 @@
- */
-
- #include "protos.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dsgets.c b/src/lib/third_party/numerics/ARPACK/dsgets.c
-index 7983ec8..19a33d9 100755
---- a/src/lib/third_party/numerics/ARPACK/dsgets.c
-+++ b/src/lib/third_party/numerics/ARPACK/dsgets.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dsortc.c b/src/lib/third_party/numerics/ARPACK/dsortc.c
-index 2170fcc..131ae2f 100755
---- a/src/lib/third_party/numerics/ARPACK/dsortc.c
-+++ b/src/lib/third_party/numerics/ARPACK/dsortc.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* ----------------------------------------------------------------------- */
- /* \BeginDoc */
-
-diff --git a/src/lib/third_party/numerics/ARPACK/dsortr.c b/src/lib/third_party/numerics/ARPACK/dsortr.c
-index 5f8dca8..335d9a9 100755
---- a/src/lib/third_party/numerics/ARPACK/dsortr.c
-+++ b/src/lib/third_party/numerics/ARPACK/dsortr.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* ----------------------------------------------------------------------- */
- /* \BeginDoc */
-
-diff --git a/src/lib/third_party/numerics/ARPACK/dstatn.c b/src/lib/third_party/numerics/ARPACK/dstatn.c
-index 50c15f2..1909d6d 100755
---- a/src/lib/third_party/numerics/ARPACK/dstatn.c
-+++ b/src/lib/third_party/numerics/ARPACK/dstatn.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dstats.c b/src/lib/third_party/numerics/ARPACK/dstats.c
-index 4341eea..02f4024 100755
---- a/src/lib/third_party/numerics/ARPACK/dstats.c
-+++ b/src/lib/third_party/numerics/ARPACK/dstats.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/dstqrb.c b/src/lib/third_party/numerics/ARPACK/dstqrb.c
-index 2a10880..c25f44d 100755
---- a/src/lib/third_party/numerics/ARPACK/dstqrb.c
-+++ b/src/lib/third_party/numerics/ARPACK/dstqrb.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Table of constant values */
-
- static integer c__0 = 0;
-diff --git a/src/lib/third_party/numerics/ARPACK/protos.h b/src/lib/third_party/numerics/ARPACK/protos.h
-index 2e87fe7..09a89fc 100755
---- a/src/lib/third_party/numerics/ARPACK/protos.h
-+++ b/src/lib/third_party/numerics/ARPACK/protos.h
-@@ -8,7 +8,7 @@
-
- #include
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- int NUMERICS_API dnaupd_(
- integer *ido, char *bmat, integer *n, char *
- which, integer *nev, doublereal *tol, doublereal *resid, integer *ncv,
-diff --git a/src/lib/third_party/numerics/ARPACK/sgetv0.c b/src/lib/third_party/numerics/ARPACK/sgetv0.c
-index 206122a..314252f 100755
---- a/src/lib/third_party/numerics/ARPACK/sgetv0.c
-+++ b/src/lib/third_party/numerics/ARPACK/sgetv0.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/slaqrb.c b/src/lib/third_party/numerics/ARPACK/slaqrb.c
-index 335faa2..12cc92a 100755
---- a/src/lib/third_party/numerics/ARPACK/slaqrb.c
-+++ b/src/lib/third_party/numerics/ARPACK/slaqrb.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Table of constant values */
-
- static integer c__1 = 1;
-diff --git a/src/lib/third_party/numerics/ARPACK/snaitr.c b/src/lib/third_party/numerics/ARPACK/snaitr.c
-index 5e24f6c..f3bc2fa 100755
---- a/src/lib/third_party/numerics/ARPACK/snaitr.c
-+++ b/src/lib/third_party/numerics/ARPACK/snaitr.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/snapps.c b/src/lib/third_party/numerics/ARPACK/snapps.c
-index 37470fc..9ae03e4 100755
---- a/src/lib/third_party/numerics/ARPACK/snapps.c
-+++ b/src/lib/third_party/numerics/ARPACK/snapps.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/snaup2.c b/src/lib/third_party/numerics/ARPACK/snaup2.c
-index 4028150..f893a8e 100755
---- a/src/lib/third_party/numerics/ARPACK/snaup2.c
-+++ b/src/lib/third_party/numerics/ARPACK/snaup2.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/snaupd.c b/src/lib/third_party/numerics/ARPACK/snaupd.c
-index 88118f0..66fac19 100755
---- a/src/lib/third_party/numerics/ARPACK/snaupd.c
-+++ b/src/lib/third_party/numerics/ARPACK/snaupd.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/snconv.c b/src/lib/third_party/numerics/ARPACK/snconv.c
-index 4984455..cb42561 100755
---- a/src/lib/third_party/numerics/ARPACK/snconv.c
-+++ b/src/lib/third_party/numerics/ARPACK/snconv.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/sneigh.c b/src/lib/third_party/numerics/ARPACK/sneigh.c
-index 4ff7d7a..a8b3ffc 100755
---- a/src/lib/third_party/numerics/ARPACK/sneigh.c
-+++ b/src/lib/third_party/numerics/ARPACK/sneigh.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/sneupd.c b/src/lib/third_party/numerics/ARPACK/sneupd.c
-index e2a7205..430f033 100755
---- a/src/lib/third_party/numerics/ARPACK/sneupd.c
-+++ b/src/lib/third_party/numerics/ARPACK/sneupd.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/sngets.c b/src/lib/third_party/numerics/ARPACK/sngets.c
-index 5a13f94..1c34e92 100755
---- a/src/lib/third_party/numerics/ARPACK/sngets.c
-+++ b/src/lib/third_party/numerics/ARPACK/sngets.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/ssaitr.c b/src/lib/third_party/numerics/ARPACK/ssaitr.c
-index 65a61f6..98fbb1c 100755
---- a/src/lib/third_party/numerics/ARPACK/ssaitr.c
-+++ b/src/lib/third_party/numerics/ARPACK/ssaitr.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/ssapps.c b/src/lib/third_party/numerics/ARPACK/ssapps.c
-index 9537c2f..b979fb1 100755
---- a/src/lib/third_party/numerics/ARPACK/ssapps.c
-+++ b/src/lib/third_party/numerics/ARPACK/ssapps.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/ssaup2.c b/src/lib/third_party/numerics/ARPACK/ssaup2.c
-index a5123dc..59e08aa 100755
---- a/src/lib/third_party/numerics/ARPACK/ssaup2.c
-+++ b/src/lib/third_party/numerics/ARPACK/ssaup2.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/ssaupd.c b/src/lib/third_party/numerics/ARPACK/ssaupd.c
-index 5898148..32ba0b0 100755
---- a/src/lib/third_party/numerics/ARPACK/ssaupd.c
-+++ b/src/lib/third_party/numerics/ARPACK/ssaupd.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/ssconv.c b/src/lib/third_party/numerics/ARPACK/ssconv.c
-index 0e1c9c2..90faa50 100755
---- a/src/lib/third_party/numerics/ARPACK/ssconv.c
-+++ b/src/lib/third_party/numerics/ARPACK/ssconv.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/sseigt.c b/src/lib/third_party/numerics/ARPACK/sseigt.c
-index 6b9e407..6652b74 100755
---- a/src/lib/third_party/numerics/ARPACK/sseigt.c
-+++ b/src/lib/third_party/numerics/ARPACK/sseigt.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/ssesrt.c b/src/lib/third_party/numerics/ARPACK/ssesrt.c
-index 9287d6a..d6bcd6d 100755
---- a/src/lib/third_party/numerics/ARPACK/ssesrt.c
-+++ b/src/lib/third_party/numerics/ARPACK/ssesrt.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Table of constant values */
-
- static integer c__1 = 1;
-diff --git a/src/lib/third_party/numerics/ARPACK/sseupd.c b/src/lib/third_party/numerics/ARPACK/sseupd.c
-index 163df3a..b0e825f 100755
---- a/src/lib/third_party/numerics/ARPACK/sseupd.c
-+++ b/src/lib/third_party/numerics/ARPACK/sseupd.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/ssgets.c b/src/lib/third_party/numerics/ARPACK/ssgets.c
-index 244f2ab..52127c2 100755
---- a/src/lib/third_party/numerics/ARPACK/ssgets.c
-+++ b/src/lib/third_party/numerics/ARPACK/ssgets.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/ssortc.c b/src/lib/third_party/numerics/ARPACK/ssortc.c
-index aa836f7..38b5fbd 100755
---- a/src/lib/third_party/numerics/ARPACK/ssortc.c
-+++ b/src/lib/third_party/numerics/ARPACK/ssortc.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* ----------------------------------------------------------------------- */
- /* \BeginDoc */
-
-diff --git a/src/lib/third_party/numerics/ARPACK/ssortr.c b/src/lib/third_party/numerics/ARPACK/ssortr.c
-index e48fb1c..88db423 100755
---- a/src/lib/third_party/numerics/ARPACK/ssortr.c
-+++ b/src/lib/third_party/numerics/ARPACK/ssortr.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* ----------------------------------------------------------------------- */
- /* \BeginDoc */
-
-diff --git a/src/lib/third_party/numerics/ARPACK/sstatn.c b/src/lib/third_party/numerics/ARPACK/sstatn.c
-index fc899df..26d49b9 100755
---- a/src/lib/third_party/numerics/ARPACK/sstatn.c
-+++ b/src/lib/third_party/numerics/ARPACK/sstatn.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/sstats.c b/src/lib/third_party/numerics/ARPACK/sstats.c
-index 6601d2e..61577e2 100755
---- a/src/lib/third_party/numerics/ARPACK/sstats.c
-+++ b/src/lib/third_party/numerics/ARPACK/sstats.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/sstqrb.c b/src/lib/third_party/numerics/ARPACK/sstqrb.c
-index 4c7bf91..2a416e2 100755
---- a/src/lib/third_party/numerics/ARPACK/sstqrb.c
-+++ b/src/lib/third_party/numerics/ARPACK/sstqrb.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Table of constant values */
-
- static integer c__0 = 0;
-diff --git a/src/lib/third_party/numerics/ARPACK/zgetv0.c b/src/lib/third_party/numerics/ARPACK/zgetv0.c
-index 96d3c48..d868c1f 100755
---- a/src/lib/third_party/numerics/ARPACK/zgetv0.c
-+++ b/src/lib/third_party/numerics/ARPACK/zgetv0.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/znaitr.c b/src/lib/third_party/numerics/ARPACK/znaitr.c
-index 2ce6b9c..c8cf0f6 100755
---- a/src/lib/third_party/numerics/ARPACK/znaitr.c
-+++ b/src/lib/third_party/numerics/ARPACK/znaitr.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/znapps.c b/src/lib/third_party/numerics/ARPACK/znapps.c
-index 732aed0..30f46e6 100755
---- a/src/lib/third_party/numerics/ARPACK/znapps.c
-+++ b/src/lib/third_party/numerics/ARPACK/znapps.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/znaup2.c b/src/lib/third_party/numerics/ARPACK/znaup2.c
-index b7caa42..7164775 100755
---- a/src/lib/third_party/numerics/ARPACK/znaup2.c
-+++ b/src/lib/third_party/numerics/ARPACK/znaup2.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/znaupd.c b/src/lib/third_party/numerics/ARPACK/znaupd.c
-index ed251ee..f960959 100755
---- a/src/lib/third_party/numerics/ARPACK/znaupd.c
-+++ b/src/lib/third_party/numerics/ARPACK/znaupd.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/zneigh.c b/src/lib/third_party/numerics/ARPACK/zneigh.c
-index 4157ab3..4ee3c1e 100755
---- a/src/lib/third_party/numerics/ARPACK/zneigh.c
-+++ b/src/lib/third_party/numerics/ARPACK/zneigh.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/zneupd.c b/src/lib/third_party/numerics/ARPACK/zneupd.c
-index 3f684f4..3ef32c1 100755
---- a/src/lib/third_party/numerics/ARPACK/zneupd.c
-+++ b/src/lib/third_party/numerics/ARPACK/zneupd.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/zngets.c b/src/lib/third_party/numerics/ARPACK/zngets.c
-index a2e461b..97bbebd 100755
---- a/src/lib/third_party/numerics/ARPACK/zngets.c
-+++ b/src/lib/third_party/numerics/ARPACK/zngets.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
-diff --git a/src/lib/third_party/numerics/ARPACK/zsortc.c b/src/lib/third_party/numerics/ARPACK/zsortc.c
-index a35748c..38dbc42 100755
---- a/src/lib/third_party/numerics/ARPACK/zsortc.c
-+++ b/src/lib/third_party/numerics/ARPACK/zsortc.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* \BeginDoc */
-
- /* \Name: zsortc */
-diff --git a/src/lib/third_party/numerics/ARPACK/zstatn.c b/src/lib/third_party/numerics/ARPACK/zstatn.c
-index d433e97..5a8bd1e 100755
---- a/src/lib/third_party/numerics/ARPACK/zstatn.c
-+++ b/src/lib/third_party/numerics/ARPACK/zstatn.c
-@@ -11,7 +11,7 @@
- */
-
- #include "f2c.h"
--
-+#include "arpack_cnames.h"
- /* Common Block Declarations */
-
- struct {
diff --git a/ports/geogram/fix_underscore.patch b/ports/geogram/fix_underscore.patch
deleted file mode 100644
index eeb5a30cb1a..00000000000
--- a/ports/geogram/fix_underscore.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-diff --git a/src/lib/third_party/numerics/SUPERLU/slu_Cnames.h b/src/lib/third_party/numerics/SUPERLU/slu_Cnames.h
-index 68b3afe..0369a68 100755
---- a/src/lib/third_party/numerics/SUPERLU/slu_Cnames.h
-+++ b/src/lib/third_party/numerics/SUPERLU/slu_Cnames.h
-@@ -1,4 +1,4 @@
--#define Add_ /* Bruno */
-+#define NoChange
-
- /*! \file
- Copyright (c) 2003, The Regents of the University of California, through
diff --git a/ports/geogram/portfile.cmake b/ports/geogram/portfile.cmake
index 9584e66195b..5da48ff893e 100644
--- a/ports/geogram/portfile.cmake
+++ b/ports/geogram/portfile.cmake
@@ -8,17 +8,12 @@ vcpkg_download_distfile(ARCHIVE
SHA512 1b5c7540bef734c1908f213f26780aba63b4911a8022d5eb3f7c90eabe2cb69efd1f298b30cdc8e2c636a5b37c8c25832dd4aad0b7c2ff5f0a5b5caa17970136
)
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
- set(ADDITIONAL_PATCHES "fix_underscore.patch" "enable_openblas_compatibility.patch")
-endif()
-
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
REF ${GEOGRAM_VERSION}
PATCHES
fix-cmake-config-and-install.patch
- ${ADDITIONAL_PATCHES}
)
file(COPY ${CURRENT_PORT_DIR}/Config.cmake.in DESTINATION ${SOURCE_PATH}/cmake)
diff --git a/ports/irrlicht/CONTROL b/ports/irrlicht/CONTROL
index 59071e8dc88..7cc3e422370 100644
--- a/ports/irrlicht/CONTROL
+++ b/ports/irrlicht/CONTROL
@@ -1,5 +1,5 @@
Source: irrlicht
-Version: 1.8.4
+Version: 1.8.4-1
Description: Irrlicht lightning fast 3d engine
Build-Depends: zlib, libpng, bzip2, libjpeg-turbo
diff --git a/ports/irrlicht/portfile.cmake b/ports/irrlicht/portfile.cmake
index 0f9f4691e51..f4eaf5fc8fd 100644
--- a/ports/irrlicht/portfile.cmake
+++ b/ports/irrlicht/portfile.cmake
@@ -90,5 +90,8 @@ freely, subject to the following restrictions:
vcpkg_copy_pdbs()
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/irrlicht)
+endif()
# Post-build test for cmake libraries
vcpkg_test_cmake(PACKAGE_NAME irrlicht)
diff --git a/ports/irrlicht/vcpkg-cmake-wrapper.cmake b/ports/irrlicht/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 00000000000..4cfdb8a0d4c
--- /dev/null
+++ b/ports/irrlicht/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,11 @@
+_find_package(${ARGS})
+find_package(ZLIB REQUIRED)
+find_package(PNG REQUIRED)
+find_package(JPEG REQUIRED)
+find_package(BZip2 REQUIRED)
+if(TARGET Irrlicht::Irrlicht)
+ set_property(TARGET Irrlicht::Irrlicht APPEND PROPERTY INTERFACE_LINK_LIBRARIES ZLIB::ZLIB PNG::PNG JPEG::JPEG BZip2::BZip2)
+endif()
+if(IRRLICHT_LIBRARIES)
+ list(APPEND IRRLICHT_LIBRARIES ${ZLIB_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${BZIP2_LIBRARIES})
+endif()
diff --git a/ports/json-spirit/portfile.cmake b/ports/json-spirit/portfile.cmake
index 3b5e1d3166e..9d2f240730e 100644
--- a/ports/json-spirit/portfile.cmake
+++ b/ports/json-spirit/portfile.cmake
@@ -21,4 +21,7 @@ vcpkg_install_cmake()
# Handle copyright
file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/json-spirit RENAME copyright)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
vcpkg_copy_pdbs()
diff --git a/ports/lastools/CONTROL b/ports/lastools/CONTROL
new file mode 100644
index 00000000000..cb908a8d4ec
--- /dev/null
+++ b/ports/lastools/CONTROL
@@ -0,0 +1,4 @@
+Source: lastools
+Version: 2019-07-10
+Homepage: https://github.com/LAStools/LAStools
+Description: LAStools: award-winning software for efficient LiDAR processing (with LASzip)
\ No newline at end of file
diff --git a/ports/lastools/portfile.cmake b/ports/lastools/portfile.cmake
new file mode 100644
index 00000000000..5f6e40397f3
--- /dev/null
+++ b/ports/lastools/portfile.cmake
@@ -0,0 +1,35 @@
+if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} doesn't currently support UWP.")
+endif()
+
+include(vcpkg_common_functions)
+
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO LAStools/LAStools
+ REF f15a702530e098b46c2eb3923f89a68ffa81e668
+ SHA512 df5763b7c69721ba2a24fde2b4092e53136020b88ff4cc0d533279d709c55d7d16d8a4300f0b68829294d9311ed674af5b15306c4ded7a6310e55404737702e0
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright)
+
diff --git a/ports/leaf/CONTROL b/ports/leaf/CONTROL
new file mode 100644
index 00000000000..27db9dc33e6
--- /dev/null
+++ b/ports/leaf/CONTROL
@@ -0,0 +1,3 @@
+Source: leaf
+Version: 0.2.1-1
+Description: Lightweight error augmentation framework
\ No newline at end of file
diff --git a/ports/leaf/portfile.cmake b/ports/leaf/portfile.cmake
new file mode 100644
index 00000000000..64d6ae50e30
--- /dev/null
+++ b/ports/leaf/portfile.cmake
@@ -0,0 +1,20 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO zajo/leaf
+ REF 5fd08ee095c92b2bf4623b7237393e81f995ca7a
+ SHA512 92b86dbba55d31808f442d27dd873dce1162b28213533e124df448ae4f7b4442733501b6539ab15f67a85e184e458a66df4e4e020a3a213b44578ebbde281a42
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/leaf RENAME copyright)
diff --git a/ports/libkml/CONTROL b/ports/libkml/CONTROL
index 34a3a344023..d52ca4c013a 100644
--- a/ports/libkml/CONTROL
+++ b/ports/libkml/CONTROL
@@ -2,4 +2,4 @@ Source: libkml
Version: 1.3.0-3
Homepage: https://github.com/libkml/libkml
Description: Reference implementation of OGC KML 2.2
-Build-Depends: zlib, expat, minizip, uriparser, boost-smart-ptr
+Build-Depends: zlib, expat, minizip[bzip2], uriparser, boost-smart-ptr
diff --git a/ports/libsodium/CMakeLists.txt b/ports/libsodium/CMakeLists.txt
index 62e4d18750e..0cc4f417c15 100644
--- a/ports/libsodium/CMakeLists.txt
+++ b/ports/libsodium/CMakeLists.txt
@@ -152,24 +152,24 @@ else ()
-Wbad-function-cast
-Wcast-qual
#-Wdiv-by-zero
- -Wduplicated-branches
- -Wduplicated-cond
+ #-Wduplicated-branches
+ #-Wduplicated-cond
-Wfloat-equal
-Wformat=2
-Wlogical-op
-Wmaybe-uninitialized
- -Wmisleading-indentation
+ #-Wmisleading-indentation
-Wmissing-declarations
-Wmissing-prototypes
-Wnested-externs
#-Wno-type-limits
#-Wno-unknown-pragmas
-Wnormalized=id
- -Wnull-dereference
+ #-Wnull-dereference
-Wold-style-declaration
-Wpointer-arith
-Wredundant-decls
- -Wrestrict
+ #-Wrestrict
#-Wsometimes-uninitialized
-Wstrict-prototypes
-Wswitch-enum
diff --git a/ports/libsodium/CONTROL b/ports/libsodium/CONTROL
index 333f080318c..daf768c1b5b 100644
--- a/ports/libsodium/CONTROL
+++ b/ports/libsodium/CONTROL
@@ -1,4 +1,4 @@
Source: libsodium
-Version: 1.0.18
+Version: 1.0.18-1
Description: A modern and easy-to-use crypto library
Homepage: https://github.com/jedisct1/libsodium
diff --git a/ports/libyaml/CONTROL b/ports/libyaml/CONTROL
index df8b2b1fe4f..e38c0f9d010 100644
--- a/ports/libyaml/CONTROL
+++ b/ports/libyaml/CONTROL
@@ -1,3 +1,3 @@
Source: libyaml
-Version: 0.2.2
+Version: 0.2.2-1
Description: A C library for parsing and emitting YAML.
diff --git a/ports/libyaml/fix-POSIX_name.patch b/ports/libyaml/fix-POSIX_name.patch
new file mode 100644
index 00000000000..0aa6d211c2d
--- /dev/null
+++ b/ports/libyaml/fix-POSIX_name.patch
@@ -0,0 +1,13 @@
+diff --git a/src/api.c b/src/api.c
+index e793b08..6f16fc5 100644
+--- a/src/api.c
++++ b/src/api.c
+@@ -63,7 +63,7 @@ yaml_strdup(const yaml_char_t *str)
+ if (!str)
+ return NULL;
+
+- return (yaml_char_t *)strdup((char *)str);
++ return (yaml_char_t *)_strdup((char *)str);
+ }
+
+ /*
diff --git a/ports/libyaml/portfile.cmake b/ports/libyaml/portfile.cmake
index 210fc2d7fe1..6c6a6b97b1e 100644
--- a/ports/libyaml/portfile.cmake
+++ b/ports/libyaml/portfile.cmake
@@ -6,6 +6,8 @@ vcpkg_from_github(
REF 0.2.2
SHA512 455494591014a97c4371a1f372ad09f0d6e487e4f1d3419c98e9cd2f16d43a0cf9a0787d7250bebee8b8d400df4626f5acd81e90139e54fa574a66ec84964c06
HEAD_REF master
+ PATCHES
+ fix-POSIX_name.patch
)
vcpkg_configure_cmake(
diff --git a/ports/metis/CONTROL b/ports/metis/CONTROL
index 6db70e59902..02f5eb9e149 100644
--- a/ports/metis/CONTROL
+++ b/ports/metis/CONTROL
@@ -1,4 +1,4 @@
Source: metis
-Version: 5.1.0-3
+Version: 5.1.0-4
Homepage: https://glaros.dtc.umn.edu/gkhome/metis/metis/overview
Description: Serial Graph Partitioning and Fill-reducing Matrix Ordering
diff --git a/ports/metis/fix-linux-build-error.patch b/ports/metis/fix-linux-build-error.patch
new file mode 100644
index 00000000000..b3563a881b3
--- /dev/null
+++ b/ports/metis/fix-linux-build-error.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e94f050..b9613a7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,7 +1,8 @@
+ cmake_minimum_required(VERSION 2.8)
+ project(METIS)
+
+-set(GKLIB_PATH "GKlib" CACHE PATH "path to GKlib")
++set(GKLIB_PATH "${CMAKE_SOURCE_DIR}/GKlib" CACHE PATH "path to GKlib")
++
+ set(SHARED FALSE CACHE BOOL "build a shared library")
+
+ set(METIS_INSTALL TRUE)
diff --git a/ports/metis/portfile.cmake b/ports/metis/portfile.cmake
index 4f8d4520df7..7a7f575a6ef 100644
--- a/ports/metis/portfile.cmake
+++ b/ports/metis/portfile.cmake
@@ -21,6 +21,7 @@ vcpkg_extract_source_archive_ex(
fix-runtime-install-destination.patch
fix-metis-vs14-math.patch
fix-gklib-vs14-math.patch
+ fix-linux-build-error.patch
)
vcpkg_configure_cmake(
diff --git a/ports/minizip/CMakeLists.txt b/ports/minizip/CMakeLists.txt
index edb9b3c7ba3..b5c5d5dbc98 100644
--- a/ports/minizip/CMakeLists.txt
+++ b/ports/minizip/CMakeLists.txt
@@ -6,12 +6,20 @@ if(MSVC)
endif()
find_package(ZLIB REQUIRED)
-
-find_package(BZip2 REQUIRED)
-
set(MIN_SRC contrib/minizip)
-include_directories(${MIN_SRC} ${ZLIB_INCLUDE_DIRS} ${BZIP2_INCLUDE_DIR})
+include_directories(${MIN_SRC} ${ZLIB_INCLUDE_DIRS})
+
+set(MINIZIP_LIBRARIES ZLIB::ZLIB)
+if(ENABLE_BZIP2)
+ message(STATUS "Building with bzip2 support")
+ find_package(BZip2)
+
+ include_directories(${BZIP2_INCLUDE_DIR})
+ set(MINIZIP_LIBRARIES ${MINIZIP_LIBRARIES} ${BZIP2_LIBRARIES})
+else()
+ message(STATUS "Building without bzip2 support")
+endif()
set(SRC
${MIN_SRC}/ioapi.c
@@ -41,14 +49,16 @@ add_library(minizip ${SRC})
target_link_libraries(minizip PRIVATE ZLIB::ZLIB)
target_compile_definitions(minizip PRIVATE -D_ZLIB_H)
-target_link_libraries(minizip PRIVATE ${BZIP2_LIBRARIES})
-target_compile_definitions(minizip PRIVATE -DHAVE_BZIP2=1)
+if(ENABLE_BZIP2)
+ target_link_libraries(minizip PRIVATE ${BZIP2_LIBRARIES})
+ target_compile_definitions(minizip PRIVATE -DHAVE_BZIP2=1)
+endif()
-add_executable(minizip_bin ${MIN_SRC}/minizip.c)
-add_executable(miniunz_bin ${MIN_SRC}/miniunz.c)
+add_executable(minizip_bin ${MIN_SRC}/minizip.c)
+add_executable(miniunz_bin ${MIN_SRC}/miniunz.c)
-target_link_libraries(minizip_bin minizip ${BZIP2_LIBRARIES} ZLIB::ZLIB)
-target_link_libraries(miniunz_bin minizip ${BZIP2_LIBRARIES} ZLIB::ZLIB)
+target_link_libraries(minizip_bin minizip ${MINIZIP_LIBRARIES})
+target_link_libraries(miniunz_bin minizip ${MINIZIP_LIBRARIES})
set_target_properties(minizip_bin PROPERTIES OUTPUT_NAME minizip)
set_target_properties(miniunz_bin PROPERTIES OUTPUT_NAME miniunz)
diff --git a/ports/minizip/CONTROL b/ports/minizip/CONTROL
index 93d453ca23d..9570e945e57 100644
--- a/ports/minizip/CONTROL
+++ b/ports/minizip/CONTROL
@@ -1,5 +1,9 @@
Source: minizip
-Version: 1.2.11-4
+Version: 1.2.11-5
+Build-Depends: zlib
Homepage: https://github.com/madler/zlib
Description: Zip compression library
-Build-Depends: bzip2, zlib
+
+Feature: bzip2
+Build-Depends: bzip2
+Description: Support compression using bzip2 library
diff --git a/ports/minizip/portfile.cmake b/ports/minizip/portfile.cmake
index 15289b76715..86cfe9b9df7 100644
--- a/ports/minizip/portfile.cmake
+++ b/ports/minizip/portfile.cmake
@@ -1,37 +1,48 @@
include(vcpkg_common_functions)
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
- message(FATAL_ERROR "WindowsStore not supported")
+ message(FATAL_ERROR "WindowsStore not supported")
endif()
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
- OUT_SOURCE_PATH SOURCE_PATH
- REPO madler/zlib
- REF v1.2.11
- SHA512 104c62ed1228b5f1199bc037081861576900eb0697a226cafa62a35c4c890b5cb46622e399f9aad82ee5dfb475bae26ae75e2bd6da3d261361b1c8b996970faf
- HEAD_REF master
- PATCHES minizip.patch # enable decrypt support for password-encrypted ZIP files
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO madler/zlib
+ REF v1.2.11
+ SHA512 104c62ed1228b5f1199bc037081861576900eb0697a226cafa62a35c4c890b5cb46622e399f9aad82ee5dfb475bae26ae75e2bd6da3d261361b1c8b996970faf
+ HEAD_REF master
+ PATCHES minizip.patch # enable decrypt support for password-encrypted ZIP files
)
+set(BUILD_minizip_bzip2 OFF)
+if ("bzip2" IN_LIST FEATURES)
+ set(BUILD_minizip_bzip2 ON)
+endif()
+
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- PREFER_NINJA
- OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DENABLE_BZIP2=${BUILD_minizip_bzip2}
+ OPTIONS_DEBUG
+ -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON
)
vcpkg_install_cmake()
vcpkg_copy_pdbs()
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/minizip)
-file(GLOB HEADERS "${CURRENT_PACKAGES_DIR}/include/minizip/*.h")
-foreach(HEADER ${HEADERS})
- file(READ "${HEADER}" _contents)
- string(REPLACE "#ifdef HAVE_BZIP2" "#if 1" _contents "${_contents}")
- file(WRITE "${HEADER}" "${_contents}")
-endforeach()
+
+if ("bzip2" IN_LIST FEATURES)
+ file(GLOB HEADERS "${CURRENT_PACKAGES_DIR}/include/minizip/*.h")
+ foreach(HEADER ${HEADERS})
+ file(READ "${HEADER}" _contents)
+ string(REPLACE "#ifdef HAVE_BZIP2" "#if 1" _contents "${_contents}")
+ file(WRITE "${HEADER}" "${_contents}")
+ endforeach()
+endif()
file(INSTALL ${SOURCE_PATH}/contrib/minizip/MiniZip64_info.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/minizip RENAME copyright)
diff --git a/ports/mlpack/CONTROL b/ports/mlpack/CONTROL
index 0902ce8940a..e76327ca520 100644
--- a/ports/mlpack/CONTROL
+++ b/ports/mlpack/CONTROL
@@ -1,5 +1,5 @@
Source: mlpack
-Version: 3.1.1
+Version: 3.1.1-1
Description: mlpack is a fast, flexible machine learning library, written in C++, that aims to provide fast, extensible implementations of cutting-edge machine learning algorithms.
Build-Depends: openblas (!osx), clapack (!osx), boost, armadillo, ensmallen
diff --git a/ports/mlpack/blas_lapack.patch b/ports/mlpack/blas_lapack.patch
new file mode 100644
index 00000000000..2b9e4459766
--- /dev/null
+++ b/ports/mlpack/blas_lapack.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b158498..50f1def 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -286,7 +286,7 @@ if (WIN32)
+ find_package(LAPACK)
+ find_package(BLAS)
+ set(ARMADILLO_LIBRARIES
+- ${ARMADILLO_LIBRARIES} ${BLAS_LIBRARY} ${LAPACK_LIBRARY})
++ ${ARMADILLO_LIBRARIES} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+ endif ()
+
+ # Include directories for the previous dependencies.
diff --git a/ports/mlpack/portfile.cmake b/ports/mlpack/portfile.cmake
index 0a5bcb6d127..6bde064f478 100644
--- a/ports/mlpack/portfile.cmake
+++ b/ports/mlpack/portfile.cmake
@@ -8,6 +8,7 @@ vcpkg_from_github(
HEAD_REF master
PATCHES
cmakelists.patch
+ blas_lapack.patch
)
file(REMOVE ${SOURCE_PATH}/CMake/ARMA_FindACML.cmake)
diff --git a/ports/mongoose/CMakeLists.txt b/ports/mongoose/CMakeLists.txt
new file mode 100644
index 00000000000..77fe2f8396b
--- /dev/null
+++ b/ports/mongoose/CMakeLists.txt
@@ -0,0 +1,20 @@
+cmake_minimum_required(VERSION 3.14)
+
+project(mongoose C)
+
+include(GNUInstallDirs)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+add_library(mongoose mongoose.c)
+target_include_directories(mongoose PUBLIC $)
+set_target_properties(mongoose PROPERTIES PUBLIC_HEADER mongoose.h)
+
+install(TARGETS mongoose EXPORT unofficial-mongoose-config)
+
+install(
+ EXPORT unofficial-mongoose-config
+ NAMESPACE unofficial::mongoose::
+ DESTINATION share/unofficial-mongoose
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+)
diff --git a/ports/mongoose/CONTROL b/ports/mongoose/CONTROL
new file mode 100644
index 00000000000..ae0bbc75825
--- /dev/null
+++ b/ports/mongoose/CONTROL
@@ -0,0 +1,4 @@
+Source: mongoose
+Version: 6.15-1
+Description: Embedded web server / embedded networking library
+Homepage: https://cesanta.com/
diff --git a/ports/mongoose/portfile.cmake b/ports/mongoose/portfile.cmake
new file mode 100644
index 00000000000..81c8d50ee6e
--- /dev/null
+++ b/ports/mongoose/portfile.cmake
@@ -0,0 +1,34 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO cesanta/mongoose
+ REF 6.15
+ SHA512 d736aeb9ccb7a67fb8180ed324d3fa26e005bfc2ede1db00d73349976bfcfb45489ce3efb178817937fae3cd9f6a6e9c4b620af8517e3ace9c53b9541539bdde
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-${PORT} TARGET_PATH share/unofficial-${PORT})
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
+
+# CMake integration test
+vcpkg_test_cmake(PACKAGE_NAME unofficial-${PORT})
diff --git a/ports/nameof/CONTROL b/ports/nameof/CONTROL
new file mode 100644
index 00000000000..35df482a051
--- /dev/null
+++ b/ports/nameof/CONTROL
@@ -0,0 +1,4 @@
+Source: nameof
+Version: 2019-07-13
+Description: Nameof operator for modern C++
+Homepage: https://github.com/Neargye/nameof
diff --git a/ports/nameof/portfile.cmake b/ports/nameof/portfile.cmake
new file mode 100644
index 00000000000..21dcf1b97d4
--- /dev/null
+++ b/ports/nameof/portfile.cmake
@@ -0,0 +1,31 @@
+# header-only library
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Neargye/nameof
+ REF 9d335128265e443acf4e12ed40327e166cd8e3da
+ SHA512 3d4af0069fc3dbf9a4a79ae1bea282cafb69606936a66bf43b5a13ae2f0cbc88e98dbb02a12e9c211afd73d9807b36a6f09635a1922ce5faaeb2a148672a0b13
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DNAMEOF_OPT_BUILD_EXAMPLES=OFF
+ -DNAMEOF_OPT_BUILD_TESTS=OFF
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT})
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug ${CURRENT_PACKAGES_DIR}/lib)
+
+# Handle copyright
+configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
+
+# CMake integration test
+vcpkg_test_cmake(PACKAGE_NAME ${PORT})
diff --git a/ports/openblas/CONTROL b/ports/openblas/CONTROL
index 1c01d83631e..47b9430a9a9 100644
--- a/ports/openblas/CONTROL
+++ b/ports/openblas/CONTROL
@@ -1,4 +1,5 @@
Source: openblas
-Version: 0.3.6-4
+Version: 0.3.6-5
Homepage: https://github.com/xianyi/OpenBLAS
+Build-Depends: pthread (linux)
Description: OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.
diff --git a/ports/openblas/FindBLAS.cmake b/ports/openblas/FindBLAS.cmake
new file mode 100644
index 00000000000..164e79f3b24
--- /dev/null
+++ b/ports/openblas/FindBLAS.cmake
@@ -0,0 +1,816 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindBLAS
+--------
+
+Find Basic Linear Algebra Subprograms (BLAS) library
+
+This module finds an installed Fortran library that implements the
+BLAS linear-algebra interface (see http://www.netlib.org/blas/). The
+list of libraries searched for is taken from the ``autoconf`` macro file,
+``acx_blas.m4`` (distributed at
+http://ac-archive.sourceforge.net/ac-archive/acx_blas.html).
+
+Input Variables
+^^^^^^^^^^^^^^^
+
+The following variables may be set to influence this module's behavior:
+
+``BLA_STATIC``
+ if ``ON`` use static linkage
+
+``BLA_VENDOR``
+ If set, checks only the specified vendor, if not set checks all the
+ possibilities. List of vendors valid in this module:
+
+ * Goto
+ * OpenBLAS
+ * FLAME
+ * ATLAS PhiPACK
+ * CXML
+ * DXML
+ * SunPerf
+ * SCSL
+ * SGIMATH
+ * IBMESSL
+ * Intel10_32 (intel mkl v10 32 bit)
+ * Intel10_64lp (intel mkl v10+ 64 bit, threaded code, lp64 model)
+ * Intel10_64lp_seq (intel mkl v10+ 64 bit, sequential code, lp64 model)
+ * Intel10_64ilp (intel mkl v10+ 64 bit, threaded code, ilp64 model)
+ * Intel10_64ilp_seq (intel mkl v10+ 64 bit, sequential code, ilp64 model)
+ * Intel (obsolete versions of mkl 32 and 64 bit)
+ * ACML
+ * ACML_MP
+ * ACML_GPU
+ * Apple
+ * NAS
+ * Generic
+
+``BLA_F95``
+ if ``ON`` tries to find the BLAS95 interfaces
+
+``BLA_PREFER_PKGCONFIG``
+ if set ``pkg-config`` will be used to search for a BLAS library first
+ and if one is found that is preferred
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module defines the following variables:
+
+``BLAS_FOUND``
+ library implementing the BLAS interface is found
+``BLAS_LINKER_FLAGS``
+ uncached list of required linker flags (excluding ``-l`` and ``-L``).
+``BLAS_LIBRARIES``
+ uncached list of libraries (using full path name) to link against
+ to use BLAS (may be empty if compiler implicitly links BLAS)
+``BLAS95_LIBRARIES``
+ uncached list of libraries (using full path name) to link against
+ to use BLAS95 interface
+``BLAS95_FOUND``
+ library implementing the BLAS95 interface is found
+
+.. note::
+
+ C or CXX must be enabled to use Intel Math Kernel Library (MKL)
+
+ For example, to use Intel MKL libraries and/or Intel compiler:
+
+ .. code-block:: cmake
+
+ set(BLA_VENDOR Intel10_64lp)
+ find_package(BLAS)
+
+Hints
+^^^^^
+
+Set ``MKLROOT`` environment variable to a directory that contains an MKL
+installation.
+
+#]=======================================================================]
+
+include(${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
+include(${CMAKE_ROOT}/Modules/CheckFortranFunctionExists.cmake)
+include(${CMAKE_ROOT}/Modules/CMakePushCheckState.cmake)
+include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
+cmake_push_check_state()
+set(CMAKE_REQUIRED_QUIET ${BLAS_FIND_QUIETLY})
+
+set(_blas_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+
+# Check the language being used
+if( NOT (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED OR CMAKE_Fortran_COMPILER_LOADED) )
+ if(BLAS_FIND_REQUIRED)
+ message(FATAL_ERROR "FindBLAS requires Fortran, C, or C++ to be enabled.")
+ else()
+ message(STATUS "Looking for BLAS... - NOT found (Unsupported languages)")
+ return()
+ endif()
+endif()
+
+if(BLA_PREFER_PKGCONFIG)
+ find_package(PkgConfig)
+ pkg_check_modules(PKGC_BLAS blas)
+ if(PKGC_BLAS_FOUND)
+ set(BLAS_FOUND ${PKGC_BLAS_FOUND})
+ set(BLAS_LIBRARIES "${PKGC_BLAS_LINK_LIBRARIES}")
+ return()
+ endif()
+endif()
+
+macro(Check_Fortran_Libraries LIBRARIES _prefix _name _flags _list _thread)
+ # This macro checks for the existence of the combination of fortran libraries
+ # given by _list. If the combination is found, this macro checks (using the
+ # Check_Fortran_Function_Exists macro) whether can link against that library
+ # combination using the name of a routine given by _name using the linker
+ # flags given by _flags. If the combination of libraries is found and passes
+ # the link test, LIBRARIES is set to the list of complete library paths that
+ # have been found. Otherwise, LIBRARIES is set to FALSE.
+
+ # N.B. _prefix is the prefix applied to the names of all cached variables that
+ # are generated internally and marked advanced by this macro.
+
+ set(_libdir ${ARGN})
+
+ set(_libraries_work TRUE)
+ set(${LIBRARIES})
+ set(_combined_name)
+ if (NOT _libdir)
+ if (WIN32)
+ set(_libdir ENV LIB)
+ elseif (APPLE)
+ set(_libdir ENV DYLD_LIBRARY_PATH)
+ else ()
+ set(_libdir ENV LD_LIBRARY_PATH)
+ endif ()
+ endif ()
+
+ list(APPEND _libdir "${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}")
+
+ foreach(_library ${_list})
+ set(_combined_name ${_combined_name}_${_library})
+ if(NOT "${_thread}" STREQUAL "")
+ set(_combined_name ${_combined_name}_thread)
+ endif()
+ if(_libraries_work)
+ if (BLA_STATIC)
+ if (WIN32)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ endif ()
+ if (APPLE)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ else ()
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ endif ()
+ else ()
+ if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ # for ubuntu's libblas3gf and liblapack3gf packages
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} .so.3gf)
+ endif ()
+ endif ()
+ find_library(${_prefix}_${_library}_LIBRARY
+ NAMES ${_library}
+ PATHS ${_libdir}
+ )
+ mark_as_advanced(${_prefix}_${_library}_LIBRARY)
+ set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY})
+ set(_libraries_work ${${_prefix}_${_library}_LIBRARY})
+ endif()
+ endforeach()
+ if(_libraries_work)
+ # Test this combination of libraries.
+ set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}} ${_thread})
+ # message("DEBUG: CMAKE_REQUIRED_LIBRARIES = ${CMAKE_REQUIRED_LIBRARIES}")
+ if (CMAKE_Fortran_COMPILER_LOADED)
+ check_fortran_function_exists("${_name}" ${_prefix}${_combined_name}_WORKS)
+ else()
+ check_function_exists("${_name}_" ${_prefix}${_combined_name}_WORKS)
+ endif()
+ set(CMAKE_REQUIRED_LIBRARIES)
+ set(_libraries_work ${${_prefix}${_combined_name}_WORKS})
+ endif()
+ if(_libraries_work)
+ if("${_list}" STREQUAL "")
+ set(${LIBRARIES} "${LIBRARIES}-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
+ else()
+ set(${LIBRARIES} ${${LIBRARIES}} ${_thread}) # for static link
+ endif()
+ else()
+ set(${LIBRARIES} FALSE)
+ endif()
+ #message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}")
+endmacro()
+
+set(BLAS_LINKER_FLAGS)
+set(BLAS_LIBRARIES)
+set(BLAS95_LIBRARIES)
+if (NOT $ENV{BLA_VENDOR} STREQUAL "")
+ set(BLA_VENDOR $ENV{BLA_VENDOR})
+else ()
+ if(NOT BLA_VENDOR)
+ set(BLA_VENDOR "All")
+ endif()
+endif ()
+
+if (BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ # Implicitly linked BLAS libraries
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ ""
+ ""
+ )
+ endif()
+endif ()
+
+#BLAS in intel mkl 10+ library? (em64t 64bit)
+if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
+ if (NOT BLAS_LIBRARIES)
+
+ # System-specific settings
+ if (WIN32)
+ if (BLA_STATIC)
+ set(BLAS_mkl_DLL_SUFFIX "")
+ else()
+ set(BLAS_mkl_DLL_SUFFIX "_dll")
+ endif()
+ else()
+ # Switch to GNU Fortran support layer if needed (but not on Apple, where MKL does not provide it)
+ if(CMAKE_Fortran_COMPILER_LOADED AND CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" AND NOT APPLE)
+ set(BLAS_mkl_INTFACE "gf")
+ set(BLAS_mkl_THREADING "gnu")
+ set(BLAS_mkl_OMP "gomp")
+ else()
+ set(BLAS_mkl_INTFACE "intel")
+ set(BLAS_mkl_THREADING "intel")
+ set(BLAS_mkl_OMP "iomp5")
+ endif()
+ set(BLAS_mkl_LM "-lm")
+ set(BLAS_mkl_LDL "-ldl")
+ endif()
+
+ if (BLA_VENDOR MATCHES "_64ilp")
+ set(BLAS_mkl_ILP_MODE "ilp64")
+ else ()
+ set(BLAS_mkl_ILP_MODE "lp64")
+ endif ()
+
+ if (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
+ if(BLAS_FIND_QUIETLY OR NOT BLAS_FIND_REQUIRED)
+ find_package(Threads)
+ else()
+ find_package(Threads REQUIRED)
+ endif()
+
+ set(BLAS_SEARCH_LIBS "")
+
+ if(BLA_F95)
+ set(BLAS_mkl_SEARCH_SYMBOL sgemm_f95)
+ set(_LIBRARIES BLAS95_LIBRARIES)
+ if (WIN32)
+ # Find the main file (32-bit or 64-bit)
+ set(BLAS_SEARCH_LIBS_WIN_MAIN "")
+ if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
+ list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+ "mkl_blas95${BLAS_mkl_DLL_SUFFIX} mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
+ endif()
+ if (BLA_VENDOR MATCHES "^Intel10_64i?lp" OR BLA_VENDOR STREQUAL "All")
+ list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+ "mkl_blas95_${BLAS_mkl_ILP_MODE}${BLAS_mkl_DLL_SUFFIX} mkl_intel_${BLAS_mkl_ILP_MODE}${BLAS_mkl_DLL_SUFFIX}")
+ endif ()
+
+ # Add threading/sequential libs
+ set(BLAS_SEARCH_LIBS_WIN_THREAD "")
+ if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
+ list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+ "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
+ endif()
+ if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
+ # old version
+ list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+ "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+ # mkl >= 10.3
+ list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+ "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+ endif()
+
+ # Cartesian product of the above
+ foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
+ foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
+ list(APPEND BLAS_SEARCH_LIBS
+ "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
+ endforeach()
+ endforeach()
+ else ()
+ if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
+ # old version
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_blas95 mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
+
+ # mkl >= 10.3
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_blas95 mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
+ endif ()
+ if (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All")
+ # old version
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_blas95 mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
+
+ # mkl >= 10.3
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
+ endif ()
+ if (BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All")
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_sequential mkl_core")
+ endif ()
+ endif ()
+ else ()
+ set(BLAS_mkl_SEARCH_SYMBOL sgemm)
+ set(_LIBRARIES BLAS_LIBRARIES)
+ if (WIN32)
+ # Find the main file (32-bit or 64-bit)
+ set(BLAS_SEARCH_LIBS_WIN_MAIN "")
+ if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
+ list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+ "mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
+ endif()
+ if (BLA_VENDOR MATCHES "^Intel10_64i?lp" OR BLA_VENDOR STREQUAL "All")
+ list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+ "mkl_intel_${BLAS_mkl_ILP_MODE}${BLAS_mkl_DLL_SUFFIX}")
+ endif ()
+
+ # Add threading/sequential libs
+ set(BLAS_SEARCH_LIBS_WIN_THREAD "")
+ if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
+ # old version
+ list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+ "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+ # mkl >= 10.3
+ list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+ "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+ endif()
+ if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
+ list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+ "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
+ endif()
+
+ # Cartesian product of the above
+ foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
+ foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
+ list(APPEND BLAS_SEARCH_LIBS
+ "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
+ endforeach()
+ endforeach()
+ else ()
+ if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
+ # old version
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
+
+ # mkl >= 10.3
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
+ endif ()
+ if (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All")
+ # old version
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
+
+ # mkl >= 10.3
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
+ endif ()
+ if (BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All")
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_sequential mkl_core")
+ endif ()
+
+ #older vesions of intel mkl libs
+ if (BLA_VENDOR STREQUAL "Intel" OR BLA_VENDOR STREQUAL "All")
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl")
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_ia32")
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_em64t")
+ endif ()
+ endif ()
+ endif ()
+
+ if (DEFINED ENV{MKLROOT})
+ if (BLA_VENDOR STREQUAL "Intel10_32")
+ set(_BLAS_MKLROOT_LIB_DIR "$ENV{MKLROOT}/lib/ia32")
+ elseif (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$")
+ set(_BLAS_MKLROOT_LIB_DIR "$ENV{MKLROOT}/lib/intel64")
+ endif ()
+ endif ()
+ if (_BLAS_MKLROOT_LIB_DIR)
+ if (WIN32)
+ string(APPEND _BLAS_MKLROOT_LIB_DIR "_win")
+ elseif (APPLE)
+ string(APPEND _BLAS_MKLROOT_LIB_DIR "_mac")
+ else ()
+ string(APPEND _BLAS_MKLROOT_LIB_DIR "_lin")
+ endif ()
+ endif ()
+
+ foreach (IT ${BLAS_SEARCH_LIBS})
+ string(REPLACE " " ";" SEARCH_LIBS ${IT})
+ if (NOT ${_LIBRARIES})
+ check_fortran_libraries(
+ ${_LIBRARIES}
+ BLAS
+ ${BLAS_mkl_SEARCH_SYMBOL}
+ ""
+ "${SEARCH_LIBS}"
+ "${CMAKE_THREAD_LIBS_INIT};${BLAS_mkl_LM};${BLAS_mkl_LDL}"
+ "${_BLAS_MKLROOT_LIB_DIR}"
+ )
+ endif ()
+ endforeach ()
+
+ endif ()
+ unset(BLAS_mkl_ILP_MODE)
+ unset(BLAS_mkl_INTFACE)
+ unset(BLAS_mkl_THREADING)
+ unset(BLAS_mkl_OMP)
+ unset(BLAS_mkl_DLL_SUFFIX)
+ unset(BLAS_mkl_LM)
+ unset(BLAS_mkl_LDL)
+ endif ()
+endif ()
+
+if(BLA_F95)
+ find_package_handle_standard_args(BLAS REQUIRED_VARS BLAS95_LIBRARIES)
+ set(BLAS95_FOUND ${BLAS_FOUND})
+ if(BLAS_FOUND)
+ set(BLAS_LIBRARIES "${BLAS95_LIBRARIES}")
+ endif()
+endif()
+
+if (BLA_VENDOR STREQUAL "Goto" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ # gotoblas (http://www.tacc.utexas.edu/tacc-projects/gotoblas2)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "goto2"
+ ""
+ )
+ endif()
+endif ()
+
+if (BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ # OpenBLAS (http://www.openblas.net)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "openblas"
+ ""
+ )
+ endif()
+ if(NOT BLAS_LIBRARIES)
+ find_package(Threads)
+ # OpenBLAS (http://www.openblas.net)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "openblas"
+ "${CMAKE_THREAD_LIBS_INIT}"
+ )
+ endif()
+endif ()
+
+if (BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ # FLAME's blis library (https://github.com/flame/blis)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "blis"
+ ""
+ )
+ endif()
+endif ()
+
+if (BLA_VENDOR STREQUAL "ATLAS" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ # BLAS in ATLAS library? (http://math-atlas.sourceforge.net/)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ dgemm
+ ""
+ "f77blas;atlas"
+ ""
+ )
+ endif()
+endif ()
+
+# BLAS in PhiPACK libraries? (requires generic BLAS lib, too)
+if (BLA_VENDOR STREQUAL "PhiPACK" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "sgemm;dgemm;blas"
+ ""
+ )
+ endif()
+endif ()
+
+# BLAS in Alpha CXML library?
+if (BLA_VENDOR STREQUAL "CXML" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "cxml"
+ ""
+ )
+ endif()
+endif ()
+
+# BLAS in Alpha DXML library? (now called CXML, see above)
+if (BLA_VENDOR STREQUAL "DXML" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "dxml"
+ ""
+ )
+ endif()
+endif ()
+
+# BLAS in Sun Performance library?
+if (BLA_VENDOR STREQUAL "SunPerf" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ "-xlic_lib=sunperf"
+ "sunperf;sunmath"
+ ""
+ )
+ if(BLAS_LIBRARIES)
+ set(BLAS_LINKER_FLAGS "-xlic_lib=sunperf")
+ endif()
+ endif()
+endif ()
+
+# BLAS in SCSL library? (SGI/Cray Scientific Library)
+if (BLA_VENDOR STREQUAL "SCSL" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "scsl"
+ ""
+ )
+ endif()
+endif ()
+
+# BLAS in SGIMATH library?
+if (BLA_VENDOR STREQUAL "SGIMATH" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "complib.sgimath"
+ ""
+ )
+ endif()
+endif ()
+
+# BLAS in IBM ESSL library? (requires generic BLAS lib, too)
+if (BLA_VENDOR STREQUAL "IBMESSL" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "essl;blas"
+ ""
+ )
+ endif()
+endif ()
+
+#BLAS in acml library?
+if (BLA_VENDOR MATCHES "ACML" OR BLA_VENDOR STREQUAL "All")
+ if( ((BLA_VENDOR STREQUAL "ACML") AND (NOT BLAS_ACML_LIB_DIRS)) OR
+ ((BLA_VENDOR STREQUAL "ACML_MP") AND (NOT BLAS_ACML_MP_LIB_DIRS)) OR
+ ((BLA_VENDOR STREQUAL "ACML_GPU") AND (NOT BLAS_ACML_GPU_LIB_DIRS))
+ )
+ # try to find acml in "standard" paths
+ if( WIN32 )
+ file( GLOB _ACML_ROOT "C:/AMD/acml*/ACML-EULA.txt" )
+ else()
+ file( GLOB _ACML_ROOT "/opt/acml*/ACML-EULA.txt" )
+ endif()
+ if( WIN32 )
+ file( GLOB _ACML_GPU_ROOT "C:/AMD/acml*/GPGPUexamples" )
+ else()
+ file( GLOB _ACML_GPU_ROOT "/opt/acml*/GPGPUexamples" )
+ endif()
+ list(GET _ACML_ROOT 0 _ACML_ROOT)
+ list(GET _ACML_GPU_ROOT 0 _ACML_GPU_ROOT)
+ if( _ACML_ROOT )
+ get_filename_component( _ACML_ROOT ${_ACML_ROOT} PATH )
+ if( SIZEOF_INTEGER EQUAL 8 )
+ set( _ACML_PATH_SUFFIX "_int64" )
+ else()
+ set( _ACML_PATH_SUFFIX "" )
+ endif()
+ if( CMAKE_Fortran_COMPILER_ID STREQUAL "Intel" )
+ set( _ACML_COMPILER32 "ifort32" )
+ set( _ACML_COMPILER64 "ifort64" )
+ elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "SunPro" )
+ set( _ACML_COMPILER32 "sun32" )
+ set( _ACML_COMPILER64 "sun64" )
+ elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "PGI" )
+ set( _ACML_COMPILER32 "pgi32" )
+ if( WIN32 )
+ set( _ACML_COMPILER64 "win64" )
+ else()
+ set( _ACML_COMPILER64 "pgi64" )
+ endif()
+ elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "Open64" )
+ # 32 bit builds not supported on Open64 but for code simplicity
+ # We'll just use the same directory twice
+ set( _ACML_COMPILER32 "open64_64" )
+ set( _ACML_COMPILER64 "open64_64" )
+ elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "NAG" )
+ set( _ACML_COMPILER32 "nag32" )
+ set( _ACML_COMPILER64 "nag64" )
+ else()
+ set( _ACML_COMPILER32 "gfortran32" )
+ set( _ACML_COMPILER64 "gfortran64" )
+ endif()
+
+ if( BLA_VENDOR STREQUAL "ACML_MP" )
+ set(_ACML_MP_LIB_DIRS
+ "${_ACML_ROOT}/${_ACML_COMPILER32}_mp${_ACML_PATH_SUFFIX}/lib"
+ "${_ACML_ROOT}/${_ACML_COMPILER64}_mp${_ACML_PATH_SUFFIX}/lib" )
+ else()
+ set(_ACML_LIB_DIRS
+ "${_ACML_ROOT}/${_ACML_COMPILER32}${_ACML_PATH_SUFFIX}/lib"
+ "${_ACML_ROOT}/${_ACML_COMPILER64}${_ACML_PATH_SUFFIX}/lib" )
+ endif()
+ endif()
+elseif(BLAS_${BLA_VENDOR}_LIB_DIRS)
+ set(_${BLA_VENDOR}_LIB_DIRS ${BLAS_${BLA_VENDOR}_LIB_DIRS})
+endif()
+
+if( BLA_VENDOR STREQUAL "ACML_MP" )
+ foreach( BLAS_ACML_MP_LIB_DIRS ${_ACML_MP_LIB_DIRS})
+ check_fortran_libraries (
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ "" "acml_mp;acml_mv" "" ${BLAS_ACML_MP_LIB_DIRS}
+ )
+ if( BLAS_LIBRARIES )
+ break()
+ endif()
+ endforeach()
+elseif( BLA_VENDOR STREQUAL "ACML_GPU" )
+ foreach( BLAS_ACML_GPU_LIB_DIRS ${_ACML_GPU_LIB_DIRS})
+ check_fortran_libraries (
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ "" "acml;acml_mv;CALBLAS" "" ${BLAS_ACML_GPU_LIB_DIRS}
+ )
+ if( BLAS_LIBRARIES )
+ break()
+ endif()
+ endforeach()
+else()
+ foreach( BLAS_ACML_LIB_DIRS ${_ACML_LIB_DIRS} )
+ check_fortran_libraries (
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ "" "acml;acml_mv" "" ${BLAS_ACML_LIB_DIRS}
+ )
+ if( BLAS_LIBRARIES )
+ break()
+ endif()
+ endforeach()
+endif()
+
+# Either acml or acml_mp should be in LD_LIBRARY_PATH but not both
+if(NOT BLAS_LIBRARIES)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "acml;acml_mv"
+ ""
+ )
+endif()
+if(NOT BLAS_LIBRARIES)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "acml_mp;acml_mv"
+ ""
+ )
+endif()
+if(NOT BLAS_LIBRARIES)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "acml;acml_mv;CALBLAS"
+ ""
+ )
+endif()
+endif () # ACML
+
+# Apple BLAS library?
+if (BLA_VENDOR STREQUAL "Apple" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ dgemm
+ ""
+ "Accelerate"
+ ""
+ )
+ endif()
+endif ()
+
+if (BLA_VENDOR STREQUAL "NAS" OR BLA_VENDOR STREQUAL "All")
+ if ( NOT BLAS_LIBRARIES )
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ dgemm
+ ""
+ "vecLib"
+ ""
+ )
+ endif ()
+endif ()
+
+# Generic BLAS library?
+if (BLA_VENDOR STREQUAL "Generic" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "blas"
+ ""
+ )
+ endif()
+endif ()
+
+if(NOT BLA_F95)
+ find_package_handle_standard_args(BLAS REQUIRED_VARS BLAS_LIBRARIES)
+endif()
+
+# On compilers that implicitly link BLAS (such as ftn, cc, and CC on Cray HPC machines)
+# we used a placeholder for empty BLAS_LIBRARIES to get through our logic above.
+if (BLAS_LIBRARIES STREQUAL "BLAS_LIBRARIES-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
+ set(BLAS_LIBRARIES "")
+endif()
+
+cmake_pop_check_state()
+set(CMAKE_FIND_LIBRARY_SUFFIXES ${_blas_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
diff --git a/ports/openblas/enable_underscore.patch b/ports/openblas/enable_underscore.patch
deleted file mode 100644
index d2eb3ff22b7..00000000000
--- a/ports/openblas/enable_underscore.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 9696961..47ef712 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -29,7 +29,7 @@ option(BUILD_RELAPACK "Build with ReLAPACK (recursive implementation of several
- # 64 bit integer interfaces in OpenBLAS.
-
- set(SYMBOLPREFIX "" CACHE STRING "Add a prefix to all exported symbol names in the shared library to avoid conflicts with other BLAS libraries" )
--set(SYMBOLSUFFIX "" CACHE STRING "Add a suffix to all exported symbol names in the shared library, e.g. _64 for INTERFACE64 builds" )
-+set(SYMBOLSUFFIX "_" CACHE STRING "Add a suffix to all exported symbol names in the shared library, e.g. _64 for INTERFACE64 builds" )
- #######
- if(BUILD_WITHOUT_LAPACK)
- set(NO_LAPACK 1)
-@@ -232,7 +232,7 @@ if (BUILD_SHARED_LIBS AND BUILD_RELAPACK)
- endif()
- endif()
-
--if (BUILD_SHARED_LIBS AND NOT ${SYMBOLPREFIX}${SYMBOLSUFIX} STREQUAL "")
-+if (NOT ${SYMBOLPREFIX}${SYMBOLSUFFIX} STREQUAL "")
- if (NOT DEFINED ARCH)
- set(ARCH_IN "x86_64")
- else()
-@@ -289,12 +289,14 @@ endif()
- if (NOT ${SYMBOLSUFFIX} STREQUAL "")
- message(STATUS "adding suffix ${SYMBOLSUFFIX} to names of exported symbols in ${OpenBLAS_LIBNAME}")
- endif()
-+if(BUILD_SHARED_LIBS)
- add_custom_command(TARGET ${OpenBLAS_LIBNAME} POST_BUILD
- COMMAND perl ${PROJECT_SOURCE_DIR}/exports/gensymbol "objcopy" "${ARCH}" "${BU}" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" \"${SYMBOLPREFIX}\" \"${SYMBOLSUFFIX}\" "${BUILD_LAPACK_DEPRECATED}" > ${PROJECT_BINARY_DIR}/objcopy.def
- COMMAND objcopy -v --redefine-syms ${PROJECT_BINARY_DIR}/objcopy.def ${PROJECT_BINARY_DIR}/lib/lib${OpenBLAS_LIBNAME}.so
- COMMENT "renaming symbols"
- )
- endif()
-+endif()
-
-
- # Install project
-@@ -385,4 +387,3 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PN}ConfigVersion.cmake
- install(EXPORT "${PN}${SUFFIX64}Targets"
- NAMESPACE "${PN}${SUFFIX64}::"
- DESTINATION ${CMAKECONFIG_INSTALL_DIR})
--
-diff --git a/cmake/prebuild.cmake b/cmake/prebuild.cmake
-index 259ef16..936fbf7 100644
---- a/cmake/prebuild.cmake
-+++ b/cmake/prebuild.cmake
-@@ -58,10 +58,8 @@ endif ()
- set(TARGET_CONF_TEMP "${PROJECT_BINARY_DIR}/${TARGET_CONF}.tmp")
-
- # c_check
--set(FU "")
--if (APPLE OR (MSVC AND NOT ${CMAKE_C_COMPILER_ID} MATCHES "Clang"))
-- set(FU "_")
--endif()
-+set(FU "")
-+set(BU "")
-
- set(COMPILER_ID ${CMAKE_C_COMPILER_ID})
- if (${COMPILER_ID} STREQUAL "GNU")
-@@ -75,7 +73,9 @@ file(WRITE ${TARGET_CONF_TEMP}
- "#define ARCH_${UC_ARCH}\t1\n"
- "#define C_${COMPILER_ID}\t1\n"
- "#define __${BINARY}BIT__\t1\n"
-- "#define FUNDERSCORE\t${FU}\n")
-+ "#define FUNDERSCORE\t${FU}\n"
-+ "#define BUNDERSCORE\t${BU}\n"
-+ "//#define NEEDBUNDERSCORE 1\n")
-
- if (${HOST_OS} STREQUAL "WINDOWSSTORE")
- file(APPEND ${TARGET_CONF_TEMP}
diff --git a/ports/openblas/fix_space_path.patch b/ports/openblas/fix-space-path.patch
similarity index 100%
rename from ports/openblas/fix_space_path.patch
rename to ports/openblas/fix-space-path.patch
diff --git a/ports/openblas/openblas_common.h b/ports/openblas/openblas_common.h
new file mode 100644
index 00000000000..10b25d4c7c2
--- /dev/null
+++ b/ports/openblas/openblas_common.h
@@ -0,0 +1,72 @@
+#pragma once
+#include "openblas_config.h"
+
+#if defined(OPENBLAS_OS_WINNT) || defined(OPENBLAS_OS_CYGWIN_NT) || defined(OPENBLAS_OS_INTERIX)
+#define OPENBLAS_WINDOWS_ABI
+#define OPENBLAS_OS_WINDOWS
+
+#ifdef DOUBLE
+#define DOUBLE_DEFINED DOUBLE
+#undef DOUBLE
+#endif
+#endif
+
+#ifdef NEEDBUNDERSCORE
+#define BLASFUNC(FUNC) FUNC##_
+#else
+#define BLASFUNC(FUNC) FUNC
+#endif
+
+
+#ifdef OPENBLAS_QUAD_PRECISION
+typedef struct {
+ unsigned long x[2];
+} xdouble;
+#elif defined OPENBLAS_EXPRECISION
+#define xdouble long double
+#else
+#define xdouble double
+#endif
+
+#if defined(OS_WINNT) && defined(__64BIT__)
+typedef long long BLASLONG;
+typedef unsigned long long BLASULONG;
+#else
+typedef long BLASLONG;
+typedef unsigned long BLASULONG;
+#endif
+
+#ifdef OPENBLAS_USE64BITINT
+typedef BLASLONG blasint;
+#else
+typedef int blasint;
+#endif
+
+#if defined(XDOUBLE) || defined(DOUBLE)
+#define FLOATRET FLOAT
+#else
+#ifdef NEED_F2CCONV
+#define FLOATRET double
+#else
+#define FLOATRET float
+#endif
+#endif
+
+
+/* Inclusion of a standard header file is needed for definition of __STDC_*
+ predefined macros with some compilers (e.g. GCC 4.7 on Linux). This occurs
+ as a side effect of including either or . */
+#include
+#define OPENBLAS_COMPLEX_STRUCT
+typedef struct { float real, imag; } openblas_complex_float;
+typedef struct { double real, imag; } openblas_complex_double;
+typedef struct { xdouble real, imag; } openblas_complex_xdouble;
+#define openblas_make_complex_float(real, imag) {(real), (imag)}
+#define openblas_make_complex_double(real, imag) {(real), (imag)}
+#define openblas_make_complex_xdouble(real, imag) {(real), (imag)}
+#define openblas_complex_float_real(z) ((z).real)
+#define openblas_complex_float_imag(z) ((z).imag)
+#define openblas_complex_double_real(z) ((z).real)
+#define openblas_complex_double_imag(z) ((z).imag)
+#define openblas_complex_xdouble_real(z) ((z).real)
+#define openblas_complex_xdouble_imag(z) ((z).imag)
diff --git a/ports/openblas/portfile.cmake b/ports/openblas/portfile.cmake
index 45260c78a56..179491cc4aa 100644
--- a/ports/openblas/portfile.cmake
+++ b/ports/openblas/portfile.cmake
@@ -1,26 +1,9 @@
include(vcpkg_common_functions)
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
- message(WARNING "You do not need this package on macOS, since you already have the Accelerate Framework")
- return()
-endif()
-
if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
message(FATAL_ERROR "openblas can only be built for x64 currently")
endif()
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
- set(ADDITIONAL_PATCH "enable_underscore.patch")
-endif()
-
-if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
- set(NO_SHARED 1)
-endif()
-if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- set(NO_STATIC 1)
-endif()
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO xianyi/OpenBLAS
@@ -29,8 +12,7 @@ vcpkg_from_github(
HEAD_REF develop
PATCHES
uwp.patch
- fix_space_path.patch
- ${ADDITIONAL_PATCH}
+ fix-space-path.patch
)
find_program(GIT NAMES git git.cmd)
@@ -77,7 +59,7 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- OPTIONS
+ OPTIONS
${COMMON_OPTIONS}
-DCMAKE_SYSTEM_PROCESSOR=AMD64
-DVS_WINRT_COMPONENT=TRUE
@@ -85,29 +67,44 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
elseif(NOT VCPKG_CMAKE_SYSTEM_NAME)
vcpkg_configure_cmake(
+ PREFER_NINJA
SOURCE_PATH ${SOURCE_PATH}
OPTIONS
${COMMON_OPTIONS})
else()
+ list(APPEND VCPKG_C_FLAGS "-DNEEDBUNDERSCORE") # Required to get common BLASFUNC to append extra _
+ list(APPEND VCPKG_CXX_FLAGS "-DNEEDBUNDERSCORE")
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS
${COMMON_OPTIONS}
- -DTARGET=SANDYBRIDGE
-DCMAKE_SYSTEM_PROCESSOR=AMD64
- -DBINARY=64
- -DNO_SHARED=${NO_SHARED}
- -DNO_STATIC=${NO_STATIC}
- -DNOFORTRAN=ON)
+ -DNOFORTRAN=ON
+ -DBU=_ #required for all blas functions to append extra _ using NAME
+ )
endif()
vcpkg_install_cmake()
-vcpkg_fixup_cmake_targets(CONFIG_PATH share/cmake/OpenBLAS)
-#we install a cmake wrapper since the official FindBLAS thinks that OpenBLAS can solve also LAPACK libraries, while it cannot because we disabled it and we use CLAPACK... maybe we have to trigger finding one package when requesting the other and vice-versa. Wrappers should be ready also to avoid an infinite loop
-file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/blas)
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/cmake/OpenBLAS TARGET_PATH share/openblas)
+#maybe we need also to write a wrapper inside share/blas to search implicitly for openblas, whenever we feel it's ready for its own -config.cmake file
+
+# openblas do not make the config file , so I manually made this
+# but I think in most case, libraries will not include these files, they define their own used function prototypes
+# this is only to quite vcpkg
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/openblas_common.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+file(READ ${SOURCE_PATH}/cblas.h CBLAS_H)
+string(REPLACE "#include \"common.h\"" "#include \"openblas_common.h\"" CBLAS_H "${CBLAS_H}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/cblas.h "${CBLAS_H}")
+
+# openblas is BSD
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openblas)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/openblas/LICENSE ${CURRENT_PACKAGES_DIR}/share/openblas/copyright)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/blas)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindBLAS.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/blas)
+
vcpkg_copy_pdbs()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
-
-file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openblas RENAME copyright)
diff --git a/ports/openblas/vcpkg-cmake-wrapper.cmake b/ports/openblas/vcpkg-cmake-wrapper.cmake
index e0791bde871..fc074f33ca1 100644
--- a/ports/openblas/vcpkg-cmake-wrapper.cmake
+++ b/ports/openblas/vcpkg-cmake-wrapper.cmake
@@ -1,49 +1,2 @@
-list(REMOVE_ITEM ARGS "BLAS")
-list(REMOVE_ITEM ARGS "blas")
-list(REMOVE_ITEM ARGS "Blas")
-list(REMOVE_ITEM ARGS "NO_MODULE")
-list(REMOVE_ITEM ARGS "CONFIG")
-list(REMOVE_ITEM ARGS "MODULE")
-if(NOT BLAS_LIBRARY OR BLAS_LIBRARIES OR OpenBLAS_LIBRARY OR OpenBLAS_LIBRARIES OR BLAS_LIB OR BLAS_LIBS)
- include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
- include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
-
- _find_package(OpenBLAS CONFIG ${ARGS})
-
- set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
- _find_package(Threads)
-
- get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
- set(BLAS_INCLUDE_DIR ${_loc})
- get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY IMPORTED_IMPLIB_RELEASE)
- if(NOT _loc)
- get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY LOCATION_RELEASE)
- endif()
- set(BLAS_LIBRARY_RELEASE ${_loc})
- get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY IMPORTED_IMPLIB_DEBUG)
- if(NOT _loc)
- get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY LOCATION_DEBUG)
- endif()
- set(BLAS_LIBRARY_DEBUG ${_loc})
- list(APPEND BLAS_LIBRARY_RELEASE Threads::Threads)
- list(APPEND BLAS_LIBRARY_DEBUG Threads::Threads)
- select_library_configurations(BLAS)
-
- set(BLAS_LIBRARY "${BLAS_LIBRARY}" CACHE STRING "" FORCE)
- set(BLAS_LIBRARIES "${BLAS_LIBRARY}" CACHE STRING "" FORCE)
- set(OpenBLAS_LIBRARY "${BLAS_LIBRARY}" CACHE STRING "" FORCE)
- set(OpenBLAS_LIBRARIES "${BLAS_LIBRARY}" CACHE STRING "" FORCE)
- set(BLAS_LIB "${BLAS_LIBRARY}" CACHE STRING "" FORCE)
- set(BLAS_LIBS "${BLAS_LIBRARY}" CACHE STRING "" FORCE)
-
- set(BLAS_INCLUDE_DIR "${BLAS_INCLUDE_DIR}" CACHE STRING "" FORCE)
- set(BLAS_INCLUDE_DIRS "${BLAS_INCLUDE_DIR}" CACHE STRING "" FORCE)
- set(OpenBLAS_INCLUDE_DIR "${BLAS_INCLUDE_DIR}" CACHE STRING "" FORCE)
- set(OpenBLAS_INCLUDE_DIRS "${BLAS_INCLUDE_DIR}" CACHE STRING "" FORCE)
- set(BLAS_INC "${BLAS_INCLUDE_DIR}" CACHE STRING "" FORCE)
-
- find_package_handle_standard_args(BLAS DEFAULT_MSG BLAS_LIBRARY BLAS_INCLUDE_DIR)
- mark_as_advanced(BLAS_INCLUDE_DIR BLAS_LIBRARY)
- find_package_handle_standard_args(OpenBLAS DEFAULT_MSG OpenBLAS_LIBRARY OpenBLAS_INCLUDE_DIR)
- mark_as_advanced(OpenBLAS_INCLUDE_DIR OpenBLAS_LIBRARY)
-endif()
+message(STATUS "Using VCPKG FindBLAS. Remove if CMake has been updated to account for Threads in OpenBLAS!")
+include(${CMAKE_CURRENT_LIST_DIR}/FindBLAS.cmake)
diff --git a/ports/otl/CONTROL b/ports/otl/CONTROL
new file mode 100644
index 00000000000..c3950ec25eb
--- /dev/null
+++ b/ports/otl/CONTROL
@@ -0,0 +1,4 @@
+Source: otl
+Version: 4.0.442
+Description: Oracle, Odbc and DB2-CLI Template Library
+Homepage: http://otl.sourceforge.net/
diff --git a/ports/otl/portfile.cmake b/ports/otl/portfile.cmake
new file mode 100644
index 00000000000..eeaa6f2254b
--- /dev/null
+++ b/ports/otl/portfile.cmake
@@ -0,0 +1,17 @@
+include(vcpkg_common_functions)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://otl.sourceforge.net/otlv4_h2.zip"
+ FILENAME "otl-4.0.442.zip"
+ SHA512 2f4005c2351021c92b86411e9c5847757b3596c485c34aa6a7228d86c446b0d9f1dcbfd228e9262d10c7460b77af0709b8ba9d5c7599ae54442efd88ccdbb96d
+)
+
+vcpkg_extract_source_archive_ex(
+ OUT_SOURCE_PATH SOURCE_PATH
+ ARCHIVE ${ARCHIVE}
+ NO_REMOVE_ONE_LEVEL
+ REF 4.0.422
+)
+
+file(INSTALL ${SOURCE_PATH}/otlv4.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/otl)
+file(INSTALL ${SOURCE_PATH}/otlv4.h DESTINATION ${CURRENT_PACKAGES_DIR}/share/otl RENAME copyright)
diff --git a/ports/p-ranav-csv/CONTROL b/ports/p-ranav-csv/CONTROL
new file mode 100644
index 00000000000..958341f9ed7
--- /dev/null
+++ b/ports/p-ranav-csv/CONTROL
@@ -0,0 +1,4 @@
+Source: p-ranav-csv
+Version: 2019-07-11
+Description: CSV for modern C++
+Homepage: https://github.com/p-ranav/csv
diff --git a/ports/p-ranav-csv/portfile.cmake b/ports/p-ranav-csv/portfile.cmake
new file mode 100644
index 00000000000..12384247882
--- /dev/null
+++ b/ports/p-ranav-csv/portfile.cmake
@@ -0,0 +1,25 @@
+# header-only library
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO p-ranav/csv
+ REF 13e04e5b31b585855c7d7e7f3c65e47ae863569b
+ SHA512 ddcdc7af68a0dabb2b7e15822f5900461b9f424ff5e0ac6cafd2454c2f21ca97785ef09ddb805a92e2452fe14c14167c762a822a8af6c5b86446f67e7f3f71bd
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCSV_BUILD_TESTS=OFF
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug)
+
+# Handle copyright
+configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
diff --git a/ports/pprint/CONTROL b/ports/pprint/CONTROL
index 0f06b8c4c08..ea94b198ecd 100644
--- a/ports/pprint/CONTROL
+++ b/ports/pprint/CONTROL
@@ -1,3 +1,4 @@
Source: pprint
-Version: 2019-06-01
+Version: 2019-07-19
Description: Pretty Printer for Modern C++
+Homepage: https://github.com/p-ranav/pprint
diff --git a/ports/pprint/portfile.cmake b/ports/pprint/portfile.cmake
index 792b4851ba5..3b360e68388 100644
--- a/ports/pprint/portfile.cmake
+++ b/ports/pprint/portfile.cmake
@@ -5,8 +5,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO p-ranav/pprint
- REF 71d85f0cd4ec2012c9cf19bfa741e094fcecfa3e
- SHA512 6b0ff7a75a09226f775fa01fd9753d0f69c4838b40253fe9fc824eeee3c2efa1884e711188858f185f9c765f1dadace0bb72227d71e4d2218c493ddfb60224fa
+ REF 2fb81cd4af62c019ea28ea1707164fc3637bc656
+ SHA512 51bdf0e06666511fb475b46ff2d512e5d04b231f63c274c021f56b194501885a0302af95cc90977b0a3b39b555d1076926f618d0a6751926acb5f8b2a968bc0a
HEAD_REF master
)
diff --git a/ports/qt5-3d/CONTROL b/ports/qt5-3d/CONTROL
index 515dd5513f8..0dfbdb027c8 100644
--- a/ports/qt5-3d/CONTROL
+++ b/ports/qt5-3d/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-3d
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 3d Module - Functionality for near-realtime simulation systems with support for 2D and 3D rendering
Build-Depends: qt5-modularscripts, qt5-base, qt5-declarative
diff --git a/ports/qt5-activeqt/CONTROL b/ports/qt5-activeqt/CONTROL
index 60ca3837058..e2084f0468f 100644
--- a/ports/qt5-activeqt/CONTROL
+++ b/ports/qt5-activeqt/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-activeqt
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 ActiveQt Module - ActiveX components
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-activeqt/portfile.cmake b/ports/qt5-activeqt/portfile.cmake
index 1e63132d89e..40c4875d928 100644
--- a/ports/qt5-activeqt/portfile.cmake
+++ b/ports/qt5-activeqt/portfile.cmake
@@ -1,5 +1,9 @@
include(vcpkg_common_functions)
+if (NOT VCPKG_TARGET_IS_WINDOWS)
+ message(FATAL_ERROR "qt5-activeqt only support Windows.")
+endif()
+
include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
qt_modular_library(qtactiveqt 477c42653a59739aeeb17ab54bdd5cc50bc72a117250926e940c34d3f81d1b92356074056fb49f3cd811a88840377836b2d97cea8cbc62ae1d895168e7860753)
diff --git a/ports/qt5-base/CONTROL b/ports/qt5-base/CONTROL
index 562a9cc9dd5..853215dc429 100644
--- a/ports/qt5-base/CONTROL
+++ b/ports/qt5-base/CONTROL
@@ -1,5 +1,5 @@
Source: qt5-base
-Version: 5.12.3-2
+Version: 5.12.3-3
Homepage: https://www.qt.io/
Description: Qt5 Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.
Build-Depends: zlib, libjpeg-turbo, libpng, freetype, pcre2, harfbuzz, sqlite3, libpq, double-conversion, openssl
diff --git a/ports/qt5-base/portfile.cmake b/ports/qt5-base/portfile.cmake
index a5741156247..c53d30e5b13 100644
--- a/ports/qt5-base/portfile.cmake
+++ b/ports/qt5-base/portfile.cmake
@@ -87,6 +87,10 @@ if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore
)
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ if (NOT EXISTS "/usr/include/GL/glu.h")
+ message(FATAL_ERROR "qt5 requires libgl1-mesa-dev and libglu1-mesa-dev, please use your distribution's package manager to install them.\nExample: \"apt-get install libgl1-mesa-dev\" and \"apt-get install libglu1-mesa-dev\"")
+ endif()
+
configure_qt(
SOURCE_PATH ${SOURCE_PATH}
PLATFORM "linux-g++"
diff --git a/ports/qt5-charts/CONTROL b/ports/qt5-charts/CONTROL
index 672aaf2d1b8..849ee2af694 100644
--- a/ports/qt5-charts/CONTROL
+++ b/ports/qt5-charts/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-charts
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Charts Module - UI components for displaying charts, driven by static or dynamic data models
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-connectivity/CONTROL b/ports/qt5-connectivity/CONTROL
index 741af676731..bd169d40d5c 100644
--- a/ports/qt5-connectivity/CONTROL
+++ b/ports/qt5-connectivity/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-connectivity
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Connectivity module - Provides access to Bluetooth and NFC hardware
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-datavis3d/CONTROL b/ports/qt5-datavis3d/CONTROL
index 5ef4728dfaa..0957b7d2c03 100644
--- a/ports/qt5-datavis3d/CONTROL
+++ b/ports/qt5-datavis3d/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-datavis3d
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Data Visualization 3d Module - UI Components for creating 3D data visualizations
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-declarative/CONTROL b/ports/qt5-declarative/CONTROL
index 1e7e6f6e64f..9b9c79e629f 100644
--- a/ports/qt5-declarative/CONTROL
+++ b/ports/qt5-declarative/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-declarative
-Version: 5.12.3-1
+Version: 5.12.3-2
Description: Qt5 Declarative (Quick 2) Module. Includes QtQuick, QtQuickParticles, QtQuickWidgets, QtQml, and QtPacketProtocol.
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-declarative/portfile.cmake b/ports/qt5-declarative/portfile.cmake
index 1056d1b9f3e..4c1a11b2481 100644
--- a/ports/qt5-declarative/portfile.cmake
+++ b/ports/qt5-declarative/portfile.cmake
@@ -11,4 +11,15 @@ if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
file(READ "${qt5decpath}" _contents)
string(REPLACE [[QT.qmldevtools_private.libs = $$QT_MODULE_HOST_LIB_BASE]] [[QT.qmldevtools_private.libs = $$QT_MODULE_LIB_BASE]] _contents "${_contents}")
file(WRITE "${qt5decpath}" "${_contents}")
+endif()
+
+# Copy qt5-declarative tools
+# This is a temporary workaround and hope to fix and remove it after the version update.
+if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ if (EXISTS ${CURRENT_PACKAGES_DIR}/tools/qt5-declarative/)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/tools/qt5-declarative/ ${CURRENT_PACKAGES_DIR}/tools/qt5/)
+ endif()
+ if (EXISTS ${CURRENT_PACKAGES_DIR}/lib/libQt5QmlDevTools.a)
+ file(COPY ${CURRENT_PACKAGES_DIR}/lib/libQt5QmlDevTools.a DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
+ endif()
endif()
\ No newline at end of file
diff --git a/ports/qt5-gamepad/CONTROL b/ports/qt5-gamepad/CONTROL
index 741c249cd06..105e2f5ddd6 100644
--- a/ports/qt5-gamepad/CONTROL
+++ b/ports/qt5-gamepad/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-gamepad
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Gamepad Module - Enables Qt applications to support the use of gamepad hardware
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-graphicaleffects/CONTROL b/ports/qt5-graphicaleffects/CONTROL
index 71250701bef..80730b0fe04 100644
--- a/ports/qt5-graphicaleffects/CONTROL
+++ b/ports/qt5-graphicaleffects/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-graphicaleffects
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 GraphicalEffects Module.
Build-Depends: qt5-modularscripts, qt5-base, qt5-declarative
diff --git a/ports/qt5-imageformats/CONTROL b/ports/qt5-imageformats/CONTROL
index 7033b42c5aa..40df95dbeb2 100644
--- a/ports/qt5-imageformats/CONTROL
+++ b/ports/qt5-imageformats/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-imageformats
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Image Formats Module - Plugins for additional image formats: TIFF, MNG, TGA, WBMP
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-location/CONTROL b/ports/qt5-location/CONTROL
index b881c1fae7c..a6f469fc8e6 100644
--- a/ports/qt5-location/CONTROL
+++ b/ports/qt5-location/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-location
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Location Module - Displays map, navigation, and place content in a QML application.
Build-Depends: qt5-modularscripts, qt5-base, qt5-declarative
diff --git a/ports/qt5-macextras/CONTROL b/ports/qt5-macextras/CONTROL
index e0c68641404..7489191f32d 100644
--- a/ports/qt5-macextras/CONTROL
+++ b/ports/qt5-macextras/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-macextras
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Mac Extras Module. Provides platform-specific APIs for mac.
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-macextras/portfile.cmake b/ports/qt5-macextras/portfile.cmake
index a833541d951..676f0b23ee0 100644
--- a/ports/qt5-macextras/portfile.cmake
+++ b/ports/qt5-macextras/portfile.cmake
@@ -1,5 +1,9 @@
include(vcpkg_common_functions)
+if (NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ message(FATAL_ERROR "qt5-macextras only support OSX.")
+endif()
+
include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
qt_modular_library(qtmacextras 56887c2a2d20c41a133af87aec8975e17c6335ffc51093f23a904e02a78f59a8117c7932827ca5dd33f538360e6fd9cfc9d0091c6f4c1e0b96528b5324c74033)
diff --git a/ports/qt5-modularscripts/CONTROL b/ports/qt5-modularscripts/CONTROL
index 4dc0032f91b..a3751b61bec 100644
--- a/ports/qt5-modularscripts/CONTROL
+++ b/ports/qt5-modularscripts/CONTROL
@@ -1,3 +1,3 @@
Source: qt5-modularscripts
-Version: 2019-04-30
+Version: 2019-04-30-1
Description: Vcpkg helpers to package qt5 modules
diff --git a/ports/qt5-modularscripts/qt_modular_library.cmake b/ports/qt5-modularscripts/qt_modular_library.cmake
index 61eea306b6d..e58d0bf919b 100644
--- a/ports/qt5-modularscripts/qt_modular_library.cmake
+++ b/ports/qt5-modularscripts/qt_modular_library.cmake
@@ -52,8 +52,12 @@ function(qt_modular_build_library SOURCE_PATH)
#Configure debug+release
vcpkg_configure_qmake(SOURCE_PATH ${SOURCE_PATH})
-
- vcpkg_build_qmake()
+ #Build debug+release
+ if (CMAKE_HOST_WIN32)
+ vcpkg_build_qmake()
+ else()
+ vcpkg_build_qmake(SKIP_MAKEFILES)
+ endif()
#Fix the cmake files if they exist
if(EXISTS ${RELEASE_DIR}/lib/cmake)
@@ -76,11 +80,12 @@ function(qt_modular_build_library SOURCE_PATH)
#Install the module files
vcpkg_build_qmake(TARGETS install SKIP_MAKEFILES BUILD_LOGNAME install)
- #Remove extra cmake files
+ #Install cmake files
if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
endif()
+ #Remove extra cmake files
if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
endif()
diff --git a/ports/qt5-mqtt/CONTROL b/ports/qt5-mqtt/CONTROL
index 87da5cd9230..0e424dad9e2 100644
--- a/ports/qt5-mqtt/CONTROL
+++ b/ports/qt5-mqtt/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-mqtt
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 MQTT module.
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-multimedia/CONTROL b/ports/qt5-multimedia/CONTROL
index cdc7e20c788..9e41198a68f 100644
--- a/ports/qt5-multimedia/CONTROL
+++ b/ports/qt5-multimedia/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-multimedia
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Multimedia Module - Classes and widgets for audio, video, radio and camera functionality
Build-Depends: qt5-modularscripts, qt5-base, qt5-declarative
diff --git a/ports/qt5-networkauth/CONTROL b/ports/qt5-networkauth/CONTROL
index 241e52cdc26..34f5d82a2a5 100644
--- a/ports/qt5-networkauth/CONTROL
+++ b/ports/qt5-networkauth/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-networkauth
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Network Authorization Module
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-purchasing/CONTROL b/ports/qt5-purchasing/CONTROL
index 14a21138a7a..bd859657188 100644
--- a/ports/qt5-purchasing/CONTROL
+++ b/ports/qt5-purchasing/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-purchasing
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Purchasing Module - Enables in-app purchase of products in Qt applications.
Build-Depends: qt5-modularscripts, qt5-base, qt5-declarative
diff --git a/ports/qt5-quickcontrols/CONTROL b/ports/qt5-quickcontrols/CONTROL
index 287daebe147..b7360350d9d 100644
--- a/ports/qt5-quickcontrols/CONTROL
+++ b/ports/qt5-quickcontrols/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-quickcontrols
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 QuickControls Module.
Build-Depends: qt5-modularscripts, qt5-base, qt5-declarative
diff --git a/ports/qt5-quickcontrols2/CONTROL b/ports/qt5-quickcontrols2/CONTROL
index 01f94c4c07b..88358dd1613 100644
--- a/ports/qt5-quickcontrols2/CONTROL
+++ b/ports/qt5-quickcontrols2/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-quickcontrols2
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 QuickControls2 Module.
Build-Depends: qt5-modularscripts, qt5-base, qt5-declarative
diff --git a/ports/qt5-remoteobjects/CONTROL b/ports/qt5-remoteobjects/CONTROL
index e1e9df45080..ffe6095a542 100644
--- a/ports/qt5-remoteobjects/CONTROL
+++ b/ports/qt5-remoteobjects/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-remoteobjects
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Remoteobjects module - Provides an easy to use mechanism for sharing a QObject's API (Properties/Signals/Slots) between processes or devices.
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-script/CONTROL b/ports/qt5-script/CONTROL
index e27e24b5742..4fe0bb02801 100755
--- a/ports/qt5-script/CONTROL
+++ b/ports/qt5-script/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-script
-Version: 5.12.3
+Version: 5.12.3-1
Build-Depends: qt5-base, qt5-modularscripts
Description:Qt5 Script Module.
diff --git a/ports/qt5-scxml/CONTROL b/ports/qt5-scxml/CONTROL
index b61ed5922e5..accc5100aa6 100644
--- a/ports/qt5-scxml/CONTROL
+++ b/ports/qt5-scxml/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-scxml
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 SCXML Module - Provides classes and tools for creating state machines from SCXML files and embedding them in applications
Build-Depends: qt5-modularscripts, qt5-base, qt5-declarative
diff --git a/ports/qt5-sensors/CONTROL b/ports/qt5-sensors/CONTROL
index f0bceb31ca8..a69df5531b0 100644
--- a/ports/qt5-sensors/CONTROL
+++ b/ports/qt5-sensors/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-sensors
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Sensors module - Provides access to sensor hardware and motion gesture recognition.
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-serialport/CONTROL b/ports/qt5-serialport/CONTROL
index 8e2572300d0..e9613f2351d 100644
--- a/ports/qt5-serialport/CONTROL
+++ b/ports/qt5-serialport/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-serialport
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Serial Port - provides access to hardware and virtual serial ports
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-speech/CONTROL b/ports/qt5-speech/CONTROL
index cbc841086d0..ee1606cbd56 100644
--- a/ports/qt5-speech/CONTROL
+++ b/ports/qt5-speech/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-speech
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Speech Module
Build-Depends: qt5-modularscripts, qt5-base, atlmfc (windows)
diff --git a/ports/qt5-svg/CONTROL b/ports/qt5-svg/CONTROL
index 9970a6fc081..8f7f9573741 100644
--- a/ports/qt5-svg/CONTROL
+++ b/ports/qt5-svg/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-svg
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 SVG Module - provides classes for displaying the contents of SVG files
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-tools/CONTROL b/ports/qt5-tools/CONTROL
index 502635783df..c64f3536c69 100644
--- a/ports/qt5-tools/CONTROL
+++ b/ports/qt5-tools/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-tools
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Tools Module; Includes deployment tools and helpers, Qt Designer, Assistant, and other applications
Build-Depends: qt5-modularscripts, qt5-base, qt5-declarative
diff --git a/ports/qt5-virtualkeyboard/CONTROL b/ports/qt5-virtualkeyboard/CONTROL
index 20b745844b4..de343f92862 100644
--- a/ports/qt5-virtualkeyboard/CONTROL
+++ b/ports/qt5-virtualkeyboard/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-virtualkeyboard
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Virtual Keyboard Module - A framework for implementing different input methods. Supports localized keyboard layouts and custom visual themes
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-webchannel/CONTROL b/ports/qt5-webchannel/CONTROL
index 64945edbad8..93b47e0e036 100644
--- a/ports/qt5-webchannel/CONTROL
+++ b/ports/qt5-webchannel/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-webchannel
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Web Channel module - Provides access to QObject or QML objects from HTML clients for seamless integration of Qt applications with HTML/JavaScript clients.
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-websockets/CONTROL b/ports/qt5-websockets/CONTROL
index e2cae414c84..4fbf6c19a19 100644
--- a/ports/qt5-websockets/CONTROL
+++ b/ports/qt5-websockets/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-websockets
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Web Sockets Module - provides WebSocket communication compliant with RFC 6455
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-webview/CONTROL b/ports/qt5-webview/CONTROL
index e0816259a13..b82afd8ef2d 100644
--- a/ports/qt5-webview/CONTROL
+++ b/ports/qt5-webview/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-webview
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 WebView module - Provides a way to display web content in a QML application without necessarily including a full web browser stack by using native APIs where it makes sense.
Build-Depends: qt5-base, qt5-modularscripts, qt5-declarative
diff --git a/ports/qt5-winextras/CONTROL b/ports/qt5-winextras/CONTROL
index 97c443d8c70..cbb4a71c657 100644
--- a/ports/qt5-winextras/CONTROL
+++ b/ports/qt5-winextras/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-winextras
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 Windows Extras Module. Provides platform-specific APIs for Windows.
-Build-Depends: qt5-modularscripts, qt5-base, atlmfc
+Build-Depends: qt5-modularscripts, qt5-base, atlmfc (windows)
diff --git a/ports/qt5-winextras/portfile.cmake b/ports/qt5-winextras/portfile.cmake
index f0890bfafcb..90adb16c09b 100644
--- a/ports/qt5-winextras/portfile.cmake
+++ b/ports/qt5-winextras/portfile.cmake
@@ -1,5 +1,9 @@
include(vcpkg_common_functions)
+if (NOT VCPKG_TARGET_IS_WINDOWS)
+ message(FATAL_ERROR "qt5-winextras only support Windows.")
+endif()
+
include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
qt_modular_library(qtwinextras e50cb237359ce7a3bde6989ec4349fe67be3b4999092516e891bba12f0fb4acb9954de8e2f0171db0e849b7d3ef94bd80f77f81162afb239e49c6e2e0760343b)
diff --git a/ports/qt5-xmlpatterns/CONTROL b/ports/qt5-xmlpatterns/CONTROL
index 9176159221d..a2e394f3d68 100644
--- a/ports/qt5-xmlpatterns/CONTROL
+++ b/ports/qt5-xmlpatterns/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-xmlpatterns
-Version: 5.12.3
+Version: 5.12.3-1
Description: Qt5 XML Patterns Module - Support for XPath, XQuery, XSLT and XML schema validation
Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/rapidjson/CONTROL b/ports/rapidjson/CONTROL
index b3c0f60b502..53d34462870 100644
--- a/ports/rapidjson/CONTROL
+++ b/ports/rapidjson/CONTROL
@@ -1,4 +1,4 @@
Source: rapidjson
-Version: d87b698
+Version: d87b698-1
Description: A fast JSON parser/generator for C++ with both SAX/DOM style API
Homepage: http://rapidjson.org/
\ No newline at end of file
diff --git a/ports/rapidjson/portfile.cmake b/ports/rapidjson/portfile.cmake
index 4f3529f5b17..7438c0e33c8 100644
--- a/ports/rapidjson/portfile.cmake
+++ b/ports/rapidjson/portfile.cmake
@@ -32,9 +32,7 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib ${CURRENT_PACKAGES_DIR}/debug ${
file(COPY ${SOURCE_PATH}/license.txt ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/rapidjson)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/rapidjson/license.txt ${CURRENT_PACKAGES_DIR}/share/rapidjson/copyright)
-if(VCPKG_USE_HEAD_VERSION)
- file(READ "${CURRENT_PACKAGES_DIR}/share/rapidjson/RapidJSONConfig.cmake" _contents)
- string(REPLACE "\${RapidJSON_SOURCE_DIR}" "\${RapidJSON_CMAKE_DIR}/../.." _contents "${_contents}")
- file(WRITE "${CURRENT_PACKAGES_DIR}/share/rapidjson/RapidJSONConfig.cmake" "${_contents}\nset(RAPIDJSON_INCLUDE_DIRS \"\${RapidJSON_INCLUDE_DIRS}\")\n")
- # Note: adding this extra setting for RAPIDJSON_INCLUDE_DIRS maintains compatibility with previous rapidjson versions
-endif()
+file(READ "${CURRENT_PACKAGES_DIR}/share/rapidjson/RapidJSONConfig.cmake" _contents)
+string(REPLACE "\${RapidJSON_SOURCE_DIR}" "\${RapidJSON_CMAKE_DIR}/../.." _contents "${_contents}")
+file(WRITE "${CURRENT_PACKAGES_DIR}/share/rapidjson/RapidJSONConfig.cmake" "${_contents}\nset(RAPIDJSON_INCLUDE_DIRS \"\${RapidJSON_INCLUDE_DIRS}\")\n")
+# Note: adding this extra setting for RAPIDJSON_INCLUDE_DIRS maintains compatibility with previous rapidjson versions
diff --git a/ports/restbed/CONTROL b/ports/restbed/CONTROL
index d0eab13ce84..53f6ea0de04 100644
--- a/ports/restbed/CONTROL
+++ b/ports/restbed/CONTROL
@@ -1,4 +1,8 @@
Source: restbed
-Version: 4.16-07-28-2018
+Version: 4.16-07-28-2018-1
Description: Corvusoft's Restbed framework brings asynchronous RESTful functionality to C++11 applications.
-Build-Depends: asio
\ No newline at end of file
+Build-Depends: asio
+
+Feature: openssl
+Build-Depends: openssl
+Description: Secure over the wire communication allowing you to transmit private data online.
\ No newline at end of file
diff --git a/ports/restbed/add_openssl_support.patch b/ports/restbed/add_openssl_support.patch
new file mode 100644
index 00000000000..72d4dc4067c
--- /dev/null
+++ b/ports/restbed/add_openssl_support.patch
@@ -0,0 +1,37 @@
+diff --git a/cmake/Findopenssl.cmake b/cmake/Findopenssl.cmake
+index 8db9799..626ff55 100644
+--- a/cmake/Findopenssl.cmake
++++ b/cmake/Findopenssl.cmake
+@@ -1,24 +1,7 @@
+-find_library( ssl_LIBRARY_STATIC libssl.a ssleay32.lib HINTS "${PROJECT_SOURCE_DIR}/dependency/openssl/out32dll" "${PROJECT_SOURCE_DIR}/dependency/openssl" "/usr/local/opt/openssl/lib" "/usr/lib" "/usr/local/lib" "/opt/local/lib" )
+-find_library( crypto_LIBRARY_STATIC libcrypto.a libeay32.lib HINTS "${PROJECT_SOURCE_DIR}/dependency/openssl/out32dll" "${PROJECT_SOURCE_DIR}/dependency/openssl" "/usr/local/opt/openssl/lib" "/usr/lib" "/usr/local/lib" "/opt/local/lib" )
+-
+-find_library( ssl_LIBRARY_SHARED libssl.so libssl.dylib ssleay32.dll HINTS "${PROJECT_SOURCE_DIR}/dependency/openssl/out32dll" "${PROJECT_SOURCE_DIR}/dependency/openssl" "/usr/local/opt/openssl/lib" "/usr/lib" "/usr/local/lib" "/opt/local/lib" )
+-find_library( crypto_LIBRARY_SHARED libcrypto.so libcrypto.dylib libeay32.dll HINTS "${PROJECT_SOURCE_DIR}/dependency/openssl/out32dll" "${PROJECT_SOURCE_DIR}/dependency/openssl" "/usr/local/opt/openssl/lib" "/usr/lib" "/usr/local/lib" "/opt/local/lib" )
+-
+-find_path( ssl_INCLUDE openssl/ssl.h HINTS "${PROJECT_SOURCE_DIR}/dependency/openssl/inc32" "${PROJECT_SOURCE_DIR}/dependency/openssl/include" "/usr/local/opt/openssl/include" "/usr/include" "/usr/local/include" "/opt/local/include" )
+-
+-if ( ssl_LIBRARY_STATIC AND ssl_LIBRARY_SHARED AND crypto_LIBRARY_STATIC AND crypto_LIBRARY_SHARED )
+- set( OPENSSL_FOUND TRUE )
+- add_definitions( -DBUILD_SSL=TRUE )
+-
+- if ( APPLE AND BUILD_SSL )
+- set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations" )
+- endif( )
+-
+- message( STATUS "Found OpenSSL include at: ${ssl_INCLUDE}" )
+- message( STATUS "Found OpenSSL library at: ${ssl_LIBRARY_STATIC}" )
+- message( STATUS "Found OpenSSL library at: ${ssl_LIBRARY_SHARED}" )
+- message( STATUS "Found Crypto library at: ${crypto_LIBRARY_STATIC}" )
+- message( STATUS "Found Crypto library at: ${crypto_LIBRARY_SHARED}" )
+-else ( )
+- message( FATAL_ERROR "Failed to locate OpenSSL dependency. see restbed/dependency/openssl; ./config shared; make all" )
+-endif ( )
++if (BUILD_SSL)
++ set( OPENSSL_FOUND TRUE )
++ add_definitions( -DBUILD_SSL=TRUE )
++ if ( APPLE AND BUILD_SSL )
++ set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations" )
++ endif( )
++endif()
+\ No newline at end of file
diff --git a/ports/restbed/portfile.cmake b/ports/restbed/portfile.cmake
index 60f1247d87d..7b4a2d94478 100644
--- a/ports/restbed/portfile.cmake
+++ b/ports/restbed/portfile.cmake
@@ -11,11 +11,20 @@ vcpkg_from_github(
PATCHES cmake.patch
)
+set(USE_OPENSSL OFF)
+if("openssl" IN_LIST FEATURES)
+ vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES add_openssl_support.patch
+ )
+ set(USE_OPENSSL ON)
+endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
- -DBUILD_SSL=OFF
+ -DBUILD_SSL=${USE_OPENSSL}
-DDISABLE_TESTS=ON
)
diff --git a/ports/rocksdb/CONTROL b/ports/rocksdb/CONTROL
index 6e35d8a9b2a..6daf694b5b7 100644
--- a/ports/rocksdb/CONTROL
+++ b/ports/rocksdb/CONTROL
@@ -1,5 +1,5 @@
Source: rocksdb
-Version: 6.0.2
+Version: 6.1.2
Homepage: https://github.com/facebook/rocksdb
Description: A library that provides an embeddable, persistent key-value store for fast storage
Default-Features: zlib
@@ -19,3 +19,7 @@ Description: zlib support in rocksdb
Feature: tbb
Build-Depends: tbb
Description: tbb support in rocksdb
+
+Feature: zstd
+Build-Depends: zstd
+Description: zstd support in rocksdb
diff --git a/ports/rocksdb/Findzstd.cmake b/ports/rocksdb/Findzstd.cmake
new file mode 100644
index 00000000000..f047fc2a917
--- /dev/null
+++ b/ports/rocksdb/Findzstd.cmake
@@ -0,0 +1,13 @@
+find_path(ZSTD_INCLUDE_DIR zstd.h)
+
+find_library(ZSTD_LIBRARY_DEBUG NAMES zstd)
+find_library(ZSTD_LIBRARY_RELEASE NAMES zstd)
+
+include(SelectLibraryConfigurations)
+select_library_configurations(ZSTD)
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(
+ ZSTD DEFAULT_MSG
+ ZSTD_LIBRARY ZSTD_INCLUDE_DIR
+)
diff --git a/ports/rocksdb/portfile.cmake b/ports/rocksdb/portfile.cmake
index 27a9d70d538..7cab8b7d94f 100644
--- a/ports/rocksdb/portfile.cmake
+++ b/ports/rocksdb/portfile.cmake
@@ -3,8 +3,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO facebook/rocksdb
- REF v6.0.2
- SHA512 6659f04c9823750b9b635e2a247b59dbda4975458615392df82bdbeb4ac7ac783e6de86a32fcc318aae1bb27880557390c544c99caa3db3885f9c3d836cc1df8
+ REF v6.1.2
+ SHA512 3d9e994b202c9f1c1c188e37a4f781bb97af5ba72f2f3f59091b79f402b819c9765dcd1e7d0851b5119c0bf510aa3f5bed44a542798ee81795a8328d71554b38
HEAD_REF master
PATCHES
0001-disable-gtest.patch
@@ -18,6 +18,7 @@ file(REMOVE "${SOURCE_PATH}/cmake/modules/Findzlib.cmake")
file(COPY
"${CMAKE_CURRENT_LIST_DIR}/Findlz4.cmake"
"${CMAKE_CURRENT_LIST_DIR}/Findsnappy.cmake"
+ "${CMAKE_CURRENT_LIST_DIR}/Findzstd.cmake"
DESTINATION "${SOURCE_PATH}/cmake/modules"
)
@@ -40,6 +41,11 @@ if("zlib" IN_LIST FEATURES)
set(WITH_ZLIB ON)
endif()
+set(WITH_ZLIB OFF)
+if("zstd" IN_LIST FEATURES)
+ set(WITH_ZLIB ON)
+endif()
+
set(WITH_TBB OFF)
set(ROCKSDB_IGNORE_PACKAGE_TBB TRUE)
if("tbb" IN_LIST FEATURES)
@@ -57,6 +63,7 @@ vcpkg_configure_cmake(
-DWITH_LZ4=${WITH_LZ4}
-DWITH_ZLIB=${WITH_ZLIB}
-DWITH_TBB=${WITH_TBB}
+ -DWITH_ZSTD=${WITH_ZSTD}
-DWITH_TESTS=OFF
-DUSE_RTTI=1
-DROCKSDB_INSTALL_ON_WINDOWS=ON
diff --git a/ports/so5extra/CONTROL b/ports/so5extra/CONTROL
index 882ac071260..22abf134cb7 100644
--- a/ports/so5extra/CONTROL
+++ b/ports/so5extra/CONTROL
@@ -1,4 +1,4 @@
Source: so5extra
-Version: 1.2.3-1
+Version: 1.3.1
Description: A set of additional tools for SObjectizer framework.
Build-Depends: sobjectizer
diff --git a/ports/so5extra/portfile.cmake b/ports/so5extra/portfile.cmake
index 26472935e8c..d660fbbca85 100644
--- a/ports/so5extra/portfile.cmake
+++ b/ports/so5extra/portfile.cmake
@@ -1,12 +1,12 @@
include(vcpkg_common_functions)
-set(VERSION 1.2.3)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/so_5_extra-${VERSION}/dev/so_5_extra)
+set(VERSION 1.3.1)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/so5extra-${VERSION}/dev/so_5_extra)
vcpkg_download_distfile(ARCHIVE
- URLS "https://sourceforge.net/projects/sobjectizer/files/sobjectizer/so_5_extra/so_5_extra-${VERSION}.zip/download"
- FILENAME "so_5_extra-${VERSION}.zip"
- SHA512 ed12cdae9d23d652cbedd12e37b7faa935ace4c951eb5cb3881306c1384973ac0a90bd59244471a671ec734f6319f0a3144f7a727342c94cec6330eb4195bae9
+ URLS "https://sourceforge.net/projects/sobjectizer/files/sobjectizer/so_5_extra/so5extra-${VERSION}.tar.bz2/download"
+ FILENAME "so5extra-${VERSION}.tar.bz2"
+ SHA512 58532426f85121f8f6c3b18a70950c048c8a695a7fca7be5d9c95434bdabdb2bfcf73d755737434a8d8aa5f3051785e13e7e293e057527c72047dad293a56ae7
)
vcpkg_extract_source_archive(${ARCHIVE})
diff --git a/ports/sobjectizer/CONTROL b/ports/sobjectizer/CONTROL
index 3e37f70e3e8..f5bfe31c0fe 100644
--- a/ports/sobjectizer/CONTROL
+++ b/ports/sobjectizer/CONTROL
@@ -1,4 +1,4 @@
Source: sobjectizer
-Version: 5.5.24.4-1
+Version: 5.6.0.2
Homepage: https://sourceforge.net/projects/sobjectizer
Description: SObjectizer is a C++ in-process message dispatching framework with implementation of Actor Model, Publish-Subscribe Model and CSP-like channels.
diff --git a/ports/sobjectizer/portfile.cmake b/ports/sobjectizer/portfile.cmake
index 4588ea4f202..8231f372eaa 100644
--- a/ports/sobjectizer/portfile.cmake
+++ b/ports/sobjectizer/portfile.cmake
@@ -1,12 +1,12 @@
include(vcpkg_common_functions)
-set(VERSION 5.5.24.4)
+set(VERSION 5.6.0.2)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/so-${VERSION}/dev)
vcpkg_download_distfile(ARCHIVE
- URLS "https://sourceforge.net/projects/sobjectizer/files/sobjectizer/SObjectizer%20Core%20v.5.5/so-${VERSION}.zip"
- FILENAME "so-${VERSION}.zip"
- SHA512 83f20091b9aa9ecec08b72a97c9190da7bfbe7cc69076dd70074f814208a2712ec722a8c9e7367ab8a416a5c0d488edebb6066371f7cec5dd566f51ef297b382
+ URLS "https://sourceforge.net/projects/sobjectizer/files/sobjectizer/SObjectizer%20Core%20v.5.6/so-${VERSION}.tar.bz2"
+ FILENAME "so-${VERSION}.tar.bz2"
+ SHA512 8f330c757fe401d715584da224925158d97ab5bba59e442af29ac64cb6feeae00434bd9bf11601f0796737f901a4f8ada1728b60d5706294d607d4d365c2d6da
)
vcpkg_extract_source_archive(${ARCHIVE})
diff --git a/ports/soundtouch/CONTROL b/ports/soundtouch/CONTROL
index 2e358f55ec9..f14e579b372 100644
--- a/ports/soundtouch/CONTROL
+++ b/ports/soundtouch/CONTROL
@@ -1,5 +1,5 @@
Source: soundtouch
-Version: 2.0.0-2
+Version: 2.0.0-3
Homepage: https://www.surina.net/soundtouch
Description: SoundTouch is an open-source audio processing library for changing the Tempo, Pitch and Playback Rates of audio streams or audio files.
-Build-Depends: atlmfc
+Build-Depends: atlmfc (windows)
diff --git a/ports/tesseract/CONTROL b/ports/tesseract/CONTROL
index df6e60fec77..3f04dcf9690 100644
--- a/ports/tesseract/CONTROL
+++ b/ports/tesseract/CONTROL
@@ -1,5 +1,12 @@
Source: tesseract
-Version: 4.0.0-3
+Version: 4.1.0
Homepage: https://github.com/tesseract-ocr/tesseract
Description: An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google.
-Build-Depends: leptonica, icu
+Build-Depends: leptonica
+
+Feature: training_tools
+Description: build training tools
+Build-Depends: icu
+
+Feature: cpu_independed
+Description: build on any cpu extension commands support
diff --git a/ports/tesseract/fix-tiff-linkage.patch b/ports/tesseract/fix-tiff-linkage.patch
new file mode 100644
index 00000000000..f4720c02270
--- /dev/null
+++ b/ports/tesseract/fix-tiff-linkage.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f154663..c07b827 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -431,7 +431,7 @@ endif()
+ add_executable (tesseract ${tesseractmain_src} ${tesseractmain_rsc})
+ target_link_libraries (tesseract libtesseract)
+ if (HAVE_TIFFIO_H)
+- target_link_libraries(tesseract tiff)
++ target_link_libraries(tesseract TIFF::TIFF)
+ endif()
+
+ if (OPENMP_BUILD AND UNIX)
diff --git a/ports/tesseract/leptonica.patch b/ports/tesseract/leptonica.patch
deleted file mode 100644
index 507721d9d6a..00000000000
--- a/ports/tesseract/leptonica.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/cmake/templates/TesseractConfig.cmake.in b/cmake/templates/TesseractConfig.cmake.in
-index 13838361..245ca2bc 100644
---- a/cmake/templates/TesseractConfig.cmake.in
-+++ b/cmake/templates/TesseractConfig.cmake.in
-@@ -21,6 +21,8 @@
-
- include(${CMAKE_CURRENT_LIST_DIR}/TesseractTargets.cmake)
-
-+find_package(Leptonica REQUIRED)
-+
- # ======================================================
- # Version variables:
- # ======================================================
diff --git a/ports/tesseract/portfile.cmake b/ports/tesseract/portfile.cmake
index 9650db44abc..dc03a69e712 100644
--- a/ports/tesseract/portfile.cmake
+++ b/ports/tesseract/portfile.cmake
@@ -5,24 +5,41 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO tesseract-ocr/tesseract
- REF 4.0.0
- SHA512 69e57d4ba1fc43d212fd0fff69a2b5d48a3b37cfee7054fdc083cbb7e04d92317609a32e457229661d70ce8d9b16c9d25e81bfc3861db660dd2c8f292202d447
- HEAD_REF master
+ REF 4.1.0
+ SHA512 d617f5c5b826640b2871dbe3d7973bcc5e66fafd837921a20e009d683806ed50f0f258aa455019d99fc54f5cb65c2fa0380e3a3c92b39ab0684b8799c730b09d
PATCHES
- use-vcpkg-icu.patch
- ws2-32.patch
- leptonica.patch
+ fix-tiff-linkage.patch
)
# The built-in cmake FindICU is better
file(REMOVE ${SOURCE_PATH}/cmake/FindICU.cmake)
+# Handle Static Library Output
+if(VCPKG_LIBRARY_LINKAGE EQUAL "static")
+ list(APPEND OPTIONS_LIST -DSTATIC=ON)
+endif()
+
+# Handle CONTROL
+if("training_tools" IN_LIST FEATURES)
+ list(APPEND OPTIONS_LIST -DBUILD_TRAINING_TOOLS=ON)
+else()
+ list(APPEND OPTIONS_LIST -DBUILD_TRAINING_TOOLS=OFF)
+endif()
+if("independed_architecture" IN_LIST FEATURES)
+ list(APPEND OPTIONS_LIST -DTARGET_ARCHITECTURE=none)
+else()
+ list(APPEND OPTIONS_LIST -DTARGET_ARCHITECTURE=auto)
+endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DSTATIC=ON
-DUSE_SYSTEM_ICU=True
+ #any value for vcpkg leptonica link cmake branch select
+ -DLeptonica_DIR=YES
+ ${OPTIONS_LIST}
)
vcpkg_install_cmake()
@@ -35,6 +52,26 @@ set(EXTENSION)
if(WIN32)
set(EXTENSION ".exe")
endif()
+
+# copy training tools
+set(TRAINING_TOOLS_DIR ${CURRENT_PACKAGES_DIR}/tools/tesseract/training)
+if("training_tools" IN_LIST FEATURES)
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/ambiguous_words${EXTENSION} DESTINATION ${TRAINING_TOOLS_DIR})
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/classifier_tester${EXTENSION} DESTINATION ${TRAINING_TOOLS_DIR})
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/combine_tessdata${EXTENSION} DESTINATION ${TRAINING_TOOLS_DIR})
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/cntraining${EXTENSION} DESTINATION ${TRAINING_TOOLS_DIR})
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/dawg2wordlist${EXTENSION} DESTINATION ${TRAINING_TOOLS_DIR})
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/mftraining${EXTENSION} DESTINATION ${TRAINING_TOOLS_DIR})
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/shapeclustering${EXTENSION} DESTINATION ${TRAINING_TOOLS_DIR})
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/wordlist2dawg${EXTENSION} DESTINATION ${TRAINING_TOOLS_DIR})
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/combine_lang_model${EXTENSION} DESTINATION ${TRAINING_TOOLS_DIR})
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/lstmeval${EXTENSION} DESTINATION ${TRAINING_TOOLS_DIR})
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/lstmtraining${EXTENSION} DESTINATION ${TRAINING_TOOLS_DIR})
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/set_unicharset_properties${EXTENSION} DESTINATION ${TRAINING_TOOLS_DIR})
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/unicharset_extractor${EXTENSION} DESTINATION ${TRAINING_TOOLS_DIR})
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/text2image${EXTENSION} DESTINATION ${TRAINING_TOOLS_DIR})
+endif()
+
file(COPY ${CURRENT_PACKAGES_DIR}/bin/tesseract${EXTENSION} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/tesseract)
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/tesseract)
diff --git a/ports/tesseract/use-vcpkg-icu.patch b/ports/tesseract/use-vcpkg-icu.patch
deleted file mode 100644
index 9c75726e1f2..00000000000
--- a/ports/tesseract/use-vcpkg-icu.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/training/CMakeLists.txt Thu Aug 17 02:46:15 2017
-+++ b/training/CMakeLists.txt Thu Aug 17 02:46:15 2017
-@@ -11,7 +11,7 @@
- endif()
-
- # experimental
--if (MSVC AND NOT CPPAN_BUILD)
-+if (MSVC AND NOT CPPAN_BUILD AND NOT USE_SYSTEM_ICU)
-
- include(CheckTypeSize)
- check_type_size("void *" SIZEOF_VOID_P)
diff --git a/ports/tesseract/ws2-32.patch b/ports/tesseract/ws2-32.patch
deleted file mode 100644
index 1d3be8189d7..00000000000
--- a/ports/tesseract/ws2-32.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/viewer/svutil.cpp b/viewer/svutil.cpp
-index 34a2286..bc2a7e1 100644
---- a/viewer/svutil.cpp
-+++ b/viewer/svutil.cpp
-@@ -23,6 +23,7 @@
- #include
- #ifdef _WIN32
- #include
-+#pragma comment(lib, "Ws2_32.lib")
- struct addrinfo {
- struct sockaddr* ai_addr;
- int ai_addrlen;
diff --git a/ports/wil/CONTROL b/ports/wil/CONTROL
index 27f4a6aeb45..f58d9f0146d 100644
--- a/ports/wil/CONTROL
+++ b/ports/wil/CONTROL
@@ -1,3 +1,3 @@
Source: wil
-Version: 2019-07-09
+Version: 2019-07-16
Description: The Windows Implementation Libraries (WIL) is a header-only C++ library created to make life easier for developers on Windows through readable type-safe C++ interfaces for common Windows coding patterns.
\ No newline at end of file
diff --git a/ports/wil/portfile.cmake b/ports/wil/portfile.cmake
index 3a9dfe6b657..d9e50a16c6f 100644
--- a/ports/wil/portfile.cmake
+++ b/ports/wil/portfile.cmake
@@ -4,8 +4,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Microsoft/wil
- REF 8bfcc43efc91ec3a4d8dfa8fd74f4025bded363f
- SHA512 301bf129e064cf5de4b0d19cf5e35e195c68ecb8800df0334729083929b097f7d5d425437f7214aec1eb29f694c5613eb26332bc5a72fbaff37d9057f61c7692
+ REF 7a6f0679be9cd625f54a21bb0ce06c39958b13a5
+ SHA512 155b8ed9f3622e7d802b41d6086f2b5984e52a3c21d068157d5d428a2efe24f1960186412c61719bf32a4c12c313930defa590d07d7b05a6376fe0ae68a85b2e
HEAD_REF master
)
diff --git a/scripts/get_triplet_environment.cmake b/scripts/get_triplet_environment.cmake
index ab5e8f8c346..45bbe0df4c2 100644
--- a/scripts/get_triplet_environment.cmake
+++ b/scripts/get_triplet_environment.cmake
@@ -1,6 +1,6 @@
include(${CMAKE_TRIPLET_FILE})
-if (DEFINED CMAKE_PORT_SETTINGS)
- include(${CMAKE_PORT_SETTINGS} OPTIONAL)
+if (DEFINED CMAKE_ENV_OVERRIDES_FILE)
+ include(${CMAKE_ENV_OVERRIDES_FILE} OPTIONAL)
endif()
# GUID used as a flag - "cut here line"
diff --git a/scripts/ports.cmake b/scripts/ports.cmake
index 0c33fdffcc9..86b2719d561 100644
--- a/scripts/ports.cmake
+++ b/scripts/ports.cmake
@@ -67,7 +67,8 @@ if(CMD MATCHES "^BUILD$")
file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR} ${CURRENT_PACKAGES_DIR})
include(${CMAKE_TRIPLET_FILE})
- include(${CMAKE_PORT_SETTINGS} OPTIONAL)
+ include(${ENV_OVERRIDES_FILE} OPTIONAL)
+
set(TRIPLET_SYSTEM_ARCH ${VCPKG_TARGET_ARCHITECTURE})
include(${CMAKE_CURRENT_LIST_DIR}/cmake/vcpkg_common_definitions.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/cmake/vcpkg_common_functions.cmake)
diff --git a/toolsrc/.clang-format b/toolsrc/.clang-format
index c1476567227..4d2c34fc41c 100644
--- a/toolsrc/.clang-format
+++ b/toolsrc/.clang-format
@@ -28,6 +28,7 @@ Cpp11BracedListStyle: true
IndentCaseLabels: true
KeepEmptyLinesAtTheStartOfBlocks: false
NamespaceIndentation: All
+ForEachMacros: [TEST_CASE, SECTION]
PenaltyReturnTypeOnItsOwnLine: 1000
SpaceAfterTemplateKeyword: false
SpaceBeforeCpp11BracedList: false
diff --git a/toolsrc/CMakeLists.txt b/toolsrc/CMakeLists.txt
index fccf2b7adde..ca23db41318 100644
--- a/toolsrc/CMakeLists.txt
+++ b/toolsrc/CMakeLists.txt
@@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.3)
project(vcpkg C CXX)
+enable_testing()
+
OPTION(DEFINE_DISABLE_METRICS "Option for disabling metrics" OFF)
OPTION(VCPKG_ALLOW_APPLE_CLANG "Option for allowing apple clang" OFF)
@@ -33,6 +35,7 @@ if(GCC OR CLANG)
endif()
file(GLOB_RECURSE VCPKGLIB_SOURCES src/vcpkg/*.cpp)
+file(GLOB_RECURSE VCPKGTEST_SOURCES src/vcpkg-tests/*.cpp)
if (DEFINE_DISABLE_METRICS)
set(DISABLE_METRICS_VALUE "1")
@@ -44,6 +47,15 @@ add_executable(vcpkg src/vcpkg.cpp ${VCPKGLIB_SOURCES})
target_compile_definitions(vcpkg PRIVATE -DDISABLE_METRICS=${DISABLE_METRICS_VALUE})
target_include_directories(vcpkg PRIVATE include)
+
+add_executable(vcpkg-test EXCLUDE_FROM_ALL ${VCPKGTEST_SOURCES} ${VCPKGLIB_SOURCES})
+target_compile_definitions(vcpkg-test PRIVATE -DDISABLE_METRICS=${DISABLE_METRICS_VALUE})
+target_include_directories(vcpkg-test PRIVATE include)
+
+foreach(TEST_NAME arguments chrono dependencies paragraph plan specifier supports)
+ add_test(${TEST_NAME} vcpkg-test [${TEST_NAME}])
+endforeach()
+
if(CLANG)
include(CheckCXXSourceCompiles)
check_cxx_source_compiles("#include
@@ -57,8 +69,10 @@ endif()
if(GCC OR (CLANG AND USES_LIBSTDCXX))
target_link_libraries(vcpkg PRIVATE stdc++fs)
+ target_link_libraries(vcpkg-test PRIVATE stdc++fs)
elseif(CLANG)
target_link_libraries(vcpkg PRIVATE c++fs)
+ target_link_libraries(vcpkg-test PRIVATE c++fs)
endif()
if(MSVC)
diff --git a/toolsrc/VERSION.txt b/toolsrc/VERSION.txt
index 6b2a31295ee..d7d695c69cb 100644
--- a/toolsrc/VERSION.txt
+++ b/toolsrc/VERSION.txt
@@ -1 +1 @@
-"2019.06.26"
\ No newline at end of file
+"2019.07.18"
diff --git a/toolsrc/include/tests.pch.h b/toolsrc/include/tests.pch.h
deleted file mode 100644
index 5c00fca4aa0..00000000000
--- a/toolsrc/include/tests.pch.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
diff --git a/toolsrc/include/tests.utils.h b/toolsrc/include/tests.utils.h
deleted file mode 100644
index 3e8514e6703..00000000000
--- a/toolsrc/include/tests.utils.h
+++ /dev/null
@@ -1,76 +0,0 @@
-#pragma once
-
-#include
-
-#include
-#include
-#include
-#include
-#include
-
-#include
-
-namespace Microsoft::VisualStudio::CppUnitTestFramework
-{
- template<>
- inline std::wstring ToString(const vcpkg::Dependencies::InstallPlanType& t)
- {
- switch (t)
- {
- case vcpkg::Dependencies::InstallPlanType::ALREADY_INSTALLED: return L"ALREADY_INSTALLED";
- case vcpkg::Dependencies::InstallPlanType::BUILD_AND_INSTALL: return L"BUILD_AND_INSTALL";
- case vcpkg::Dependencies::InstallPlanType::EXCLUDED: return L"EXCLUDED";
- case vcpkg::Dependencies::InstallPlanType::UNKNOWN: return L"UNKNOWN";
- default: return ToString(static_cast(t));
- }
- }
-
- template<>
- inline std::wstring ToString(const vcpkg::Dependencies::RequestType& t)
- {
- switch (t)
- {
- case vcpkg::Dependencies::RequestType::AUTO_SELECTED: return L"AUTO_SELECTED";
- case vcpkg::Dependencies::RequestType::USER_REQUESTED: return L"USER_REQUESTED";
- case vcpkg::Dependencies::RequestType::UNKNOWN: return L"UNKNOWN";
- default: return ToString(static_cast(t));
- }
- }
-
- template<>
- inline std::wstring ToString(const vcpkg::PackageSpecParseResult& t)
- {
- return ToString(static_cast(t));
- }
-
- template<>
- inline std::wstring ToString(const vcpkg::PackageSpec& t)
- {
- return ToString(t.to_string());
- }
-}
-
-std::unique_ptr make_status_pgh(const char* name,
- const char* depends = "",
- const char* default_features = "",
- const char* triplet = "x86-windows");
-std::unique_ptr make_status_feature_pgh(const char* name,
- const char* feature,
- const char* depends = "",
- const char* triplet = "x86-windows");
-
-template
-T&& unwrap(vcpkg::ExpectedT&& p)
-{
- Assert::IsTrue(p.has_value());
- return std::move(*p.get());
-}
-
-template
-T&& unwrap(vcpkg::Optional&& opt)
-{
- Assert::IsTrue(opt.has_value());
- return std::move(*opt.get());
-}
-
-vcpkg::PackageSpec unsafe_pspec(std::string name, vcpkg::Triplet t = vcpkg::Triplet::X86_WINDOWS);
diff --git a/toolsrc/include/vcpkg-tests/catch.h b/toolsrc/include/vcpkg-tests/catch.h
new file mode 100644
index 00000000000..303f664ffc3
--- /dev/null
+++ b/toolsrc/include/vcpkg-tests/catch.h
@@ -0,0 +1,16865 @@
+/*
+ * Catch v2.9.1
+ * Generated: 2019-06-17 11:59:24.363643
+ * ----------------------------------------------------------
+ * This file has been merged from multiple headers. Please don't edit it directly
+ * Copyright (c) 2019 Two Blue Cubes Ltd. All rights reserved.
+ *
+ * Distributed under the Boost Software License, Version 1.0. (See accompanying
+ * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ */
+#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+// start catch.hpp
+
+
+#define CATCH_VERSION_MAJOR 2
+#define CATCH_VERSION_MINOR 9
+#define CATCH_VERSION_PATCH 1
+
+#ifdef __clang__
+# pragma clang system_header
+#elif defined __GNUC__
+# pragma GCC system_header
+#endif
+
+// start catch_suppress_warnings.h
+
+#ifdef __clang__
+# ifdef __ICC // icpc defines the __clang__ macro
+# pragma warning(push)
+# pragma warning(disable: 161 1682)
+# else // __ICC
+# pragma clang diagnostic push
+# pragma clang diagnostic ignored "-Wpadded"
+# pragma clang diagnostic ignored "-Wswitch-enum"
+# pragma clang diagnostic ignored "-Wcovered-switch-default"
+# endif
+#elif defined __GNUC__
+ // Because REQUIREs trigger GCC's -Wparentheses, and because still
+ // supported version of g++ have only buggy support for _Pragmas,
+ // Wparentheses have to be suppressed globally.
+# pragma GCC diagnostic ignored "-Wparentheses" // See #674 for details
+
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wunused-variable"
+# pragma GCC diagnostic ignored "-Wpadded"
+#endif
+// end catch_suppress_warnings.h
+#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER)
+# define CATCH_IMPL
+# define CATCH_CONFIG_ALL_PARTS
+#endif
+
+// In the impl file, we want to have access to all parts of the headers
+// Can also be used to sanely support PCHs
+#if defined(CATCH_CONFIG_ALL_PARTS)
+# define CATCH_CONFIG_EXTERNAL_INTERFACES
+# if defined(CATCH_CONFIG_DISABLE_MATCHERS)
+# undef CATCH_CONFIG_DISABLE_MATCHERS
+# endif
+# if !defined(CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER)
+# define CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER
+# endif
+#endif
+
+#if !defined(CATCH_CONFIG_IMPL_ONLY)
+// start catch_platform.h
+
+#ifdef __APPLE__
+# include
+# if TARGET_OS_OSX == 1
+# define CATCH_PLATFORM_MAC
+# elif TARGET_OS_IPHONE == 1
+# define CATCH_PLATFORM_IPHONE
+# endif
+
+#elif defined(linux) || defined(__linux) || defined(__linux__)
+# define CATCH_PLATFORM_LINUX
+
+#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) || defined(__MINGW32__)
+# define CATCH_PLATFORM_WINDOWS
+#endif
+
+// end catch_platform.h
+
+#ifdef CATCH_IMPL
+# ifndef CLARA_CONFIG_MAIN
+# define CLARA_CONFIG_MAIN_NOT_DEFINED
+# define CLARA_CONFIG_MAIN
+# endif
+#endif
+
+// start catch_user_interfaces.h
+
+namespace Catch {
+ unsigned int rngSeed();
+}
+
+// end catch_user_interfaces.h
+// start catch_tag_alias_autoregistrar.h
+
+// start catch_common.h
+
+// start catch_compiler_capabilities.h
+
+// Detect a number of compiler features - by compiler
+// The following features are defined:
+//
+// CATCH_CONFIG_COUNTER : is the __COUNTER__ macro supported?
+// CATCH_CONFIG_WINDOWS_SEH : is Windows SEH supported?
+// CATCH_CONFIG_POSIX_SIGNALS : are POSIX signals supported?
+// CATCH_CONFIG_DISABLE_EXCEPTIONS : Are exceptions enabled?
+// ****************
+// Note to maintainers: if new toggles are added please document them
+// in configuration.md, too
+// ****************
+
+// In general each macro has a _NO_ form
+// (e.g. CATCH_CONFIG_NO_POSIX_SIGNALS) which disables the feature.
+// Many features, at point of detection, define an _INTERNAL_ macro, so they
+// can be combined, en-mass, with the _NO_ forms later.
+
+#ifdef __cplusplus
+
+# if (__cplusplus >= 201402L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201402L)
+# define CATCH_CPP14_OR_GREATER
+# endif
+
+# if (__cplusplus >= 201703L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)
+# define CATCH_CPP17_OR_GREATER
+# endif
+
+#endif
+
+#if defined(CATCH_CPP17_OR_GREATER)
+# define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS
+#endif
+
+#ifdef __clang__
+
+# define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
+ _Pragma( "clang diagnostic push" ) \
+ _Pragma( "clang diagnostic ignored \"-Wexit-time-destructors\"" ) \
+ _Pragma( "clang diagnostic ignored \"-Wglobal-constructors\"")
+# define CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS \
+ _Pragma( "clang diagnostic pop" )
+
+# define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \
+ _Pragma( "clang diagnostic push" ) \
+ _Pragma( "clang diagnostic ignored \"-Wparentheses\"" )
+# define CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS \
+ _Pragma( "clang diagnostic pop" )
+
+# define CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS \
+ _Pragma( "clang diagnostic push" ) \
+ _Pragma( "clang diagnostic ignored \"-Wunused-variable\"" )
+# define CATCH_INTERNAL_UNSUPPRESS_UNUSED_WARNINGS \
+ _Pragma( "clang diagnostic pop" )
+
+# define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \
+ _Pragma( "clang diagnostic push" ) \
+ _Pragma( "clang diagnostic ignored \"-Wgnu-zero-variadic-macro-arguments\"" )
+# define CATCH_INTERNAL_UNSUPPRESS_ZERO_VARIADIC_WARNINGS \
+ _Pragma( "clang diagnostic pop" )
+
+#endif // __clang__
+
+////////////////////////////////////////////////////////////////////////////////
+// Assume that non-Windows platforms support posix signals by default
+#if !defined(CATCH_PLATFORM_WINDOWS)
+ #define CATCH_INTERNAL_CONFIG_POSIX_SIGNALS
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// We know some environments not to support full POSIX signals
+#if defined(__CYGWIN__) || defined(__QNX__) || defined(__EMSCRIPTEN__) || defined(__DJGPP__)
+ #define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS
+#endif
+
+#ifdef __OS400__
+# define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS
+# define CATCH_CONFIG_COLOUR_NONE
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// Android somehow still does not support std::to_string
+#if defined(__ANDROID__)
+# define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// Not all Windows environments support SEH properly
+#if defined(__MINGW32__)
+# define CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// PS4
+#if defined(__ORBIS__)
+# define CATCH_INTERNAL_CONFIG_NO_NEW_CAPTURE
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// Cygwin
+#ifdef __CYGWIN__
+
+// Required for some versions of Cygwin to declare gettimeofday
+// see: http://stackoverflow.com/questions/36901803/gettimeofday-not-declared-in-this-scope-cygwin
+# define _BSD_SOURCE
+// some versions of cygwin (most) do not support std::to_string. Use the libstd check.
+// https://gcc.gnu.org/onlinedocs/gcc-4.8.2/libstdc++/api/a01053_source.html line 2812-2813
+# if !((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \
+ && !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF))
+
+# define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING
+
+# endif
+#endif // __CYGWIN__
+
+////////////////////////////////////////////////////////////////////////////////
+// Visual C++
+#ifdef _MSC_VER
+
+# if _MSC_VER >= 1900 // Visual Studio 2015 or newer
+# define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS
+# endif
+
+// Universal Windows platform does not support SEH
+// Or console colours (or console at all...)
+# if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP)
+# define CATCH_CONFIG_COLOUR_NONE
+# else
+# define CATCH_INTERNAL_CONFIG_WINDOWS_SEH
+# endif
+
+// MSVC traditional preprocessor needs some workaround for __VA_ARGS__
+// _MSVC_TRADITIONAL == 0 means new conformant preprocessor
+// _MSVC_TRADITIONAL == 1 means old traditional non-conformant preprocessor
+# if !defined(_MSVC_TRADITIONAL) || (defined(_MSVC_TRADITIONAL) && _MSVC_TRADITIONAL)
+# define CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+# endif
+#endif // _MSC_VER
+
+#if defined(_REENTRANT) || defined(_MSC_VER)
+// Enable async processing, as -pthread is specified or no additional linking is required
+# define CATCH_INTERNAL_CONFIG_USE_ASYNC
+#endif // _MSC_VER
+
+////////////////////////////////////////////////////////////////////////////////
+// Check if we are compiled with -fno-exceptions or equivalent
+#if defined(__EXCEPTIONS) || defined(__cpp_exceptions) || defined(_CPPUNWIND)
+# define CATCH_INTERNAL_CONFIG_EXCEPTIONS_ENABLED
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// DJGPP
+#ifdef __DJGPP__
+# define CATCH_INTERNAL_CONFIG_NO_WCHAR
+#endif // __DJGPP__
+
+////////////////////////////////////////////////////////////////////////////////
+// Embarcadero C++Build
+#if defined(__BORLANDC__)
+ #define CATCH_INTERNAL_CONFIG_POLYFILL_ISNAN
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+
+// Use of __COUNTER__ is suppressed during code analysis in
+// CLion/AppCode 2017.2.x and former, because __COUNTER__ is not properly
+// handled by it.
+// Otherwise all supported compilers support COUNTER macro,
+// but user still might want to turn it off
+#if ( !defined(__JETBRAINS_IDE__) || __JETBRAINS_IDE__ >= 20170300L )
+ #define CATCH_INTERNAL_CONFIG_COUNTER
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// Check if string_view is available and usable
+// The check is split apart to work around v140 (VS2015) preprocessor issue...
+#if defined(__has_include)
+#if __has_include() && defined(CATCH_CPP17_OR_GREATER)
+# define CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW
+#endif
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// Check if optional is available and usable
+#if defined(__has_include)
+# if __has_include() && defined(CATCH_CPP17_OR_GREATER)
+# define CATCH_INTERNAL_CONFIG_CPP17_OPTIONAL
+# endif // __has_include() && defined(CATCH_CPP17_OR_GREATER)
+#endif // __has_include
+
+////////////////////////////////////////////////////////////////////////////////
+// Check if variant is available and usable
+#if defined(__has_include)
+# if __has_include() && defined(CATCH_CPP17_OR_GREATER)
+# if defined(__clang__) && (__clang_major__ < 8)
+ // work around clang bug with libstdc++ https://bugs.llvm.org/show_bug.cgi?id=31852
+ // fix should be in clang 8, workaround in libstdc++ 8.2
+# include
+# if defined(__GLIBCXX__) && defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 9)
+# define CATCH_CONFIG_NO_CPP17_VARIANT
+# else
+# define CATCH_INTERNAL_CONFIG_CPP17_VARIANT
+# endif // defined(__GLIBCXX__) && defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 9)
+# else
+# define CATCH_INTERNAL_CONFIG_CPP17_VARIANT
+# endif // defined(__clang__) && (__clang_major__ < 8)
+# endif // __has_include() && defined(CATCH_CPP17_OR_GREATER)
+#endif // __has_include
+
+#if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER)
+# define CATCH_CONFIG_COUNTER
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_WINDOWS_SEH) && !defined(CATCH_CONFIG_NO_WINDOWS_SEH) && !defined(CATCH_CONFIG_WINDOWS_SEH) && !defined(CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH)
+# define CATCH_CONFIG_WINDOWS_SEH
+#endif
+// This is set by default, because we assume that unix compilers are posix-signal-compatible by default.
+#if defined(CATCH_INTERNAL_CONFIG_POSIX_SIGNALS) && !defined(CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_POSIX_SIGNALS)
+# define CATCH_CONFIG_POSIX_SIGNALS
+#endif
+// This is set by default, because we assume that compilers with no wchar_t support are just rare exceptions.
+#if !defined(CATCH_INTERNAL_CONFIG_NO_WCHAR) && !defined(CATCH_CONFIG_NO_WCHAR) && !defined(CATCH_CONFIG_WCHAR)
+# define CATCH_CONFIG_WCHAR
+#endif
+
+#if !defined(CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_CPP11_TO_STRING)
+# define CATCH_CONFIG_CPP11_TO_STRING
+#endif
+
+#if defined(CATCH_INTERNAL_CONFIG_CPP17_OPTIONAL) && !defined(CATCH_CONFIG_NO_CPP17_OPTIONAL) && !defined(CATCH_CONFIG_CPP17_OPTIONAL)
+# define CATCH_CONFIG_CPP17_OPTIONAL
+#endif
+
+#if defined(CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) && !defined(CATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS) && !defined(CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS)
+# define CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS
+#endif
+
+#if defined(CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_NO_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_CPP17_STRING_VIEW)
+# define CATCH_CONFIG_CPP17_STRING_VIEW
+#endif
+
+#if defined(CATCH_INTERNAL_CONFIG_CPP17_VARIANT) && !defined(CATCH_CONFIG_NO_CPP17_VARIANT) && !defined(CATCH_CONFIG_CPP17_VARIANT)
+# define CATCH_CONFIG_CPP17_VARIANT
+#endif
+
+#if defined(CATCH_CONFIG_EXPERIMENTAL_REDIRECT)
+# define CATCH_INTERNAL_CONFIG_NEW_CAPTURE
+#endif
+
+#if defined(CATCH_INTERNAL_CONFIG_NEW_CAPTURE) && !defined(CATCH_INTERNAL_CONFIG_NO_NEW_CAPTURE) && !defined(CATCH_CONFIG_NO_NEW_CAPTURE) && !defined(CATCH_CONFIG_NEW_CAPTURE)
+# define CATCH_CONFIG_NEW_CAPTURE
+#endif
+
+#if !defined(CATCH_INTERNAL_CONFIG_EXCEPTIONS_ENABLED) && !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS)
+# define CATCH_CONFIG_DISABLE_EXCEPTIONS
+#endif
+
+#if defined(CATCH_INTERNAL_CONFIG_POLYFILL_ISNAN) && !defined(CATCH_CONFIG_NO_POLYFILL_ISNAN) && !defined(CATCH_CONFIG_POLYFILL_ISNAN)
+# define CATCH_CONFIG_POLYFILL_ISNAN
+#endif
+
+#if defined(CATCH_INTERNAL_CONFIG_USE_ASYNC) && !defined(CATCH_CONFIG_NO_USE_ASYNC) && !defined(CATCH_CONFIG_USE_ASYNC)
+# define CATCH_CONFIG_USE_ASYNC
+#endif
+
+#if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS)
+# define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS
+# define CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS
+#endif
+#if !defined(CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS)
+# define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS
+# define CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS
+#endif
+#if !defined(CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS)
+# define CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS
+# define CATCH_INTERNAL_UNSUPPRESS_UNUSED_WARNINGS
+#endif
+#if !defined(CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS)
+# define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS
+# define CATCH_INTERNAL_UNSUPPRESS_ZERO_VARIADIC_WARNINGS
+#endif
+
+#if defined(CATCH_CONFIG_DISABLE_EXCEPTIONS)
+#define CATCH_TRY if ((true))
+#define CATCH_CATCH_ALL if ((false))
+#define CATCH_CATCH_ANON(type) if ((false))
+#else
+#define CATCH_TRY try
+#define CATCH_CATCH_ALL catch (...)
+#define CATCH_CATCH_ANON(type) catch (type)
+#endif
+
+#if defined(CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR) && !defined(CATCH_CONFIG_NO_TRADITIONAL_MSVC_PREPROCESSOR) && !defined(CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR)
+#define CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+#endif
+
+// end catch_compiler_capabilities.h
+#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line
+#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line )
+#ifdef CATCH_CONFIG_COUNTER
+# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ )
+#else
+# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ )
+#endif
+
+#include
+#include
+#include
+
+// We need a dummy global operator<< so we can bring it into Catch namespace later
+struct Catch_global_namespace_dummy {};
+std::ostream& operator<<(std::ostream&, Catch_global_namespace_dummy);
+
+namespace Catch {
+
+ struct CaseSensitive { enum Choice {
+ Yes,
+ No
+ }; };
+
+ class NonCopyable {
+ NonCopyable( NonCopyable const& ) = delete;
+ NonCopyable( NonCopyable && ) = delete;
+ NonCopyable& operator = ( NonCopyable const& ) = delete;
+ NonCopyable& operator = ( NonCopyable && ) = delete;
+
+ protected:
+ NonCopyable();
+ virtual ~NonCopyable();
+ };
+
+ struct SourceLineInfo {
+
+ SourceLineInfo() = delete;
+ SourceLineInfo( char const* _file, std::size_t _line ) noexcept
+ : file( _file ),
+ line( _line )
+ {}
+
+ SourceLineInfo( SourceLineInfo const& other ) = default;
+ SourceLineInfo& operator = ( SourceLineInfo const& ) = default;
+ SourceLineInfo( SourceLineInfo&& ) noexcept = default;
+ SourceLineInfo& operator = ( SourceLineInfo&& ) noexcept = default;
+
+ bool empty() const noexcept;
+ bool operator == ( SourceLineInfo const& other ) const noexcept;
+ bool operator < ( SourceLineInfo const& other ) const noexcept;
+
+ char const* file;
+ std::size_t line;
+ };
+
+ std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info );
+
+ // Bring in operator<< from global namespace into Catch namespace
+ // This is necessary because the overload of operator<< above makes
+ // lookup stop at namespace Catch
+ using ::operator<<;
+
+ // Use this in variadic streaming macros to allow
+ // >> +StreamEndStop
+ // as well as
+ // >> stuff +StreamEndStop
+ struct StreamEndStop {
+ std::string operator+() const;
+ };
+ template
+ T const& operator + ( T const& value, StreamEndStop ) {
+ return value;
+ }
+}
+
+#define CATCH_INTERNAL_LINEINFO \
+ ::Catch::SourceLineInfo( __FILE__, static_cast( __LINE__ ) )
+
+// end catch_common.h
+namespace Catch {
+
+ struct RegistrarForTagAliases {
+ RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo );
+ };
+
+} // end namespace Catch
+
+#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) \
+ CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
+ namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); } \
+ CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS
+
+// end catch_tag_alias_autoregistrar.h
+// start catch_test_registry.h
+
+// start catch_interfaces_testcase.h
+
+#include
+
+namespace Catch {
+
+ class TestSpec;
+
+ struct ITestInvoker {
+ virtual void invoke () const = 0;
+ virtual ~ITestInvoker();
+ };
+
+ class TestCase;
+ struct IConfig;
+
+ struct ITestCaseRegistry {
+ virtual ~ITestCaseRegistry();
+ virtual std::vector const& getAllTests() const = 0;
+ virtual std::vector const& getAllTestsSorted( IConfig const& config ) const = 0;
+ };
+
+ bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config );
+ std::vector filterTests( std::vector const& testCases, TestSpec const& testSpec, IConfig const& config );
+ std::vector const& getAllTestCasesSorted( IConfig const& config );
+
+}
+
+// end catch_interfaces_testcase.h
+// start catch_stringref.h
+
+#include
+#include
+#include
+
+namespace Catch {
+
+ /// A non-owning string class (similar to the forthcoming std::string_view)
+ /// Note that, because a StringRef may be a substring of another string,
+ /// it may not be null terminated. c_str() must return a null terminated
+ /// string, however, and so the StringRef will internally take ownership
+ /// (taking a copy), if necessary. In theory this ownership is not externally
+ /// visible - but it does mean (substring) StringRefs should not be shared between
+ /// threads.
+ class StringRef {
+ public:
+ using size_type = std::size_t;
+
+ private:
+ friend struct StringRefTestAccess;
+
+ char const* m_start;
+ size_type m_size;
+
+ char* m_data = nullptr;
+
+ void takeOwnership();
+
+ static constexpr char const* const s_empty = "";
+
+ public: // construction/ assignment
+ StringRef() noexcept
+ : StringRef( s_empty, 0 )
+ {}
+
+ StringRef( StringRef const& other ) noexcept
+ : m_start( other.m_start ),
+ m_size( other.m_size )
+ {}
+
+ StringRef( StringRef&& other ) noexcept
+ : m_start( other.m_start ),
+ m_size( other.m_size ),
+ m_data( other.m_data )
+ {
+ other.m_data = nullptr;
+ }
+
+ StringRef( char const* rawChars ) noexcept;
+
+ StringRef( char const* rawChars, size_type size ) noexcept
+ : m_start( rawChars ),
+ m_size( size )
+ {}
+
+ StringRef( std::string const& stdString ) noexcept
+ : m_start( stdString.c_str() ),
+ m_size( stdString.size() )
+ {}
+
+ ~StringRef() noexcept {
+ delete[] m_data;
+ }
+
+ auto operator = ( StringRef const &other ) noexcept -> StringRef& {
+ delete[] m_data;
+ m_data = nullptr;
+ m_start = other.m_start;
+ m_size = other.m_size;
+ return *this;
+ }
+
+ operator std::string() const;
+
+ void swap( StringRef& other ) noexcept;
+
+ public: // operators
+ auto operator == ( StringRef const& other ) const noexcept -> bool;
+ auto operator != ( StringRef const& other ) const noexcept -> bool;
+
+ auto operator[] ( size_type index ) const noexcept -> char;
+
+ public: // named queries
+ auto empty() const noexcept -> bool {
+ return m_size == 0;
+ }
+ auto size() const noexcept -> size_type {
+ return m_size;
+ }
+
+ auto numberOfCharacters() const noexcept -> size_type;
+ auto c_str() const -> char const*;
+
+ public: // substrings and searches
+ auto substr( size_type start, size_type size ) const noexcept -> StringRef;
+
+ // Returns the current start pointer.
+ // Note that the pointer can change when if the StringRef is a substring
+ auto currentData() const noexcept -> char const*;
+
+ private: // ownership queries - may not be consistent between calls
+ auto isOwned() const noexcept -> bool;
+ auto isSubstring() const noexcept -> bool;
+ };
+
+ auto operator + ( StringRef const& lhs, StringRef const& rhs ) -> std::string;
+ auto operator + ( StringRef const& lhs, char const* rhs ) -> std::string;
+ auto operator + ( char const* lhs, StringRef const& rhs ) -> std::string;
+
+ auto operator += ( std::string& lhs, StringRef const& sr ) -> std::string&;
+ auto operator << ( std::ostream& os, StringRef const& sr ) -> std::ostream&;
+
+ inline auto operator "" _sr( char const* rawChars, std::size_t size ) noexcept -> StringRef {
+ return StringRef( rawChars, size );
+ }
+
+} // namespace Catch
+
+inline auto operator "" _catch_sr( char const* rawChars, std::size_t size ) noexcept -> Catch::StringRef {
+ return Catch::StringRef( rawChars, size );
+}
+
+// end catch_stringref.h
+// start catch_type_traits.hpp
+
+
+#include
+
+namespace Catch{
+
+#ifdef CATCH_CPP17_OR_GREATER
+ template
+ inline constexpr auto is_unique = std::true_type{};
+
+ template
+ inline constexpr auto is_unique = std::bool_constant<
+ (!std::is_same_v && ...) && is_unique
+ >{};
+#else
+
+template
+struct is_unique : std::true_type{};
+
+template
+struct is_unique : std::integral_constant
+::value
+ && is_unique::value
+ && is_unique::value
+>{};
+
+#endif
+}
+
+// end catch_type_traits.hpp
+// start catch_preprocessor.hpp
+
+
+#define CATCH_RECURSION_LEVEL0(...) __VA_ARGS__
+#define CATCH_RECURSION_LEVEL1(...) CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(__VA_ARGS__)))
+#define CATCH_RECURSION_LEVEL2(...) CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(__VA_ARGS__)))
+#define CATCH_RECURSION_LEVEL3(...) CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(__VA_ARGS__)))
+#define CATCH_RECURSION_LEVEL4(...) CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(__VA_ARGS__)))
+#define CATCH_RECURSION_LEVEL5(...) CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(__VA_ARGS__)))
+
+#ifdef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+#define INTERNAL_CATCH_EXPAND_VARGS(...) __VA_ARGS__
+// MSVC needs more evaluations
+#define CATCH_RECURSION_LEVEL6(...) CATCH_RECURSION_LEVEL5(CATCH_RECURSION_LEVEL5(CATCH_RECURSION_LEVEL5(__VA_ARGS__)))
+#define CATCH_RECURSE(...) CATCH_RECURSION_LEVEL6(CATCH_RECURSION_LEVEL6(__VA_ARGS__))
+#else
+#define CATCH_RECURSE(...) CATCH_RECURSION_LEVEL5(__VA_ARGS__)
+#endif
+
+#define CATCH_REC_END(...)
+#define CATCH_REC_OUT
+
+#define CATCH_EMPTY()
+#define CATCH_DEFER(id) id CATCH_EMPTY()
+
+#define CATCH_REC_GET_END2() 0, CATCH_REC_END
+#define CATCH_REC_GET_END1(...) CATCH_REC_GET_END2
+#define CATCH_REC_GET_END(...) CATCH_REC_GET_END1
+#define CATCH_REC_NEXT0(test, next, ...) next CATCH_REC_OUT
+#define CATCH_REC_NEXT1(test, next) CATCH_DEFER ( CATCH_REC_NEXT0 ) ( test, next, 0)
+#define CATCH_REC_NEXT(test, next) CATCH_REC_NEXT1(CATCH_REC_GET_END test, next)
+
+#define CATCH_REC_LIST0(f, x, peek, ...) , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ )
+#define CATCH_REC_LIST1(f, x, peek, ...) , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0) ) ( f, peek, __VA_ARGS__ )
+#define CATCH_REC_LIST2(f, x, peek, ...) f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ )
+
+#define CATCH_REC_LIST0_UD(f, userdata, x, peek, ...) , f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1_UD) ) ( f, userdata, peek, __VA_ARGS__ )
+#define CATCH_REC_LIST1_UD(f, userdata, x, peek, ...) , f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0_UD) ) ( f, userdata, peek, __VA_ARGS__ )
+#define CATCH_REC_LIST2_UD(f, userdata, x, peek, ...) f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1_UD) ) ( f, userdata, peek, __VA_ARGS__ )
+
+// Applies the function macro `f` to each of the remaining parameters, inserts commas between the results,
+// and passes userdata as the first parameter to each invocation,
+// e.g. CATCH_REC_LIST_UD(f, x, a, b, c) evaluates to f(x, a), f(x, b), f(x, c)
+#define CATCH_REC_LIST_UD(f, userdata, ...) CATCH_RECURSE(CATCH_REC_LIST2_UD(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0))
+
+#define CATCH_REC_LIST(f, ...) CATCH_RECURSE(CATCH_REC_LIST2(f, __VA_ARGS__, ()()(), ()()(), ()()(), 0))
+
+#define INTERNAL_CATCH_EXPAND1(param) INTERNAL_CATCH_EXPAND2(param)
+#define INTERNAL_CATCH_EXPAND2(...) INTERNAL_CATCH_NO## __VA_ARGS__
+#define INTERNAL_CATCH_DEF(...) INTERNAL_CATCH_DEF __VA_ARGS__
+#define INTERNAL_CATCH_NOINTERNAL_CATCH_DEF
+#define INTERNAL_CATCH_STRINGIZE(...) INTERNAL_CATCH_STRINGIZE2(__VA_ARGS__)
+#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+#define INTERNAL_CATCH_STRINGIZE2(...) #__VA_ARGS__
+#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param) INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param))
+#else
+// MSVC is adding extra space and needs another indirection to expand INTERNAL_CATCH_NOINTERNAL_CATCH_DEF
+#define INTERNAL_CATCH_STRINGIZE2(...) INTERNAL_CATCH_STRINGIZE3(__VA_ARGS__)
+#define INTERNAL_CATCH_STRINGIZE3(...) #__VA_ARGS__
+#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param) (INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param)) + 1)
+#endif
+
+#define INTERNAL_CATCH_MAKE_NAMESPACE2(...) ns_##__VA_ARGS__
+#define INTERNAL_CATCH_MAKE_NAMESPACE(name) INTERNAL_CATCH_MAKE_NAMESPACE2(name)
+
+#define INTERNAL_CATCH_REMOVE_PARENS(...) INTERNAL_CATCH_EXPAND1(INTERNAL_CATCH_DEF __VA_ARGS__)
+
+#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+#define INTERNAL_CATCH_MAKE_TYPE_LIST2(...) decltype(get_wrapper())
+#define INTERNAL_CATCH_MAKE_TYPE_LIST(...) INTERNAL_CATCH_MAKE_TYPE_LIST2(INTERNAL_CATCH_REMOVE_PARENS(__VA_ARGS__))
+#else
+#define INTERNAL_CATCH_MAKE_TYPE_LIST2(...) INTERNAL_CATCH_EXPAND_VARGS(decltype(get_wrapper()))
+#define INTERNAL_CATCH_MAKE_TYPE_LIST(...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_MAKE_TYPE_LIST2(INTERNAL_CATCH_REMOVE_PARENS(__VA_ARGS__)))
+#endif
+
+#define INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(...)\
+ CATCH_REC_LIST(INTERNAL_CATCH_MAKE_TYPE_LIST,__VA_ARGS__)
+
+#define INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_0) INTERNAL_CATCH_REMOVE_PARENS(_0)
+#define INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_0, _1) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_1)
+#define INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_0, _1, _2) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_1, _2)
+#define INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_0, _1, _2, _3) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_1, _2, _3)
+#define INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_0, _1, _2, _3, _4) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_1, _2, _3, _4)
+#define INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_0, _1, _2, _3, _4, _5) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_1, _2, _3, _4, _5)
+#define INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_0, _1, _2, _3, _4, _5, _6) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_1, _2, _4, _5, _6)
+#define INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_0, _1, _2, _3, _4, _5, _6, _7) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_1, _2, _3, _4, _5, _6, _7)
+#define INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_1, _2, _3, _4, _5, _6, _7, _8)
+#define INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9)
+#define INTERNAL_CATCH_REMOVE_PARENS_11_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10)
+
+#define INTERNAL_CATCH_VA_NARGS_IMPL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, N, ...) N
+
+#define INTERNAL_CATCH_TYPE_GEN\
+ template struct TypeList {};\
+ template\
+ constexpr auto get_wrapper() noexcept -> TypeList { return {}; }\
+ \
+ template class L1, typename...E1, template class L2, typename...E2> \
+ constexpr auto append(L1, L2) noexcept -> L1 { return {}; }\
+ template< template class L1, typename...E1, template class L2, typename...E2, typename...Rest>\
+ constexpr auto append(L1, L2, Rest...) noexcept -> decltype(append(L1{}, Rest{}...)) { return {}; }\
+ template< template class L1, typename...E1, typename...Rest>\
+ constexpr auto append(L1, TypeList, Rest...) noexcept -> L1 { return {}; }\
+ \
+ template< template class Container, template class List, typename...elems>\
+ constexpr auto rewrap(List) noexcept -> TypeList> { return {}; }\
+ template< template class Container, template class List, class...Elems, typename...Elements>\
+ constexpr auto rewrap(List,Elements...) noexcept -> decltype(append(TypeList>{}, rewrap(Elements{}...))) { return {}; }\
+ \
+ template class Final, template< typename...> class...Containers, typename...Types>\
+ constexpr auto create(TypeList) noexcept -> decltype(append(Final<>{}, rewrap(Types{}...)...)) { return {}; }\
+ template class Final, template class List, typename...Ts>\
+ constexpr auto convert(List) noexcept -> decltype(append(Final<>{},TypeList{}...)) { return {}; }
+
+#define INTERNAL_CATCH_NTTP_1(signature, ...)\
+ template struct Nttp{};\
+ template\
+ constexpr auto get_wrapper() noexcept -> Nttp<__VA_ARGS__> { return {}; } \
+ \
+ template< template class Container, template class List, INTERNAL_CATCH_REMOVE_PARENS(signature)>\
+ constexpr auto rewrap(List<__VA_ARGS__>) noexcept -> TypeList> { return {}; }\
+ template< template class Container, template class List, INTERNAL_CATCH_REMOVE_PARENS(signature), typename...Elements>\
+ constexpr auto rewrap(List<__VA_ARGS__>,Elements...elems) noexcept -> decltype(append(TypeList>{}, rewrap(elems...))) { return {}; }\
+ template class Final, template class...Containers, typename...Types>\
+ constexpr auto create(TypeList) noexcept -> decltype(append(Final<>{}, rewrap(Types{}...)...)) { return {}; }
+
+#define INTERNAL_CATCH_DECLARE_SIG_TEST0(TestName)
+#define INTERNAL_CATCH_DECLARE_SIG_TEST1(TestName, signature)\
+ template\
+ static void TestName()
+#define INTERNAL_CATCH_DECLARE_SIG_TEST_X(TestName, signature, ...)\
+ template\
+ static void TestName()
+
+#define INTERNAL_CATCH_DEFINE_SIG_TEST0(TestName)
+#define INTERNAL_CATCH_DEFINE_SIG_TEST1(TestName, signature)\
+ template\
+ static void TestName()
+#define INTERNAL_CATCH_DEFINE_SIG_TEST_X(TestName, signature,...)\
+ template\
+ static void TestName()
+
+#define INTERNAL_CATCH_NTTP_REGISTER0(TestFunc, signature)\
+ template\
+ void reg_test(TypeList, Catch::NameAndTags nameAndTags)\
+ {\
+ Catch::AutoReg( Catch::makeTestInvoker(&TestFunc), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), nameAndTags);\
+ }
+
+#define INTERNAL_CATCH_NTTP_REGISTER(TestFunc, signature, ...)\
+ template\
+ void reg_test(Nttp<__VA_ARGS__>, Catch::NameAndTags nameAndTags)\
+ {\
+ Catch::AutoReg( Catch::makeTestInvoker(&TestFunc<__VA_ARGS__>), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), nameAndTags);\
+ }
+
+#define INTERNAL_CATCH_NTTP_REGISTER_METHOD0(TestName, signature, ...)\
+ template\
+ void reg_test(TypeList, Catch::StringRef className, Catch::NameAndTags nameAndTags)\
+ {\
+ Catch::AutoReg( Catch::makeTestInvoker(&TestName::test), CATCH_INTERNAL_LINEINFO, className, nameAndTags);\
+ }
+
+#define INTERNAL_CATCH_NTTP_REGISTER_METHOD(TestName, signature, ...)\
+ template\
+ void reg_test(Nttp<__VA_ARGS__>, Catch::StringRef className, Catch::NameAndTags nameAndTags)\
+ {\
+ Catch::AutoReg( Catch::makeTestInvoker(&TestName<__VA_ARGS__>::test), CATCH_INTERNAL_LINEINFO, className, nameAndTags);\
+ }
+
+#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD0(TestName, ClassName)
+#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1(TestName, ClassName, signature)\
+ template \
+ struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName) { \
+ void test();\
+ }
+
+#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X(TestName, ClassName, signature, ...)\
+ template \
+ struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName)<__VA_ARGS__> { \
+ void test();\
+ }
+
+#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD0(TestName)
+#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1(TestName, signature)\
+ template \
+ void INTERNAL_CATCH_MAKE_NAMESPACE(TestName)::TestName::test()
+#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X(TestName, signature, ...)\
+ template \
+ void INTERNAL_CATCH_MAKE_NAMESPACE(TestName)::TestName<__VA_ARGS__>::test()
+
+#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+#define INTERNAL_CATCH_NTTP_0
+#define INTERNAL_CATCH_NTTP_GEN(...) INTERNAL_CATCH_VA_NARGS_IMPL(__VA_ARGS__, INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__),INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_0)
+#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, ...) INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD0)(TestName, __VA_ARGS__)
+#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, ...) INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD0)(TestName, ClassName, __VA_ARGS__)
+#define INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, ...) INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD0, INTERNAL_CATCH_NTTP_REGISTER_METHOD0)(TestName, __VA_ARGS__)
+#define INTERNAL_CATCH_NTTP_REG_GEN(TestFunc, ...) INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER0, INTERNAL_CATCH_NTTP_REGISTER0)(TestFunc, __VA_ARGS__)
+#define INTERNAL_CATCH_DEFINE_SIG_TEST(TestName, ...) INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X,INTERNAL_CATCH_DEFINE_SIG_TEST_X,INTERNAL_CATCH_DEFINE_SIG_TEST1, INTERNAL_CATCH_DEFINE_SIG_TEST0)(TestName, __VA_ARGS__)
+#define INTERNAL_CATCH_DECLARE_SIG_TEST(TestName, ...) INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DECLARE_SIG_TEST_X,INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X,INTERNAL_CATCH_DECLARE_SIG_TEST_X,INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST1, INTERNAL_CATCH_DECLARE_SIG_TEST0)(TestName, __VA_ARGS__)
+#define INTERNAL_CATCH_REMOVE_PARENS_GEN(...) INTERNAL_CATCH_VA_NARGS_IMPL(__VA_ARGS__, INTERNAL_CATCH_REMOVE_PARENS_11_ARG,INTERNAL_CATCH_REMOVE_PARENS_10_ARG,INTERNAL_CATCH_REMOVE_PARENS_9_ARG,INTERNAL_CATCH_REMOVE_PARENS_8_ARG,INTERNAL_CATCH_REMOVE_PARENS_7_ARG,INTERNAL_CATCH_REMOVE_PARENS_6_ARG,INTERNAL_CATCH_REMOVE_PARENS_5_ARG,INTERNAL_CATCH_REMOVE_PARENS_4_ARG,INTERNAL_CATCH_REMOVE_PARENS_3_ARG,INTERNAL_CATCH_REMOVE_PARENS_2_ARG,INTERNAL_CATCH_REMOVE_PARENS_1_ARG)(__VA_ARGS__)
+#else
+#define INTERNAL_CATCH_NTTP_0(signature)
+#define INTERNAL_CATCH_NTTP_GEN(...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_VA_NARGS_IMPL(__VA_ARGS__, INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_1,INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_0)( __VA_ARGS__))
+#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, ...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD0)(TestName, __VA_ARGS__))
+#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, ...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD0)(TestName, ClassName, __VA_ARGS__))
+#define INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, ...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD0, INTERNAL_CATCH_NTTP_REGISTER_METHOD0)(TestName, __VA_ARGS__))
+#define INTERNAL_CATCH_NTTP_REG_GEN(TestFunc, ...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER0, INTERNAL_CATCH_NTTP_REGISTER0)(TestFunc, __VA_ARGS__))
+#define INTERNAL_CATCH_DEFINE_SIG_TEST(TestName, ...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X,INTERNAL_CATCH_DEFINE_SIG_TEST_X,INTERNAL_CATCH_DEFINE_SIG_TEST1, INTERNAL_CATCH_DEFINE_SIG_TEST0)(TestName, __VA_ARGS__))
+#define INTERNAL_CATCH_DECLARE_SIG_TEST(TestName, ...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DECLARE_SIG_TEST_X,INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X,INTERNAL_CATCH_DECLARE_SIG_TEST_X,INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST1, INTERNAL_CATCH_DECLARE_SIG_TEST0)(TestName, __VA_ARGS__))
+#define INTERNAL_CATCH_REMOVE_PARENS_GEN(...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_VA_NARGS_IMPL(__VA_ARGS__, INTERNAL_CATCH_REMOVE_PARENS_11_ARG,INTERNAL_CATCH_REMOVE_PARENS_10_ARG,INTERNAL_CATCH_REMOVE_PARENS_9_ARG,INTERNAL_CATCH_REMOVE_PARENS_8_ARG,INTERNAL_CATCH_REMOVE_PARENS_7_ARG,INTERNAL_CATCH_REMOVE_PARENS_6_ARG,INTERNAL_CATCH_REMOVE_PARENS_5_ARG,INTERNAL_CATCH_REMOVE_PARENS_4_ARG,INTERNAL_CATCH_REMOVE_PARENS_3_ARG,INTERNAL_CATCH_REMOVE_PARENS_2_ARG,INTERNAL_CATCH_REMOVE_PARENS_1_ARG)(__VA_ARGS__))
+#endif
+
+// end catch_preprocessor.hpp
+// start catch_meta.hpp
+
+
+#include
+
+namespace Catch {
+template
+struct always_false : std::false_type {};
+
+template struct true_given : std::true_type {};
+struct is_callable_tester {
+ template
+ true_given()(std::declval()...))> static test(int);
+ template
+ std::false_type static test(...);
+};
+
+template
+struct is_callable;
+
+template
+struct is_callable : decltype(is_callable_tester::test(0)) {};
+
+} // namespace Catch
+
+namespace mpl_{
+ struct na;
+}
+
+// end catch_meta.hpp
+namespace Catch {
+
+template
+class TestInvokerAsMethod : public ITestInvoker {
+ void (C::*m_testAsMethod)();
+public:
+ TestInvokerAsMethod( void (C::*testAsMethod)() ) noexcept : m_testAsMethod( testAsMethod ) {}
+
+ void invoke() const override {
+ C obj;
+ (obj.*m_testAsMethod)();
+ }
+};
+
+auto makeTestInvoker( void(*testAsFunction)() ) noexcept -> ITestInvoker*;
+
+template
+auto makeTestInvoker( void (C::*testAsMethod)() ) noexcept -> ITestInvoker* {
+ return new(std::nothrow) TestInvokerAsMethod( testAsMethod );
+}
+
+struct NameAndTags {
+ NameAndTags( StringRef const& name_ = StringRef(), StringRef const& tags_ = StringRef() ) noexcept;
+ StringRef name;
+ StringRef tags;
+};
+
+struct AutoReg : NonCopyable {
+ AutoReg( ITestInvoker* invoker, SourceLineInfo const& lineInfo, StringRef const& classOrMethod, NameAndTags const& nameAndTags ) noexcept;
+ ~AutoReg();
+};
+
+} // end namespace Catch
+
+#if defined(CATCH_CONFIG_DISABLE)
+ #define INTERNAL_CATCH_TESTCASE_NO_REGISTRATION( TestName, ... ) \
+ static void TestName()
+ #define INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION( TestName, ClassName, ... ) \
+ namespace{ \
+ struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName) { \
+ void test(); \
+ }; \
+ } \
+ void TestName::test()
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( TestName, TestFunc, Name, Tags, Signature, ... ) \
+ INTERNAL_CATCH_DEFINE_SIG_TEST(TestFunc, INTERNAL_CATCH_REMOVE_PARENS(Signature))
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( TestNameClass, TestName, ClassName, Name, Tags, Signature, ... ) \
+ namespace{ \
+ namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName) { \
+ INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, INTERNAL_CATCH_REMOVE_PARENS(Signature));\
+ } \
+ } \
+ INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, INTERNAL_CATCH_REMOVE_PARENS(Signature))
+
+ #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(Name, Tags, ...) \
+ INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename TestType, __VA_ARGS__ )
+ #else
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(Name, Tags, ...) \
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename TestType, __VA_ARGS__ ) )
+ #endif
+
+ #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(Name, Tags, Signature, ...) \
+ INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ )
+ #else
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(Name, Tags, Signature, ...) \
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ ) )
+ #endif
+
+ #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION( ClassName, Name, Tags,... ) \
+ INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ )
+ #else
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION( ClassName, Name, Tags,... ) \
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ ) )
+ #endif
+
+ #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION( ClassName, Name, Tags, Signature, ... ) \
+ INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ )
+ #else
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION( ClassName, Name, Tags, Signature, ... ) \
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ ) )
+ #endif
+#endif
+
+ ///////////////////////////////////////////////////////////////////////////////
+ #define INTERNAL_CATCH_TESTCASE2( TestName, ... ) \
+ static void TestName(); \
+ CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
+ namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( Catch::makeTestInvoker( &TestName ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ __VA_ARGS__ } ); } /* NOLINT */ \
+ CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS \
+ static void TestName()
+ #define INTERNAL_CATCH_TESTCASE( ... ) \
+ INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), __VA_ARGS__ )
+
+ ///////////////////////////////////////////////////////////////////////////////
+ #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... ) \
+ CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
+ namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( Catch::makeTestInvoker( &QualifiedMethod ), CATCH_INTERNAL_LINEINFO, "&" #QualifiedMethod, Catch::NameAndTags{ __VA_ARGS__ } ); } /* NOLINT */ \
+ CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS
+
+ ///////////////////////////////////////////////////////////////////////////////
+ #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestName, ClassName, ... )\
+ CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
+ namespace{ \
+ struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName) { \
+ void test(); \
+ }; \
+ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( Catch::makeTestInvoker( &TestName::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ __VA_ARGS__ } ); /* NOLINT */ \
+ } \
+ CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS \
+ void TestName::test()
+ #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... ) \
+ INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, __VA_ARGS__ )
+
+ ///////////////////////////////////////////////////////////////////////////////
+ #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, ... ) \
+ CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
+ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( Catch::makeTestInvoker( Function ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ __VA_ARGS__ } ); /* NOLINT */ \
+ CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS
+
+ ///////////////////////////////////////////////////////////////////////////////
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_2(TestName, TestFunc, Name, Tags, Signature, ... )\
+ CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
+ CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \
+ INTERNAL_CATCH_DECLARE_SIG_TEST(TestFunc, INTERNAL_CATCH_REMOVE_PARENS(Signature));\
+ namespace {\
+ namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName){\
+ INTERNAL_CATCH_TYPE_GEN\
+ INTERNAL_CATCH_NTTP_GEN(INTERNAL_CATCH_REMOVE_PARENS(Signature))\
+ INTERNAL_CATCH_NTTP_REG_GEN(TestFunc,INTERNAL_CATCH_REMOVE_PARENS(Signature))\
+ template \
+ struct TestName{\
+ TestName(){\
+ int index = 0; \
+ constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, __VA_ARGS__)};\
+ using expander = int[];\
+ (void)expander{(reg_test(Types{}, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index]), Tags } ), index++, 0)... };/* NOLINT */ \
+ }\
+ };\
+ static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\
+ TestName();\
+ return 0;\
+ }();\
+ }\
+ }\
+ CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS \
+ CATCH_INTERNAL_UNSUPPRESS_ZERO_VARIADIC_WARNINGS \
+ INTERNAL_CATCH_DEFINE_SIG_TEST(TestFunc,INTERNAL_CATCH_REMOVE_PARENS(Signature))
+
+#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE(Name, Tags, ...) \
+ INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename TestType, __VA_ARGS__ )
+#else
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE(Name, Tags, ...) \
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename TestType, __VA_ARGS__ ) )
+#endif
+
+#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG(Name, Tags, Signature, ...) \
+ INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ )
+#else
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG(Name, Tags, Signature, ...) \
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ ) )
+#endif
+
+ #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(TestName, TestFuncName, Name, Tags, Signature, TmplTypes, TypesList) \
+ CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
+ CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \
+ template static void TestFuncName(); \
+ namespace {\
+ namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName) { \
+ INTERNAL_CATCH_TYPE_GEN \
+ INTERNAL_CATCH_NTTP_GEN(INTERNAL_CATCH_REMOVE_PARENS(Signature)) \
+ template \
+ struct TestName { \
+ void reg_tests() { \
+ int index = 0; \
+ using expander = int[]; \
+ constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TmplTypes))};\
+ constexpr char const* types_list[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TypesList))};\
+ constexpr auto num_types = sizeof(types_list) / sizeof(types_list[0]);\
+ (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestFuncName ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index / num_types]) + "<" + std::string(types_list[index % num_types]) + ">", Tags } ), index++, 0)... };/* NOLINT */\
+ } \
+ }; \
+ static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){ \
+ using TestInit = decltype(create(TypeList{})); \
+ TestInit t; \
+ t.reg_tests(); \
+ return 0; \
+ }(); \
+ } \
+ } \
+ CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS \
+ CATCH_INTERNAL_UNSUPPRESS_ZERO_VARIADIC_WARNINGS \
+ template \
+ static void TestFuncName()
+
+#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+ #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE(Name, Tags, ...)\
+ INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename T,__VA_ARGS__)
+#else
+ #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE(Name, Tags, ...)\
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename T, __VA_ARGS__ ) )
+#endif
+
+#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+ #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG(Name, Tags, Signature, ...)\
+ INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__)
+#else
+ #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG(Name, Tags, Signature, ...)\
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ ) )
+#endif
+
+ #define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_2(TestName, TestFunc, Name, Tags, TmplList)\
+ CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
+ template static void TestFunc(); \
+ namespace {\
+ namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName){\
+ INTERNAL_CATCH_TYPE_GEN\
+ template \
+ struct TestName { \
+ void reg_tests() { \
+ int index = 0; \
+ using expander = int[]; \
+ (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestFunc ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ Name " - " + std::string(INTERNAL_CATCH_STRINGIZE(TmplList)) + " - " + std::to_string(index), Tags } ), index++, 0)... };/* NOLINT */\
+ } \
+ };\
+ static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){ \
+ using TestInit = decltype(convert(TmplList {})); \
+ TestInit t; \
+ t.reg_tests(); \
+ return 0; \
+ }(); \
+ }}\
+ CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS \
+ template \
+ static void TestFunc()
+
+ #define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE(Name, Tags, TmplList) \
+ INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, TmplList )
+
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( TestNameClass, TestName, ClassName, Name, Tags, Signature, ... ) \
+ CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
+ CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \
+ namespace {\
+ namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName){ \
+ INTERNAL_CATCH_TYPE_GEN\
+ INTERNAL_CATCH_NTTP_GEN(INTERNAL_CATCH_REMOVE_PARENS(Signature))\
+ INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, INTERNAL_CATCH_REMOVE_PARENS(Signature));\
+ INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, INTERNAL_CATCH_REMOVE_PARENS(Signature))\
+ template \
+ struct TestNameClass{\
+ TestNameClass(){\
+ int index = 0; \
+ constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, __VA_ARGS__)};\
+ using expander = int[];\
+ (void)expander{(reg_test(Types{}, #ClassName, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index]), Tags } ), index++, 0)... };/* NOLINT */ \
+ }\
+ };\
+ static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\
+ TestNameClass();\
+ return 0;\
+ }();\
+ }\
+ }\
+ CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS\
+ CATCH_INTERNAL_UNSUPPRESS_ZERO_VARIADIC_WARNINGS\
+ INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, INTERNAL_CATCH_REMOVE_PARENS(Signature))
+
+#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( ClassName, Name, Tags,... ) \
+ INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ )
+#else
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( ClassName, Name, Tags,... ) \
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ ) )
+#endif
+
+#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( ClassName, Name, Tags, Signature, ... ) \
+ INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ )
+#else
+ #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( ClassName, Name, Tags, Signature, ... ) \
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ ) )
+#endif
+
+ #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2(TestNameClass, TestName, ClassName, Name, Tags, Signature, TmplTypes, TypesList)\
+ CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
+ CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \
+ template \
+ struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName ) { \
+ void test();\
+ };\
+ namespace {\
+ namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestNameClass) {\
+ INTERNAL_CATCH_TYPE_GEN \
+ INTERNAL_CATCH_NTTP_GEN(INTERNAL_CATCH_REMOVE_PARENS(Signature))\
+ template\
+ struct TestNameClass{\
+ void reg_tests(){\
+ int index = 0;\
+ using expander = int[];\
+ constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TmplTypes))};\
+ constexpr char const* types_list[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TypesList))};\
+ constexpr auto num_types = sizeof(types_list) / sizeof(types_list[0]);\
+ (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestName::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index / num_types]) + "<" + std::string(types_list[index % num_types]) + ">", Tags } ), index++, 0)... };/* NOLINT */ \
+ }\
+ };\
+ static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\
+ using TestInit = decltype(create(TypeList{}));\
+ TestInit t;\
+ t.reg_tests();\
+ return 0;\
+ }(); \
+ }\
+ }\
+ CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS \
+ CATCH_INTERNAL_UNSUPPRESS_ZERO_VARIADIC_WARNINGS \
+ template \
+ void TestName::test()
+
+#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+ #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( ClassName, Name, Tags, ... )\
+ INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, typename T, __VA_ARGS__ )
+#else
+ #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( ClassName, Name, Tags, ... )\
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, typename T,__VA_ARGS__ ) )
+#endif
+
+#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
+ #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( ClassName, Name, Tags, Signature, ... )\
+ INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, Signature, __VA_ARGS__ )
+#else
+ #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( ClassName, Name, Tags, Signature, ... )\
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, Signature,__VA_ARGS__ ) )
+#endif
+
+ #define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD_2( TestNameClass, TestName, ClassName, Name, Tags, TmplList) \
+ CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
+ template \
+ struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName ) { \
+ void test();\
+ };\
+ namespace {\
+ namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName){ \
+ INTERNAL_CATCH_TYPE_GEN\
+ template\
+ struct TestNameClass{\
+ void reg_tests(){\
+ int index = 0;\
+ using expander = int[];\
+ (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestName::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ Name " - " + std::string(INTERNAL_CATCH_STRINGIZE(TmplList)) + " - " + std::to_string(index), Tags } ), index++, 0)... };/* NOLINT */ \
+ }\
+ };\
+ static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\
+ using TestInit = decltype(convert(TmplList {}));\
+ TestInit t;\
+ t.reg_tests();\
+ return 0;\
+ }(); \
+ }}\
+ CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS \
+ template \
+ void TestName::test()
+
+#define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD(ClassName, Name, Tags, TmplList) \
+ INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, TmplList )
+
+// end catch_test_registry.h
+// start catch_capture.hpp
+
+// start catch_assertionhandler.h
+
+// start catch_assertioninfo.h
+
+// start catch_result_type.h
+
+namespace Catch {
+
+ // ResultWas::OfType enum
+ struct ResultWas { enum OfType {
+ Unknown = -1,
+ Ok = 0,
+ Info = 1,
+ Warning = 2,
+
+ FailureBit = 0x10,
+
+ ExpressionFailed = FailureBit | 1,
+ ExplicitFailure = FailureBit | 2,
+
+ Exception = 0x100 | FailureBit,
+
+ ThrewException = Exception | 1,
+ DidntThrowException = Exception | 2,
+
+ FatalErrorCondition = 0x200 | FailureBit
+
+ }; };
+
+ bool isOk( ResultWas::OfType resultType );
+ bool isJustInfo( int flags );
+
+ // ResultDisposition::Flags enum
+ struct ResultDisposition { enum Flags {
+ Normal = 0x01,
+
+ ContinueOnFailure = 0x02, // Failures fail test, but execution continues
+ FalseTest = 0x04, // Prefix expression with !
+ SuppressFail = 0x08 // Failures are reported but do not fail the test
+ }; };
+
+ ResultDisposition::Flags operator | ( ResultDisposition::Flags lhs, ResultDisposition::Flags rhs );
+
+ bool shouldContinueOnFailure( int flags );
+ inline bool isFalseTest( int flags ) { return ( flags & ResultDisposition::FalseTest ) != 0; }
+ bool shouldSuppressFailure( int flags );
+
+} // end namespace Catch
+
+// end catch_result_type.h
+namespace Catch {
+
+ struct AssertionInfo
+ {
+ StringRef macroName;
+ SourceLineInfo lineInfo;
+ StringRef capturedExpression;
+ ResultDisposition::Flags resultDisposition;
+
+ // We want to delete this constructor but a compiler bug in 4.8 means
+ // the struct is then treated as non-aggregate
+ //AssertionInfo() = delete;
+ };
+
+} // end namespace Catch
+
+// end catch_assertioninfo.h
+// start catch_decomposer.h
+
+// start catch_tostring.h
+
+#include
+#include
+#include
+#include
+// start catch_stream.h
+
+#include
+#include
+#include
+
+namespace Catch {
+
+ std::ostream& cout();
+ std::ostream& cerr();
+ std::ostream& clog();
+
+ class StringRef;
+
+ struct IStream {
+ virtual ~IStream();
+ virtual std::ostream& stream() const = 0;
+ };
+
+ auto makeStream( StringRef const &filename ) -> IStream const*;
+
+ class ReusableStringStream {
+ std::size_t m_index;
+ std::ostream* m_oss;
+ public:
+ ReusableStringStream();
+ ~ReusableStringStream();
+
+ auto str() const -> std::string;
+
+ template
+ auto operator << ( T const& value ) -> ReusableStringStream& {
+ *m_oss << value;
+ return *this;
+ }
+ auto get() -> std::ostream& { return *m_oss; }
+ };
+}
+
+// end catch_stream.h
+// start catch_interfaces_enum_values_registry.h
+
+#include
+
+namespace Catch {
+
+ namespace Detail {
+ struct EnumInfo {
+ StringRef m_name;
+ std::vector> m_values;
+
+ ~EnumInfo();
+
+ StringRef lookup( int value ) const;
+ };
+ } // namespace Detail
+
+ struct IMutableEnumValuesRegistry {
+ virtual ~IMutableEnumValuesRegistry();
+
+ virtual Detail::EnumInfo const& registerEnum( StringRef enumName, StringRef allEnums, std::vector const& values ) = 0;
+
+ template
+ Detail::EnumInfo const& registerEnum( StringRef enumName, StringRef allEnums, std::initializer_list values ) {
+ std::vector intValues;
+ intValues.reserve( values.size() );
+ for( auto enumValue : values )
+ intValues.push_back( static_cast( enumValue ) );
+ return registerEnum( enumName, allEnums, intValues );
+ }
+ };
+
+} // Catch
+
+// end catch_interfaces_enum_values_registry.h
+
+#ifdef CATCH_CONFIG_CPP17_STRING_VIEW
+#include
+#endif
+
+#ifdef __OBJC__
+// start catch_objc_arc.hpp
+
+#import
+
+#ifdef __has_feature
+#define CATCH_ARC_ENABLED __has_feature(objc_arc)
+#else
+#define CATCH_ARC_ENABLED 0
+#endif
+
+void arcSafeRelease( NSObject* obj );
+id performOptionalSelector( id obj, SEL sel );
+
+#if !CATCH_ARC_ENABLED
+inline void arcSafeRelease( NSObject* obj ) {
+ [obj release];
+}
+inline id performOptionalSelector( id obj, SEL sel ) {
+ if( [obj respondsToSelector: sel] )
+ return [obj performSelector: sel];
+ return nil;
+}
+#define CATCH_UNSAFE_UNRETAINED
+#define CATCH_ARC_STRONG
+#else
+inline void arcSafeRelease( NSObject* ){}
+inline id performOptionalSelector( id obj, SEL sel ) {
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
+#endif
+ if( [obj respondsToSelector: sel] )
+ return [obj performSelector: sel];
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+ return nil;
+}
+#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained
+#define CATCH_ARC_STRONG __strong
+#endif
+
+// end catch_objc_arc.hpp
+#endif
+
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable:4180) // We attempt to stream a function (address) by const&, which MSVC complains about but is harmless
+#endif
+
+namespace Catch {
+ namespace Detail {
+
+ extern const std::string unprintableString;
+
+ std::string rawMemoryToString( const void *object, std::size_t size );
+
+ template
+ std::string rawMemoryToString( const T& object ) {
+ return rawMemoryToString( &object, sizeof(object) );
+ }
+
+ template
+ class IsStreamInsertable {
+ template
+ static auto test(int)
+ -> decltype(std::declval() << std::declval(), std::true_type());
+
+ template
+ static auto test(...)->std::false_type;
+
+ public:
+ static const bool value = decltype(test(0))::value;
+ };
+
+ template
+ std::string convertUnknownEnumToString( E e );
+
+ template
+ typename std::enable_if<
+ !std::is_enum::value && !std::is_base_of::value,
+ std::string>::type convertUnstreamable( T const& ) {
+ return Detail::unprintableString;
+ }
+ template
+ typename std::enable_if<
+ !std::is_enum::value && std::is_base_of::value,
+ std::string>::type convertUnstreamable(T const& ex) {
+ return ex.what();
+ }
+
+ template
+ typename std::enable_if<
+ std::is_enum::value
+ , std::string>::type convertUnstreamable( T const& value ) {
+ return convertUnknownEnumToString( value );
+ }
+
+#if defined(_MANAGED)
+ //! Convert a CLR string to a utf8 std::string
+ template
+ std::string clrReferenceToString( T^ ref ) {
+ if (ref == nullptr)
+ return std::string("null");
+ auto bytes = System::Text::Encoding::UTF8->GetBytes(ref->ToString());
+ cli::pin_ptr p = &bytes[0];
+ return std::string(reinterpret_cast(p), bytes->Length);
+ }
+#endif
+
+ } // namespace Detail
+
+ // If we decide for C++14, change these to enable_if_ts
+ template