diff --git a/.gitignore b/.gitignore index f38bc90a9b8..dbc8019016f 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,7 @@ *.userosscache *.sln.docstates -toolsrc/out +toolsrc/out* toolsrc/CMakeSettings.json # User-specific files (MonoDevelop/Xamarin Studio) diff --git a/CHANGELOG.md b/CHANGELOG.md index 499023e9d20..ad2091da9e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,625 @@ +vcpkg (2019.7.31) +--- +#### Total port count: 1105 +#### Total port count per triplet (tested): +|triplet|ports available| +|---|---| +|**x64-windows**|1039| +|x86-windows|1009| +|x64-windows-static|928| +|**x64-linux**|866| +|**x64-osx**|788| +|arm64-windows|678| +|x64-uwp|546| +|arm-uwp|522| + +#### The following commands and options have been updated: +- --scripts-root ***[NEW OPTION]*** + - Specify a directory to use in place of `/scripts`. Enables a shared script directory for those using a single vcpkg instance to manage distributed port directories + - [(#6552)](https://github.com/microsoft/vcpkg/pull/6552) Allow redirection of the scripts folder. +- depend-info + - Allow `vcpkg depend-info port[feature]` to display port-dependency information for a given port and the specified feature. + - [(#6797)](https://github.com/microsoft/vcpkg/pull/6797) Make `depend-info` subcommand able to handle features + +#### The following documentation has been updated: +- [Overlay triplets example: build dynamic libraries on Linux](docs/examples/overlay-triplets-linux-dynamic.md) ***[NEW]*** + - [(#7291)](https://github.com/microsoft/vcpkg/pull/7291) Example: Building dynamic libraries on Linux using overlay triplets +- [vcpkg_from_git](docs/maintainers/vcpkg_from_git.md) + - [(#7082)](https://github.com/microsoft/vcpkg/pull/7082) Fix vcpkg_from_git +- [Maintainer Guidelines and Policies](docs/maintainers/maintainer-guide.md) + - [(#7390)](https://github.com/microsoft/vcpkg/pull/7390) [docs] add notes about manual-link + +#### The following *remarkable* changes have been made to vcpkg's infrastructure: +- `VCPKG_ENV_PASSTHROUGH` triplet variable and `environment-overrides.cmake` + - Port authors can add an `environment-overrides.cmake` file to a port to override triplet settings globally or to define behavior of the vpckg binary on a per port basis + - [(#7290)](https://github.com/microsoft/vcpkg/pull/7290) [vcpkg] Environment Variable Passthrough + - [(#7292)](https://github.com/microsoft/vcpkg/pull/7292) [vcpkg] Portfile Settings +- Testing overhaul + - Tests have been migrated from the Visual Studio unit testing framework to the cross-platform [Catch2](https://github.com/catchorg/Catch2) + - [(#7315)](https://github.com/microsoft/vcpkg/pull/7315) Rewrite the tests! now they're cross-platform! + +#### The following *additional* changes have been made to vcpkg's infrastructure: +- [(#7080)](https://github.com/microsoft/vcpkg/pull/7080) [vcpkg] Use spaces instead of semicolons in the output +- [(#6791)](https://github.com/microsoft/vcpkg/pull/6791) Update python2, python3, perl, aria2, ninja, ruby, 7z +- [(#7082)](https://github.com/microsoft/vcpkg/pull/7082) Fix vcpkg_from_git +- [(#7117)](https://github.com/microsoft/vcpkg/pull/7117) Revert Visual Studio projects versions +- [(#7051)](https://github.com/microsoft/vcpkg/pull/7051) Fix Python3 tool on Windows +- [(#7135)](https://github.com/microsoft/vcpkg/pull/7135) revert ninja update +- [(#7136)](https://github.com/microsoft/vcpkg/pull/7136) Bump version to warn of outdated vcpkg sources +- [(#7094)](https://github.com/microsoft/vcpkg/pull/7094) [vcpkg] Fix powershell font corruption bug +- [(#7158)](https://github.com/microsoft/vcpkg/pull/7158) [vcpkg] Fix incorrect setting of FEATURE_OPTIONS +- [(#6792)](https://github.com/microsoft/vcpkg/pull/6792) Cleanup vcpkg_configure_cmake.cmake +- [(#7175)](https://github.com/microsoft/vcpkg/pull/7175) Added nasm mirror as nasm.us is down again +- [(#7216)](https://github.com/microsoft/vcpkg/pull/7216) [vcpkg] allow spaces in pathname on linux +- [(#7243)](https://github.com/microsoft/vcpkg/pull/7243) Testing for --overlay-ports and --overlay-triplets args +- [(#7294)](https://github.com/microsoft/vcpkg/pull/7294) Add June changelog +- [(#7229)](https://github.com/microsoft/vcpkg/pull/7229) Better error message when VCPKG_ROOT is independently defined +- [(#7336)](https://github.com/microsoft/vcpkg/pull/7336) Create issue templates +- [(#7322)](https://github.com/microsoft/vcpkg/pull/7322) Resolves "project is never up-to-date" problem (issue 6179) +- [(#7228)](https://github.com/microsoft/vcpkg/pull/7228) Parallel file operations +- [(#7403)](https://github.com/microsoft/vcpkg/pull/7403) Add third party notices -- copied from chakracore +- [(#7407)](https://github.com/microsoft/vcpkg/pull/7407) Modify CMakeLists to split up vcpkglib +- [(#7430)](https://github.com/microsoft/vcpkg/pull/7430) [vcpkg] Fix RealFilesystem::remove_all + +
+The following 37 ports have been added: + +|port|version| +|---|---| +|[septag-sx](https://github.com/microsoft/vcpkg/pull/6327)| 2019-05-07-1 +|[librdkafka](https://github.com/microsoft/vcpkg/pull/5921)| 1.1.0 +|[soxr](https://github.com/microsoft/vcpkg/pull/6478)| 0.1.3. +|[czmq](https://github.com/microsoft/vcpkg/pull/4979)[#7186](https://github.com/microsoft/vcpkg/pull/7186) | 2019-06-10-1 +|[cppmicroservices](https://github.com/microsoft/vcpkg/pull/6388)| 4.0.0-pre1 +|[zookeeper](https://github.com/microsoft/vcpkg/pull/7000)| 3.5.5 +|[xmlsec](https://github.com/microsoft/vcpkg/pull/7196)| 1.2.28 +|[librsvg](https://github.com/microsoft/vcpkg/pull/6807)| 2.40.20 +|[7zip](https://github.com/microsoft/vcpkg/pull/6920)| 19.00 +|[genann](https://github.com/microsoft/vcpkg/pull/7195)| 2019-07-10 +|[offscale-libetcd-cpp](https://github.com/microsoft/vcpkg/pull/6999)| 2019-07-10 +|[rabit](https://github.com/microsoft/vcpkg/pull/7234)| 0.1 +|[zyre](https://github.com/microsoft/vcpkg/pull/7189)| 2019-07-07 +|[cpp-peglib](https://github.com/microsoft/vcpkg/pull/7254)| 0.1.0 +|[paho-mqttpp3](https://github.com/microsoft/vcpkg/pull/7033)| 1.0.1 +|[openxr-loader](https://github.com/microsoft/vcpkg/pull/6339)[#7376](https://github.com/microsoft/vcpkg/pull/7376) [#7488](https://github.com/microsoft/vcpkg/pull/7488) | 1.0.0-1 +|[wintoast](https://github.com/microsoft/vcpkg/pull/7006)| 1.2.0 +|[scnlib](https://github.com/microsoft/vcpkg/pull/7014)| 0.1.2 +|[mongoose](https://github.com/microsoft/vcpkg/pull/7089)| 6.15-1 +|[nameof](https://github.com/microsoft/vcpkg/pull/7250)| 2019-07-13 +|[leaf](https://github.com/microsoft/vcpkg/pull/7319)[#7468](https://github.com/microsoft/vcpkg/pull/7468) | 0.2.1-2 +|[otl](https://github.com/microsoft/vcpkg/pull/7272)| 4.0.442 +|[dbg-macro](https://github.com/microsoft/vcpkg/pull/7237)| 2019-07-11 +|[p-ranav-csv](https://github.com/microsoft/vcpkg/pull/7236)| 2019-07-11 +|[lastools](https://github.com/microsoft/vcpkg/pull/7220)| 2019-07-10 +|[basisu](https://github.com/microsoft/vcpkg/pull/6995)[#7468](https://github.com/microsoft/vcpkg/pull/7468) | 0.0.1-1 +|[cmcstl2](https://github.com/microsoft/vcpkg/pull/7348)| 2019-07-20 +|[libconfuse](https://github.com/microsoft/vcpkg/pull/7252)| 2019-07-14 +|[boolinq](https://github.com/microsoft/vcpkg/pull/7362)| 2019-07-22 +|[libzippp](https://github.com/microsoft/vcpkg/pull/6801)| 2019-07-22 +|[mimalloc](https://github.com/microsoft/vcpkg/pull/7011)| 2019-06-25 +|[liblas](https://github.com/microsoft/vcpkg/pull/6746)| 1.8.1 +|[xtensor-io](https://github.com/microsoft/vcpkg/pull/7398)| 0.7.0 +|[easycl](https://github.com/microsoft/vcpkg/pull/7387)| 0.3 +|[nngpp](https://github.com/microsoft/vcpkg/pull/7417)| 2019-07-25 +|[mpi](https://github.com/microsoft/vcpkg/pull/7142)| 1 +|[openmpi](https://github.com/microsoft/vcpkg/pull/7142)| 4.0.1 +
+ +
+The following 160 ports have been updated: + +- openssl-unix `1.0.2q` -> `1.0.2s-1` + - [(#6854)](https://github.com/microsoft/vcpkg/pull/6854) Openssl version bump 1.0.2s + - [(#6512)](https://github.com/microsoft/vcpkg/pull/6512) [openssl-unix] Shared library support + +- openssl-windows `1.0.2q-2` -> `1.0.2s-1` + - [(#6854)](https://github.com/microsoft/vcpkg/pull/6854) Openssl version bump 1.0.2s + +- mongo-cxx-driver `3.4.0-2` -> `3.4.0-3` + - [(#7050)](https://github.com/microsoft/vcpkg/pull/7050) [mongo-cxx-driver] Do not delete the third_party include folder when building with mnmlstc + +- fdlibm `5.3-3` -> `5.3-4` + - [(#7082)](https://github.com/microsoft/vcpkg/pull/7082) Fix vcpkg_from_git + +- azure-iot-sdk-c `2019-05-16.1` -> `2019-07-01.1` + - [(#7123)](https://github.com/microsoft/vcpkg/pull/7123) [azure] Update azure-iot-sdk-c for public-preview release of 2019-07-01 + +- open62541 `0.3.0-1` -> `0.3.0-2` + - [(#7051)](https://github.com/microsoft/vcpkg/pull/7051) Fix Python3 tool on Windows + +- lua `5.3.5-1` -> `5.3.5-2` + - [(#7101)](https://github.com/microsoft/vcpkg/pull/7101) [lua] Add [cpp] feature to additionally build lua-c++ + +- flann `1.9.1-1` -> `2019-04-07-1` + - [(#7125)](https://github.com/microsoft/vcpkg/pull/7125) [flann]Change the version tag to the corresponding time of commit id. + +- tbb `2019_U7` -> `2019_U7-1` + - [(#6510)](https://github.com/microsoft/vcpkg/pull/6510) [tbb] Add shared library support for Linux and OSX + +- dcmtk `3.6.4` -> `3.6.4-1` + - [(#7059)](https://github.com/microsoft/vcpkg/pull/7059) [dcmtk] support wchar_t* filename + +- libmupdf `1.15.0` -> `1.15.0-1` + - [(#7107)](https://github.com/microsoft/vcpkg/pull/7107) [libmupdf] Enable the old patch for fixing C2169 + +- mongo-c-driver `1.14.0-2` -> `1.14.0-3` + - [(#7048)](https://github.com/microsoft/vcpkg/pull/7048) [mongo-c-driver] Add usage + - [(#7338)](https://github.com/microsoft/vcpkg/pull/7338) [mongo-c-driver] Disable snappy auto-detection + +- openimageio `1.8.16` -> `2.0.8` + - [(#7173)](https://github.com/microsoft/vcpkg/pull/7173) [openimageio] Upgrade to version 2.0.8 + +- duktape `2.3.0` -> `2.3.0-2` + - [(#7170)](https://github.com/microsoft/vcpkg/pull/7170) [duktape] Fix package not found by find_package. + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- poco `2.0.0-pre-2` -> `2.0.0-pre-3` + - [(#7169)](https://github.com/microsoft/vcpkg/pull/7169) [Poco] Add missing ipjlpapi.lib to foundation library + +- gsoap `2.8.84-1` -> `2.8.87-1` + - [(#7145)](https://github.com/microsoft/vcpkg/pull/7145) [gsoap] Update to 2.8.87 + +- qt5-mqtt `5.12.3` -> `5.12.3-1` + - [(#7130)](https://github.com/microsoft/vcpkg/pull/7130) [qt5-mqtt] crossplatform add to path + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- botan `2.9.0-1` -> `2.9.0-2` + - [(#7140)](https://github.com/microsoft/vcpkg/pull/7140) [botan] Fix build error C2039 with Visual Studio 2019 and C++17 + - [(#7303)](https://github.com/microsoft/vcpkg/pull/7303) [botan] Fix parallel build + +- kinectsdk2 `2.0` -> `2.0-1` + - [(#7143)](https://github.com/microsoft/vcpkg/pull/7143) kinectsdk2: fix missing header files + +- civetweb `1.11-1` -> `2019-07-05` + - [(#7166)](https://github.com/microsoft/vcpkg/pull/7166) [civetweb] Upgrade and enable feature websocket + +- curl `7.65.0-2` -> `7.65.2-1` + - [(#7156)](https://github.com/microsoft/vcpkg/pull/7156) [curl] Add features. + - [(#7093)](https://github.com/microsoft/vcpkg/pull/7093) [curl] Update to 7.65.2 + +- aws-checksums `0.1.2` -> `0.1.3` + - [(#7154)](https://github.com/microsoft/vcpkg/pull/7154) [aws-checksums]Upgrade version to 0.1.3 + +- rapidjson `1.1.0-3` -> `d87b698-1` + - [(#7152)](https://github.com/microsoft/vcpkg/pull/7152) [rapidjson] Update to the latest commit and also fix #3401. + - [(#7273)](https://github.com/microsoft/vcpkg/pull/7273) [rapidjson] Fix path RapidJSON_INCLUDE_DIRS + +- freetype `2.10.0` -> `2.10.1-1` + - [(#7141)](https://github.com/microsoft/vcpkg/pull/7141) [freetype]Re-fixed the issue of exporting symbols when building dynamic library. + - [(#7341)](https://github.com/microsoft/vcpkg/pull/7341) [freetype] Update to 2.10.1 + +- llvm `7.0.0-3` -> `8.0.0` + - [(#7209)](https://github.com/microsoft/vcpkg/pull/7209) [llvm] Update to 8.0.0 + +- reproc `6.0.0-1` -> `6.0.0-2` + - [(#7208)](https://github.com/microsoft/vcpkg/pull/7208) [reproc] Fix reproc++ installation path + +- wil `2019-06-10` -> `2019-07-16` + - [(#7215)](https://github.com/microsoft/vcpkg/pull/7215) [wil] Update + - [(#7285)](https://github.com/microsoft/vcpkg/pull/7285) Update wil port to match the commit used for NuGet package 1.0.190716.2 + +- tesseract `4.0.0-3` -> `4.1.0-1` + - [(#7144)](https://github.com/microsoft/vcpkg/pull/7144) [tesseract] Fix Port. Making it crossplatform + - [(#7227)](https://github.com/microsoft/vcpkg/pull/7227) [tesseract] port update to 4.1.0 release + - [(#7360)](https://github.com/microsoft/vcpkg/pull/7360) [tesseract[training_tools]] Fix build error + +- zeromq `2019-05-07` -> `2019-07-09` + - [(#7203)](https://github.com/microsoft/vcpkg/pull/7203) [zeromq] Update to 4.3.2 + +- spirv-tools `2019.3-dev` -> `2019.3-dev-1` + - [(#7204)](https://github.com/microsoft/vcpkg/pull/7204) [spirv-tools] Fix removed patch + +- libraqm `0.6.0` -> `0.7.0` + - [(#7149)](https://github.com/microsoft/vcpkg/pull/7149) [libraqm] Update libraqm to 0.7.0 + - [(#7263)](https://github.com/microsoft/vcpkg/pull/7263) [libraqm] Fix copying raqm-version.h to include directory + +- pthreads `3.0.0-1` -> `3.0.0-2` + - [(#7178)](https://github.com/microsoft/vcpkg/pull/7178) [pthreads4W] vcpkg wrapper fixes + +- libkml `1.3.0-2` -> `1.3.0-3` + - [(#7194)](https://github.com/microsoft/vcpkg/pull/7194) [libkml] Fix install path + - [(#7282)](https://github.com/microsoft/vcpkg/pull/7282) [minizip] Make BZip2 an optional feature + +- gherkin-c `4.1.2` -> `2019-10-07-1` + - [(#7231)](https://github.com/microsoft/vcpkg/pull/7231) [gherkin-b] update to latest + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- google-cloud-cpp `0.10.0` -> `0.11.0` + - [(#7134)](https://github.com/microsoft/vcpkg/pull/7134) Upgrade google-cloud-cpp to v0.11.0. + +- sqlite3 `3.28.0-1` -> `3.29.0-1` + - [(#7202)](https://github.com/microsoft/vcpkg/pull/7202) [sqlite3-tool]Fix build error on arm/uwp platform. + - [(#7342)](https://github.com/microsoft/vcpkg/pull/7342) [sqlite3] Update to 3.29.0 + +- nonius `2019-04-20` -> `2019-04-20-1` + - [(#7258)](https://github.com/microsoft/vcpkg/pull/7258) [nonius] properly install noniusConfig.cmake + +- leveldb `1.22` -> `1.22-1` + - [(#7245)](https://github.com/microsoft/vcpkg/pull/7245) [leveldb] Fix cmake config + +- bond `8.1.0` -> `8.1.0-2` + - [(#7273)](https://github.com/microsoft/vcpkg/pull/7273) [rapidjson] Fix path RapidJSON_INCLUDE_DIRS + - [(#7306)](https://github.com/microsoft/vcpkg/pull/7306) [bond] make haskell an external dependency + - [(#7142)](https://github.com/microsoft/vcpkg/pull/7142) [OpenMPI] add a new port + +- cpprestsdk `2.10.13-1` -> `2.10.14` + - [(#7286)](https://github.com/microsoft/vcpkg/pull/7286) Update cpprestsdk to v2.10.14. + +- qt5-base `5.12.3-1` -> `5.12.3-3` + - [(#6983)](https://github.com/microsoft/vcpkg/pull/6983) [qt5-base]Add a print message to inform the user to install the dependency package. + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-3d `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-activeqt `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-charts `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-connectivity `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-datavis3d `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-declarative `5.12.3-1` -> `5.12.3-2` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-gamepad `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-graphicaleffects `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-imageformats `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-location `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-macextras `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-modularscripts `2019-04-30` -> `2019-04-30-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-multimedia `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-networkauth `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-purchasing `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-quickcontrols `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-quickcontrols2 `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-remoteobjects `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-script `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-scxml `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-sensors `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-serialport `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-speech `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-svg `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-tools `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-virtualkeyboard `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-webchannel `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-websockets `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-webview `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- qt5-winextras `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + - [(#7298)](https://github.com/microsoft/vcpkg/pull/7298) [qt5-winextras, ecsutil, soundtouch] Fix build-depends + +- qt5-xmlpatterns `5.12.3` -> `5.12.3-1` + - [(#7230)](https://github.com/microsoft/vcpkg/pull/7230) [qt5]Fix build failure in linux + +- rocksdb `6.0.2` -> `6.1.2` + - [(#7304)](https://github.com/microsoft/vcpkg/pull/7304) [rocksdb] Update rocksdb to 6.1.2, adds optional zstd feature + +- metis `5.1.0-3` -> `5.1.0-5` + - [(#7299)](https://github.com/microsoft/vcpkg/pull/7299) [metis] Fix linux build error. + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- ecsutil `1.0.6.1` -> `1.0.7.2` + - [(#7298)](https://github.com/microsoft/vcpkg/pull/7298) [qt5-winextras, ecsutil, soundtouch] Fix build-depends + - [(#7427)](https://github.com/microsoft/vcpkg/pull/7427) [ECSUtil] update library to v1.0.7.2 + +- soundtouch `2.0.0-2` -> `2.0.0-3` + - [(#7298)](https://github.com/microsoft/vcpkg/pull/7298) [qt5-winextras, ecsutil, soundtouch] Fix build-depends + +- libsodium `1.0.18` -> `1.0.18-1` + - [(#7297)](https://github.com/microsoft/vcpkg/pull/7297) [libsodium] Fix Linux build error. + +- irrlicht `1.8.4` -> `1.8.4-2` + - [(#7296)](https://github.com/microsoft/vcpkg/pull/7296) [irrlicht] add vcpkg-cmake-wrapper + - [(#7354)](https://github.com/microsoft/vcpkg/pull/7354) [irrlicht] use unicode path on windows + +- libyaml `0.2.2` -> `0.2.2-1` + - [(#7277)](https://github.com/microsoft/vcpkg/pull/7277) [libyaml] Fix build error + +- eastl `3.13.05-1` -> `3.14.00` + - [(#7276)](https://github.com/microsoft/vcpkg/pull/7276) [eastl] Upgrade to 3.14 + +- boost-asio `1.70.0-1` -> `1.70.0-2` + - [(#7267)](https://github.com/microsoft/vcpkg/pull/7267) Fixed boost-asio on Windows + +- minizip `1.2.11-4` -> `1.2.11-5` + - [(#7282)](https://github.com/microsoft/vcpkg/pull/7282) [minizip] Make BZip2 an optional feature + +- blend2d `beta_2019-04-30` -> `beta_2019-07-16` + - [(#7239)](https://github.com/microsoft/vcpkg/pull/7239) [blend2d] Port update + +- so5extra `1.2.3-1` -> `1.3.1` + - [(#7238)](https://github.com/microsoft/vcpkg/pull/7238) [sobjectizer, so5extra] updates + +- sobjectizer `5.5.24.4-1` -> `5.6.0.2` + - [(#7238)](https://github.com/microsoft/vcpkg/pull/7238) [sobjectizer, so5extra] updates + +- directxtk `apr2019` -> `apr2019-1` + - [(#7233)](https://github.com/microsoft/vcpkg/pull/7233) [DirectXTK] Fix UWP build error + +- restbed `4.16-07-28-2018` -> `4.16-07-28-2018-1` + - [(#7232)](https://github.com/microsoft/vcpkg/pull/7232) [restbed] Add openssl feature + +- clapack `3.2.1-9` -> `3.2.1-10` + - [(#6786)](https://github.com/microsoft/vcpkg/pull/6786) [openblas/clapack] FindLapack/FindBLAS was not working. + +- geogram `1.6.9-6` -> `1.6.9-7` + - [(#6786)](https://github.com/microsoft/vcpkg/pull/6786) [openblas/clapack] FindLapack/FindBLAS was not working. + +- mlpack `3.1.1` -> `3.1.1-1` + - [(#6786)](https://github.com/microsoft/vcpkg/pull/6786) [openblas/clapack] FindLapack/FindBLAS was not working. + +- openblas `0.3.6-4` -> `0.3.6-5` + - [(#6786)](https://github.com/microsoft/vcpkg/pull/6786) [openblas/clapack] FindLapack/FindBLAS was not working. + +- pprint `2019-06-01` -> `2019-07-19` + - [(#7317)](https://github.com/microsoft/vcpkg/pull/7317) [pprint] Fix #7301 + +- boost-type-erasure `1.70.0` -> `1.70.0-1` + - [(#7325)](https://github.com/microsoft/vcpkg/pull/7325) [boost-type-erasure] fix depends on arm + +- armadillo `2019-04-16-3` -> `2019-04-16-4` + - [(#7041)](https://github.com/microsoft/vcpkg/pull/7041) [armadillo] Fix installation path + +- cutelyst2 `2.7.0` -> `2.8.0` + - [(#7327)](https://github.com/microsoft/vcpkg/pull/7327) [cutelyst2]Upgrade version to 2.8.0 + +- sdl2-image `2.0.4-3` -> `2.0.5` + - [(#7355)](https://github.com/microsoft/vcpkg/pull/7355) [sdl2-image] Updated to 2.0.5 + +- qhull `7.2.1-3` -> `7.3.2` + - [(#7340)](https://github.com/microsoft/vcpkg/pull/7340) [qhull] Update to 7.3.2 and fix postbuild validation + +- libexif `0.6.21-1` -> `0.6.21-2` + - [(#7344)](https://github.com/microsoft/vcpkg/pull/7344) [Libexif] update download location + +- arrow `0.13.0-4` -> `0.14.1` + - [(#7211)](https://github.com/microsoft/vcpkg/pull/7211) [Arrow] Update to Arrow v0.14.1 + +- date `ed0368f` -> `2019-05-18-1` + - [(#7399)](https://github.com/microsoft/vcpkg/pull/7399) [date] Fix issue with feature remote-api + +- libmariadb `3.0.10-1` -> `3.0.10-3` + - [(#7396)](https://github.com/microsoft/vcpkg/pull/7396) [libmariadb] Fix build library type and install path + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- inja `2.1.0` -> `2.1.0-1` + - [(#7402)](https://github.com/microsoft/vcpkg/pull/7402) [inja] Use inja CMakeLists.txt + +- pcl `1.9.1-4` -> `1.9.1-5` + - [(#7388)](https://github.com/microsoft/vcpkg/pull/7388) [pcl] Fix cuda building compatability issues with cuda 10.1 + +- thrift `2019-05-07-2` -> `2019-05-07-3` + - [(#7302)](https://github.com/microsoft/vcpkg/pull/7302) [Thrift] Make Thrift static again + +- forest `12.0.0` -> `12.0.3` + - [(#7410)](https://github.com/microsoft/vcpkg/pull/7410) [forest] Update to Version 12.0.3 + +- nlohmann-json `3.6.1` -> `3.7.0` + - [(#7459)](https://github.com/microsoft/vcpkg/pull/7459) [nlohmann-json] Update to 3.7.0 + +- ecm `5.58.0` -> `5.60.0-1` + - [(#7457)](https://github.com/microsoft/vcpkg/pull/7457) [ecm] Update library to v5.60.0 + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- gl2ps `1.4.0-1` -> `1.4.0-3` + - [(#7453)](https://github.com/microsoft/vcpkg/pull/7453) [gl2ps]Update to use vcpkg new functions(vcpkg_from_gitlab). + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- darknet `0.2.5-4` -> `0.2.5-5` + - [(#7450)](https://github.com/microsoft/vcpkg/pull/7450) [darknet] add training feature + +- g3log `2019-05-14-1` -> `2019-07-29` + - [(#7448)](https://github.com/microsoft/vcpkg/pull/7448) [g3log] Fix https://github.com/KjellKod/g3log/issues/319 + +- azure-storage-cpp `6.1.0` -> `6.1.0-2` + - [(#7404)](https://github.com/microsoft/vcpkg/pull/7404) [azure-storage-cpp] Removed gcov dependency in debug Linux build (#7311) + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- ace `6.5.5-1` -> `6.5.6` + - [(#7466)](https://github.com/microsoft/vcpkg/pull/7466) [ace] ace 6.5.6 + +- bullet3 `2.88` -> `2.88-1` + - [(#7474)](https://github.com/microsoft/vcpkg/pull/7474) [Bullet3] feature for multithreading + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- alembic `1.7.11-2` -> `1.7.11-3` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- ampl-mp `2019-03-21` -> `2019-03-21-1` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- anax `2.1.0-5` -> `2.1.0-6` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- apr `1.6.5-1` -> `1.6.5-2` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- blosc `1.16.3-1` -> `1.16.3-2` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- capnproto `0.7.0-2` -> `0.7.0-3` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- cgicc `3.2.19-1` -> `3.2.19-2` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- charls `2.0.0-1` -> `2.0.0-2` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- collada-dom `2.5.0-1` -> `2.5.0-2` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- ctemplate `2017-06-23-44b7c5-3` -> `2017-06-23-44b7c5-4` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- dlfcn-win32 `1.1.1-1` -> `1.1.1-2` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- easyloggingpp `9.96.7` -> `9.96.7-1` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- fastfeat `391d5e9` -> `391d5e9-1` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- fastlz `1.0-2` -> `1.0-3` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- freeglut `3.0.0-6` -> `3.0.0-7` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- glbinding `3.1.0-1` -> `3.1.0-2` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- glew `2.1.0-4` -> `2.1.0-5` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- glfw3 `3.3` -> `3.3-1` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- graphicsmagick `1.3.32` -> `1.3.32-1` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- hypre `2.11.2-1` -> `2.11.2-2` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + - [(#7142)](https://github.com/microsoft/vcpkg/pull/7142) [OpenMPI] add a new port + +- jack2 `1.9.12-1` -> `1.9.12-2` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- jxrlib `1.1-7` -> `1.1-8` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- kangaru `4.1.3-1` -> `4.1.3-2` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- libconfig `1.7.2` -> `1.7.2-1` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- libfreenect2 `0.2.0-2` -> `0.2.0-3` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- libmad `0.15.1-2` -> `0.15.1-3` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- libmspack `0.10.1` -> `0.10.1-1` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- libnice `0.1.15` -> `0.1.15-1` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- libodb-boost `2.4.0-2` -> `2.4.0-3` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- libodb-mysql `2.4.0-2` -> `2.4.0-3` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- libodb-pgsql `2.4.0-2` -> `2.4.0-3` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- libodb-sqlite `2.4.0-3` -> `2.4.0-4` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- libodb `2.4.0-4` -> `2.4.0-5` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- librabbitmq `0.9.0` -> `0.9.0-1` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- libsamplerate `0.1.9.0` -> `0.1.9.0-1` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- libwebsockets `3.1.0-2` -> `3.1.0-3` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- lmdb `0.9.23-1` -> `0.9.23-2` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- mozjpeg `3.2-2` -> `3.2-3` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- nanodbc `2.12.4-3` -> `2.12.4-4` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- nmslib `1.7.3.6` -> `1.7.3.6-1` + - [(#7468)](https://github.com/microsoft/vcpkg/pull/7468) Add PREFER_NINJA to many ports + +- amqpcpp `4.1.4` -> `4.1.5` + - [(#7475)](https://github.com/microsoft/vcpkg/pull/7475) [amqpcpp] Update library to v4.1.5 + +- cxxopts `2.1.2-1` -> `2.2.0` + - [(#7473)](https://github.com/microsoft/vcpkg/pull/7473) [cxxopts] Bumped to v2.2.0 + +- boost-mpi `1.70.0-1` -> `1.70.0-2` + - [(#7142)](https://github.com/microsoft/vcpkg/pull/7142) [OpenMPI] add a new port + +- hdf5 `1.10.5-7` -> `1.10.5-8` + - [(#7142)](https://github.com/microsoft/vcpkg/pull/7142) [OpenMPI] add a new port + +- kealib `1.4.11` -> `1.4.11-1` + - [(#7142)](https://github.com/microsoft/vcpkg/pull/7142) [OpenMPI] add a new port + +- parmetis `4.0.3-2` -> `4.0.3-3` + - [(#7142)](https://github.com/microsoft/vcpkg/pull/7142) [OpenMPI] add a new port + +- vtk `8.2.0-4` -> `8.2.0-5` + - [(#7142)](https://github.com/microsoft/vcpkg/pull/7142) [OpenMPI] add a new port + +
+ +-- vcpkg team vcpkg@microsoft.com THU, 01 Aug 07:00:00 -0800 + vcpkg (2019.6.30) --- #### Total port count: 1068 @@ -7,8 +629,8 @@ vcpkg (2019.6.30) |**x64-windows**|1006| |x86-windows|977| |x64-windows-static|895| -|**x64-osx**|823| -|**x64-linux**|755| +|**x64-osx**|755| +|**x64-linux**|823| |arm64-windows|654| |x64-uwp|532| |arm-uwp|504| diff --git a/docs/examples/overlay-triplets-linux-dynamic.md b/docs/examples/overlay-triplets-linux-dynamic.md index 6168d85e6fa..b2868e2fd5b 100644 --- a/docs/examples/overlay-triplets-linux-dynamic.md +++ b/docs/examples/overlay-triplets-linux-dynamic.md @@ -1,66 +1,41 @@ -# Overlay triplets example: build dynamic libraries on Linux +# Overlay triplets example -Using **vcpkg** you can build libraries for the following triplets: +## Building dynamic libraries on Linux -
- -
+Using **vcpkg** you can build libraries for many configurations out of the box. However, this doesn't currently include shared libraries on Linux and Mac OS. +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 with `--overlay-triplets` to easily build dynamic libraries on Linux. - -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 +### Step 1: 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 +```sh +~/git$ mkdir custom-triplets +~/git$ cp vcpkg/triplets/x64-linux.cmake custom-triplets/x64-linux-dynamic.cmake ``` And modify `custom-triplets/x64-linux-dynamic.cmake` to match the contents below: -``` +```cmake +# ~/git/custom-triplets/x64-linux-dynamic.cmake 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_LIBRARY_LINKAGE dynamic) # This changed from static to dynamic set(VCPKG_CMAKE_SYSTEM_NAME Linux) ``` -### Step 3: Use `--overlay-triplets` to build dynamic libraries +### Step 2: 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 +~/git$ vcpkg/vcpkg install sqlite3:x64-linux-dynamic --overlay-triplets=custom-triplets The following packages will be built and installed: - sqlite3[core]:x64-linux + sqlite3[core]:x64-linux-dynamic 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 +-- Loading triplet configuration from: /home/victor/git/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 @@ -84,7 +59,7 @@ The package sqlite3:x64-linux-dynamic provides CMake targets: 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`. +Overlay triplets enables 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: @@ -94,40 +69,33 @@ When using the `--overlay-triplets` option, a message like the following lets yo ## 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. +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 different with Linux and Mac OS where static libraries are built by `x64-linux` and `x64-osx`. 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 +### Step 1: Create the overlay triplets -Using the custom triplet created in the previous example, rename `custom-triplets/x64-linux-dynamic.cmake` to `custom-triplets/x64-linux.cmake`. +Using the custom triplet created in the previous example, rename `custom-triplets/x64-linux-dynamic.cmake` to `custom-triplets/x64-linux.cmake`. 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$ mv ../custom-triplets/x64-linux-dynamic.cmake ../custom-triplets/x64-linux.cmake +```sh +~/git$ mv custom-triplets/x64-linux-dynamic.cmake custom-triplets/x64-linux.cmake +~/git$ cp vcpkg/triplets/x64-linux.cmake custom-triplets/x64-linux-static.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 +### Step 2: 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 +~/git$ vcpkg/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 +-- Loading triplet configuration from: /home/victor/git/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 @@ -154,5 +122,5 @@ The package sqlite3:x64-linux provides CMake targets: Note that the default triplet is masked by your custom triplet: ``` --- Loading triplet configuration from: /home/custom-triplets/x64-linux.cmake +-- Loading triplet configuration from: /home/victor/git/custom-triplets/x64-linux.cmake ``` diff --git a/docs/index.md b/docs/index.md index 5d83b5804d4..b2f0a53b29b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -21,6 +21,11 @@ Vcpkg helps you manage C and C++ libraries on Windows, Linux and MacOS. This too - [Portfile functions](maintainers/portfile-functions.md) - [Maintainer Guidelines](maintainers/maintainer-guide.md) +### Tool Maintainer Help + +- [Testing](tool-maintainers/testing.md) +- [Maintainer Guidelines](maintainers/maintainer-guide.md) + ### Specifications - [Export](specifications/export-command.md) diff --git a/docs/tool-maintainers/testing.md b/docs/tool-maintainers/testing.md new file mode 100644 index 00000000000..28cc9e09907 --- /dev/null +++ b/docs/tool-maintainers/testing.md @@ -0,0 +1,162 @@ +Testing +======= + +Testing vcpkg is important whenever one makes changes to the tool itself, and +writing new tests and keeping them up to date is also very important. If one's +code is subtly broken, we'd rather find it out right away than a few weeks down +the line when someone complains! + +Running Tests +------------- + +Before anything else, we should know whether you can actually run the tests! +All you should need is a way to build vcpkg -- anything will do! All you have to +do is follow the guide 😄 + +With `$VCPKG_DIRECTORY` being the directory where you have cloned vcpkg, create +a build directory in `$VCPKG_DIRECTORY/toolsrc` (commonly named `out`), and +`cd` into it. Make sure to clean it out if it already exists! + +```sh +$ cmake .. -DCMAKE_BUILD_TYPE=Debug -G Ninja +$ cmake --build . +$ ./vcpkg-test # ./vcpkg-test [$SPECIFIC_TEST] for a specific set of tests +$ # i.e., ./vcpkg-test [arguments] +``` + +If you make any modifications to `vcpkg`, you'll have to do the +`cmake --build .` step again. + +Writing Tests +------------- + +In your journey to write new tests, and to modify existing tests, reading the +[Catch2 documentation] will be very helpful! Come back after reading those 😀 + +You'll want to place your tests in one of the existing files, or, if it doesn't +belong in any of those, in a [new file](#adding-new-test-files). + +The layout of these tests is as follows: + +```cpp +// ... includes + +TEST_CASE("Name of test", "[filename without the .cpp]") { + // setup and the like + REQUIRE(some boolean expression); +} + +// etc. +``` + +You want to give these test cases good, descriptive, unique names, like +`SourceParagraph construct minimum` -- it doesn't need to be extremely clear +english, and shorthand is good, but make sure it's clear what the test is from +the name. For the latter parameter, known as "tags", you should at least put the +name of the file which the test case is in -- e.g., in `arguments.cpp`, you'd +tag all of the test cases with `[arguments]`. + +If you wish to add helper functions, make sure to place them in an anonymous +namespace -- this will ensure that they don't trample over anybody else's +space. Additionally, there are a few helper functions that live in +`` and `src/vcpkg-test/util.cpp` -- make sure to look into +them so that you're not rewriting functionality. + +That should be all you need to know to start writing your own tests! +Remember to check out the [Catch2 documentation] +if you'd like to get more advanced with your tests, +and good luck on your testing journey! + +Adding New Test Files +--------------------- + +Adding new test files should be easy and straightforward. All it requires is +creating a new source file in `toolsrc/src/vcpkg-test`, and then rerunning +`CMake` in order to pick up the glob changes. + +### Example + +Let's try writing a new test file called `example` (very creative, I know). + +First, we should create a file, `example.cpp`, in `toolsrc/src/vcpkg-test`: + +```cpp +// vcpkg-test/example.cpp +#include +``` + +This is the minimum file needed for tests; let's rebuild our CMake directory. +You'll have to clean out the existing `out` directory for CMake to rerun +globbing. + +```sh +$ cmake .. -DCMAKE_BUILD_TYPE=Debug -G Ninja +# ... +-- Build files have been written to: $VCPKG_DIRECTORY/toolsrc/out +$ cmake --build . +[80/80] Linking CXX executable vcpkg.exe +``` + +Okay, now let's make sure this worked; add a test case to `example.cpp`: + +```cpp +TEST_CASE("Example 1 - fail", "[example]") { + REQUIRE(false); +} +``` + +Now build the tests again, and run them: + +```sh +$ cmake --build . +[2/2] Linking CXX executable vcpkg-test.exe +$ ./vcpkg-test + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +vcpkg-test.exe is a Catch v2.9.1 host application. +Run with -? for options + +------------------------------------------------------------------------------- +Example 1 - fail +------------------------------------------------------------------------------- +$VCPKG_DIRECTORY/toolsrc/src/vcpkg-test/example.cpp(3) +............................................................................... + +$VCPKG_DIRECTORY/toolsrc/src/vcpkg-test/example.cpp(14): FAILED: + REQUIRE( false ) + +=============================================================================== +test cases: 102 | 101 passed | 1 failed +assertions: 3611 | 3610 passed | 1 failed +``` + +Hopefully, that worked! It should compile correctly, and have one failing test. +Now let's try a more complex test, after deleting the old one; + +```cpp +// add #include to the top of the file +namespace Strings = vcpkg::Strings; + +TEST_CASE("Example 2 - success", "[example]") { + std::string hello = "Hello"; + REQUIRE(Strings::case_insensitive_ascii_equals(hello, "hELLo")); + REQUIRE_FALSE(Strings::case_insensitive_ascii_starts_with(hello, "E")); +} +``` + +Now compile and build the tests, and this time let's only run our example tests: + +```sh +$ cmake --build . +[2/2] Linking CXX executable vcpkg-test.exe +$ ./vcpkg-test [example] +Filters: [example] +=============================================================================== +All tests passed (2 assertions in 1 test case) +``` + +Hopefully you have one test running and succeeding! If you have that, you have +succeeded at adding a new file to vcpkg's tests. Congratulations! Have fun on +the rest of your journey 🐱‍👤😁 + +[Catch2 documentation]: https://github.com/catchorg/Catch2/blob/master/docs/tutorial.md#top diff --git a/ports/ace/CONTROL b/ports/ace/CONTROL index 4153cdc48a3..64ef8442537 100644 --- a/ports/ace/CONTROL +++ b/ports/ace/CONTROL @@ -1,5 +1,5 @@ Source: ace -Version: 6.5.5-1 +Version: 6.5.6 Homepage: https://www.dre.vanderbilt.edu/~schmidt/ACE.html Description: The ADAPTIVE Communication Environment diff --git a/ports/ace/portfile.cmake b/ports/ace/portfile.cmake index 264829dfb2b..81c9534d056 100644 --- a/ports/ace/portfile.cmake +++ b/ports/ace/portfile.cmake @@ -28,9 +28,9 @@ set(ACE_ROOT ${CURRENT_BUILDTREES_DIR}/src/ACE_wrappers) set(ENV{ACE_ROOT} ${ACE_ROOT}) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/ACE_wrappers/ace) vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-6_5_5/ACE-src-6.5.5.zip" - FILENAME ACE-src-6.5.5.zip - SHA512 65696e6f2776fd9c015adb78a92f1c87edacde62ff11f20f88c416d4420a6fc6e5176412c5f93262d06e67b89717499f8108f68582f70fea6ce05466c53415e9 + URLS "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-6_5_6/ACE-src-6.5.6.zip" + FILENAME ACE-src-6.5.6.zip + SHA512 4ee42aafc86af159ab20dbb14c7c2a49bed733645f5cc3afa8cef3e9688ff929002f3420eb33e859afe10a534afc276340faa21d029fa56bd07bd9aed3403ab4 ) vcpkg_extract_source_archive(${ARCHIVE}) diff --git a/ports/ade/CONTROL b/ports/ade/CONTROL index ccce7f1dbac..28fd3328f21 100644 --- a/ports/ade/CONTROL +++ b/ports/ade/CONTROL @@ -1,3 +1,3 @@ Source: ade -Version: 0.1.1d +Version: 0.1.1e Description: ADE Framework is a graph construction, manipulation, and processing framework. ADE Framework is suitable for organizing data flow processing and execution. \ No newline at end of file diff --git a/ports/ade/portfile.cmake b/ports/ade/portfile.cmake index 95d001828ae..198e64b006e 100644 --- a/ports/ade/portfile.cmake +++ b/ports/ade/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO opencv/ade - REF v0.1.1d - SHA512 c493cb57e59ba859ca0cbf5d48bae4233f22104dfb4a96864d07e9422bb700c27af2d53a602f2230d68b7bcc598920d0652c3d9fdf8fad94a7e5b4d21664a44e + REF v0.1.1e + SHA512 6271b3a6d23b155757a47b21f70cb169b0469501bd1a7c99aa91a76117387840e02b4c70dc4069b7c50408f760b9a7ea77527a30b4691048a1ee55dd94988dd5 HEAD_REF master ) diff --git a/ports/alembic/CONTROL b/ports/alembic/CONTROL index a1a47a3ff9e..9c886b75578 100644 --- a/ports/alembic/CONTROL +++ b/ports/alembic/CONTROL @@ -1,5 +1,5 @@ Source: alembic -Version: 1.7.11-2 +Version: 1.7.11-4 Build-Depends: ilmbase, hdf5 Description: Alembic is an open framework for storing and sharing scene data that includes a C++ library, a file format, and client plugins and applications. Homepage: https://alembic.io/ diff --git a/ports/alembic/bypass-findhdf5.patch b/ports/alembic/bypass-findhdf5.patch deleted file mode 100644 index 91cb37fab70..00000000000 --- a/ports/alembic/bypass-findhdf5.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index ce0a8e0..229fc77 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -226,7 +226,24 @@ INCLUDE_DIRECTORIES(${ALEMBIC_ILMBASE_INCLUDE_DIRECTORY}) - IF (USE_HDF5) - FIND_PACKAGE(ZLIB REQUIRED) - SET(ALEMBIC_WITH_HDF5 "1") -- INCLUDE("./cmake/AlembicHDF5.cmake") -+ #INCLUDE("./cmake/AlembicHDF5.cmake") -+ FIND_LIBRARY(HDF5_LIBRARIES_RELEASE -+ NAMES hdf5 -+ PATHS ${HDF5_ROOT}/lib -+ ) -+ MESSAGE(STATUS ${HDF5_LIBRARIES_RELEASE}) -+ FIND_LIBRARY(HDF5_LIBRARIES_DEBUG -+ NAMES hdf5_D -+ PATHS ${HDF5_ROOT}/debug/lib -+ ) -+ MESSAGE(STATUS ${HDF5_LIBRARIES_DEBUG}) -+ SET(HDF5_LIBRARIES -+ optimized ${HDF5_LIBRARIES_RELEASE} -+ debug ${HDF5_LIBRARIES_DEBUG} -+ ) -+ SET(HDF5_INCLUDE_DIRS -+ ${HDF5_ROOT}/include -+ ) - INCLUDE_DIRECTORIES(${HDF5_INCLUDE_DIRS}) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DH5_USE_18_API") - ENDIF() diff --git a/ports/alembic/fix-hdf5link.patch b/ports/alembic/fix-hdf5link.patch deleted file mode 100644 index b9729f1cad8..00000000000 --- a/ports/alembic/fix-hdf5link.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/lib/Alembic/CMakeLists.txt b/lib/Alembic/CMakeLists.txt -index 5028c91..1f81d50 100644 ---- a/lib/Alembic/CMakeLists.txt -+++ b/lib/Alembic/CMakeLists.txt -@@ -49,6 +49,12 @@ ADD_SUBDIRECTORY(AbcMaterial) - ADD_SUBDIRECTORY(Ogawa) - - ADD_LIBRARY(Alembic ${LIB_TYPE} ${CXX_FILES}) -+IF (USE_HDF5) -+ TARGET_LINK_LIBRARIES(Alembic -+ ${HDF5_LIBRARIES} -+ ) -+ ADD_DEFINITIONS(-DH5_BUILT_AS_DYNAMIC_LIB) -+ENDIF() - - TARGET_INCLUDE_DIRECTORIES(Alembic - PUBLIC diff --git a/ports/alembic/portfile.cmake b/ports/alembic/portfile.cmake index 8b3e8568d05..2d000871f9f 100644 --- a/ports/alembic/portfile.cmake +++ b/ports/alembic/portfile.cmake @@ -16,16 +16,14 @@ vcpkg_from_github( SHA512 94b9c218a2fe6e2e24205aff4a2f6bab784851c2aa15592fb60ea91f0e8038b0c0656a118f3a5cba0d3de8917dd90b74d0e2d1c4ac034b9ee3f5d0741d9f6b70 HEAD_REF master PATCHES - fix-hdf5link.patch - bypass-findhdf5.patch fix-C1083.patch ) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DUSE_HDF5=ON - -DHDF5_ROOT=${CURRENT_INSTALLED_DIR} ) vcpkg_install_cmake() diff --git a/ports/ampl-mp/CONTROL b/ports/ampl-mp/CONTROL index 84523e28147..d45564c4f32 100644 --- a/ports/ampl-mp/CONTROL +++ b/ports/ampl-mp/CONTROL @@ -1,3 +1,3 @@ Source: ampl-mp -Version: 2019-03-21 +Version: 2019-03-21-1 Description: An open-source library for mathematical programming diff --git a/ports/ampl-mp/portfile.cmake b/ports/ampl-mp/portfile.cmake index dafdb10fd4a..00d577e56ad 100644 --- a/ports/ampl-mp/portfile.cmake +++ b/ports/ampl-mp/portfile.cmake @@ -20,6 +20,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DBUILD=asl -DBUILD_TESTING=OFF diff --git a/ports/amqpcpp/CONTROL b/ports/amqpcpp/CONTROL index d0642edb4c6..4e8799805d1 100644 --- a/ports/amqpcpp/CONTROL +++ b/ports/amqpcpp/CONTROL @@ -1,4 +1,4 @@ Source: amqpcpp -Version: 4.1.4 +Version: 4.1.5 Description: AMQP-CPP is a C++ library for communicating with a RabbitMQ message broker Build-Depends: openssl (linux) diff --git a/ports/amqpcpp/portfile.cmake b/ports/amqpcpp/portfile.cmake index 697b8f80257..7f4847903e5 100644 --- a/ports/amqpcpp/portfile.cmake +++ b/ports/amqpcpp/portfile.cmake @@ -5,8 +5,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CopernicaMarketingSoftware/AMQP-CPP - REF v4.1.4 - SHA512 d589756ad8e27ce6b6772128479083293c4dbb8c7aa79b7b08f0036ced9ab76ecb75e55458f04de8e2745c9732a6322f4e910f3f8611633c5cd5c35fb7dcaed1 + REF v4.1.5 + SHA512 71c54ddf43230fb3e9726257b073d117a329030052f768f985c2e9ebde5a320f0042d2ef67604b87940bfa1ed61339c334af0362238d10f30845521dff8ce43c HEAD_REF master PATCHES find-openssl.patch diff --git a/ports/anax/CONTROL b/ports/anax/CONTROL index 14b10c9af9f..a672637cf68 100644 --- a/ports/anax/CONTROL +++ b/ports/anax/CONTROL @@ -1,4 +1,4 @@ Source: anax -Version: 2.1.0-5 +Version: 2.1.0-6 Description: An open source C++ entity system. Homepage: https://github.com/miguelmartin75/anax diff --git a/ports/anax/portfile.cmake b/ports/anax/portfile.cmake index 346e45edb14..bdecbf39e51 100644 --- a/ports/anax/portfile.cmake +++ b/ports/anax/portfile.cmake @@ -14,6 +14,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA DISABLE_PARALLEL_CONFIGURE ) diff --git a/ports/apr/CONTROL b/ports/apr/CONTROL index 7a35c5b48de..41c7c453ac4 100644 --- a/ports/apr/CONTROL +++ b/ports/apr/CONTROL @@ -1,5 +1,5 @@ Source: apr -Version: 1.6.5-1 +Version: 1.6.5-2 Homepage: https://apr.apache.org/ Description: The Apache Portable Runtime (APR) is a C library that forms a system portability layer that covers many operating systems. diff --git a/ports/apr/portfile.cmake b/ports/apr/portfile.cmake index 1e9de7ffb63..6ef062bf368 100644 --- a/ports/apr/portfile.cmake +++ b/ports/apr/portfile.cmake @@ -22,6 +22,7 @@ endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DINSTALL_PDB=OFF -DMIN_WINDOWS_VER=Windows7 diff --git a/ports/argh/CONTROL b/ports/argh/CONTROL index 36c062da43b..db804708f68 100644 --- a/ports/argh/CONTROL +++ b/ports/argh/CONTROL @@ -1,3 +1,3 @@ Source: argh -Version: 2018-12-18 +Version: 2018-12-18-1 Description: Argh! A minimalist argument handler. diff --git a/ports/argh/portfile.cmake b/ports/argh/portfile.cmake index 5e8b8bccda2..40e7fbc8411 100644 --- a/ports/argh/portfile.cmake +++ b/ports/argh/portfile.cmake @@ -13,6 +13,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA + DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF diff --git a/ports/azure-storage-cpp/CONTROL b/ports/azure-storage-cpp/CONTROL index 720f07efb36..563c3d15fc2 100644 --- a/ports/azure-storage-cpp/CONTROL +++ b/ports/azure-storage-cpp/CONTROL @@ -1,5 +1,5 @@ Source: azure-storage-cpp -Version: 6.1.0 +Version: 6.1.0-2 Build-Depends: cpprestsdk[core], atlmfc (windows), boost-log (!windows&!uwp), boost-locale (!windows&!uwp), libxml2 (!windows&!uwp), libuuid (!windows&!uwp&!osx), gettext Description: Microsoft Azure Storage Client SDK for C++ A client library for working with Microsoft Azure storage services including blobs, files, tables, and queues. This client library enables working with the Microsoft Azure storage services which include the blob service for storing binary and text data, the file service for storing binary and text data, the table service for storing structured non-relational data, and the queue service for storing messages that may be accessed by a client. diff --git a/ports/azure-storage-cpp/portfile.cmake b/ports/azure-storage-cpp/portfile.cmake index 0a9662af36c..b558fa51d58 100644 --- a/ports/azure-storage-cpp/portfile.cmake +++ b/ports/azure-storage-cpp/portfile.cmake @@ -13,10 +13,12 @@ vcpkg_from_github( PATCHES # on osx use the uuid.h that is part of the osx sdk builtin-uuid-osx.patch + remove-gcov-dependency.patch ) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH}/Microsoft.WindowsAzure.Storage + PREFER_NINJA OPTIONS -DCMAKE_FIND_FRAMEWORK=LAST -DBUILD_TESTS=OFF diff --git a/ports/azure-storage-cpp/remove-gcov-dependency.patch b/ports/azure-storage-cpp/remove-gcov-dependency.patch new file mode 100644 index 00000000000..7083fe3fafe --- /dev/null +++ b/ports/azure-storage-cpp/remove-gcov-dependency.patch @@ -0,0 +1,14 @@ +diff --git a/Microsoft.WindowsAzure.Storage/src/CMakeLists.txt b/Microsoft.WindowsAzure.Storage/src/CMakeLists.txt +index 6443f8e..db20749 100644 +--- a/Microsoft.WindowsAzure.Storage/src/CMakeLists.txt ++++ b/Microsoft.WindowsAzure.Storage/src/CMakeLists.txt +@@ -63,9 +63,6 @@ if(UNIX OR WIN32) + ) + endif() + +-if ("${CMAKE_BUILD_TYPE}" MATCHES "Debug") +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") +-endif() + if (APPLE) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNINGS}") + else() diff --git a/ports/basisu/CONTROL b/ports/basisu/CONTROL index f514dbf2513..f31edab0774 100644 --- a/ports/basisu/CONTROL +++ b/ports/basisu/CONTROL @@ -1,5 +1,5 @@ Source: basisu -Version: 0.0.1 +Version: 0.0.1-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 index 02956b584e0..7882f0d2267 100644 --- a/ports/basisu/portfile.cmake +++ b/ports/basisu/portfile.cmake @@ -10,6 +10,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DBUILD_TESTS=OFF ) diff --git a/ports/blosc/CONTROL b/ports/blosc/CONTROL index 4dc7bf81f83..3cbed267fd7 100644 --- a/ports/blosc/CONTROL +++ b/ports/blosc/CONTROL @@ -1,5 +1,5 @@ Source: blosc -Version: 1.16.3-1 +Version: 1.17.0 Build-Depends: lz4, snappy, zlib, zstd Homepage: https://github.com/Blosc/c-blosc Description: A blocking, shuffling and loss-less compression library that can be faster than `memcpy()` diff --git a/ports/blosc/portfile.cmake b/ports/blosc/portfile.cmake index 367c591944f..489e9744870 100644 --- a/ports/blosc/portfile.cmake +++ b/ports/blosc/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Blosc/c-blosc - REF v1.16.3 - SHA512 2ff67a6e955a641c3a2330140e5887d0ce3fdcbf6b205507798a4e848a35ba2e22bf8fd91133291bc73c4e48fb01c02139e47ab8e4774d0e2288872e625c9ffd + REF v1.17.0 + SHA512 7fe517e9d050a36839ddf963e718881533cc10a7c8963222b3167fd48ec84455614206c1cc2c248f52042a019262fa0419c4c1a828eb1ae64294c55bbaf56f6e HEAD_REF master ) @@ -20,6 +20,7 @@ file(REMOVE_RECURSE ${SOURCE_PATH}/internal-complibs) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DPREFER_EXTERNAL_LZ4=ON -DPREFER_EXTERNAL_SNAPPY=ON -DPREFER_EXTERNAL_ZLIB=ON diff --git a/ports/bond/CONTROL b/ports/bond/CONTROL index 6e5daf0a901..a4361dfb042 100644 --- a/ports/bond/CONTROL +++ b/ports/bond/CONTROL @@ -1,6 +1,6 @@ -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 +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/boost-callable-traits/CONTROL b/ports/boost-callable-traits/CONTROL index af030d66fe3..7539e399ea4 100644 --- a/ports/boost-callable-traits/CONTROL +++ b/ports/boost-callable-traits/CONTROL @@ -1,6 +1,6 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-callable-traits -Version: 1.70.0 +Version: 2.3.2 Build-Depends: boost-vcpkg-helpers Homepage: https://github.com/boostorg/callable_traits Description: Boost callable_traits module diff --git a/ports/boost-callable-traits/portfile.cmake b/ports/boost-callable-traits/portfile.cmake index 8bc97f73827..05e67919b3f 100644 --- a/ports/boost-callable-traits/portfile.cmake +++ b/ports/boost-callable-traits/portfile.cmake @@ -5,8 +5,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/callable_traits - REF boost-1.70.0 - SHA512 73742aa4094cef8f4b24833036f99449343dd6c572919db8fb464f76dc527d99a5a57e52bbfe6b20089041aa43ecb7a87ec528a7aea2fef5a8b15f6ced553769 + REF 2.3.2 + SHA512 32d69cc0bdaecfcf69f9e6079f6b80738ea95937cb2ef802d4d26771745c0d7179c9074ed6312ef1c2d45cf1711979ecf9a8407677d18e625bfb859bca1aa319 HEAD_REF master ) diff --git a/ports/boost-mpi/CONTROL b/ports/boost-mpi/CONTROL index 3e788cd09ae..8440a2f9590 100644 --- a/ports/boost-mpi/CONTROL +++ b/ports/boost-mpi/CONTROL @@ -1,6 +1,6 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-mpi -Version: 1.70.0-1 -Build-Depends: boost-assert, boost-build, boost-compatibility, boost-config, boost-core, boost-foreach, boost-function, boost-graph, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-modular-build-helper, boost-mpl, boost-optional, boost-property-map, boost-python (windows), boost-serialization, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, msmpi +Version: 1.70.0-2 +Build-Depends: boost-assert, boost-build, boost-compatibility, boost-config, boost-core, boost-foreach, boost-function, boost-graph, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-modular-build-helper, boost-mpl, boost-optional, boost-property-map, boost-python (windows), boost-serialization, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, mpi Homepage: https://github.com/boostorg/mpi Description: Boost mpi module diff --git a/ports/boost-vcpkg-helpers/generate-ports.ps1 b/ports/boost-vcpkg-helpers/generate-ports.ps1 index 7ab6c968096..8a6dc79d10f 100644 --- a/ports/boost-vcpkg-helpers/generate-ports.ps1 +++ b/ports/boost-vcpkg-helpers/generate-ports.ps1 @@ -368,7 +368,7 @@ foreach ($library in $libraries) } elseif ($library -eq "mpi") { - $deps += @("msmpi") + $deps += @("mpi") } Generate ` diff --git a/ports/brigand/CONTROL b/ports/brigand/CONTROL new file mode 100644 index 00000000000..2fba63f7708 --- /dev/null +++ b/ports/brigand/CONTROL @@ -0,0 +1,6 @@ +Source: brigand +Version: 1.3.0 +Homepage: https://github.com/edouarda/brigand +Description: Brigand is a light-weight, fully functional, instant-compile time C++ 11 meta-programming library. +Build-Depends: boost + diff --git a/ports/brigand/fix-install-targets.patch b/ports/brigand/fix-install-targets.patch new file mode 100644 index 00000000000..248948ab1a1 --- /dev/null +++ b/ports/brigand/fix-install-targets.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 13ea689..9d20700 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -292,3 +292,9 @@ install(DIRECTORY ${PROJECT_SOURCE_DIR}/brigand + install(FILES ${CMAKE_BINARY_DIR}/libbrigand.pc + DESTINATION lib/pkgconfig + ) ++ ++install(TARGETS brigand ++ RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib ++) diff --git a/ports/brigand/portfile.cmake b/ports/brigand/portfile.cmake new file mode 100644 index 00000000000..c7c17907f56 --- /dev/null +++ b/ports/brigand/portfile.cmake @@ -0,0 +1,29 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO edouarda/brigand + REF 1.3.0 + SHA512 538d288d84265cc9a4563f1e84d55a174db461ffd1e4f510bfdaef04af9fbf8e7ca79817f9118378bf7d58d578699aae3072bbffa3fd727b2d93ee783337aea6 + HEAD_REF master + PATCHES fix-install-targets.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/pkgconfig) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) + +# Handle copyright +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright) + diff --git a/ports/bullet3/CONTROL b/ports/bullet3/CONTROL index 437908356e4..d313255a5e9 100644 --- a/ports/bullet3/CONTROL +++ b/ports/bullet3/CONTROL @@ -1,4 +1,7 @@ Source: bullet3 -Version: 2.88 +Version: 2.88-1 Homepage: https://github.com/bulletphysics/bullet3 Description: Bullet Physics is a professional collision detection, rigid body, and soft body dynamics library + +Feature: multithreading +Description: Multithreading funcitonality for bullet3 \ No newline at end of file diff --git a/ports/bullet3/portfile.cmake b/ports/bullet3/portfile.cmake index aef9757a712..031ddf23fa0 100644 --- a/ports/bullet3/portfile.cmake +++ b/ports/bullet3/portfile.cmake @@ -10,8 +10,14 @@ vcpkg_from_github( HEAD_REF master ) +set(BULLET_MULTITHREADING OFF) +if ("multithreading" IN_LIST FEATURES) + set(BULLET_MULTITHREADING ON) +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DUSE_MSVC_RUNTIME_LIBRARY_DLL=ON -DBUILD_DEMOS=OFF @@ -21,6 +27,7 @@ vcpkg_configure_cmake( -DBUILD_EXTRAS=OFF -DBUILD_UNIT_TESTS=OFF -DINSTALL_LIBS=ON + -DBULLET2_MULTITHREADING=${BULLET_MULTITHREADING} ) vcpkg_install_cmake() diff --git a/ports/capnproto/CONTROL b/ports/capnproto/CONTROL index 694469b1fb7..02cc080f17e 100644 --- a/ports/capnproto/CONTROL +++ b/ports/capnproto/CONTROL @@ -1,5 +1,5 @@ Source: capnproto -Version: 0.7.0-2 +Version: 0.7.0-3 Description: Data interchange format and capability-based RPC system Homepage: https://capnproto.org/ Build-Depends: zlib diff --git a/ports/capnproto/portfile.cmake b/ports/capnproto/portfile.cmake index 5c189acc7fc..4e149a03565 100644 --- a/ports/capnproto/portfile.cmake +++ b/ports/capnproto/portfile.cmake @@ -15,7 +15,10 @@ vcpkg_from_github( PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-fix-capnpc-extension-handling-on-Windows.patch" ) -vcpkg_configure_cmake(SOURCE_PATH ${SOURCE_PATH}) +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) vcpkg_install_cmake() diff --git a/ports/casclib/CMakeLists.txt b/ports/casclib/CMakeLists.txt index 4165814f560..ad05df424cd 100644 --- a/ports/casclib/CMakeLists.txt +++ b/ports/casclib/CMakeLists.txt @@ -1,22 +1,13 @@ cmake_minimum_required(VERSION 3.9) -project(CascLib) -set(HEADER_FILES - src/CascCommon.h - src/CascLib.h - src/CascLib.def - src/CascPort.h - src/common/Array.h - src/common/Common.h - src/common/Csv.h - src/common/FileStream.h - src/common/FileTree.h - src/common/ListFile.h - src/common/Map.h - src/jenkins/lookup.h -) +project(casclib) +set(PROJECT_VERSION_MAJOR 1) +set(PROJECT_VERSION_MINOR 50) + +option(INSTALL_HEADERS "Install header files" ON) set(SRC_FILES + src/CascLib.def src/CascCommon.cpp src/CascDecompress.cpp src/CascDecrypt.cpp @@ -57,18 +48,36 @@ set(ZLIB_FILES src/zlib/zutil.c ) +add_library(casclib ${SRC_FILES} ${ZLIB_FILES} ${MD5_FILES}) +target_include_directories(casclib + PUBLIC + $ + $) if(WIN32) - add_definitions(-DUNICODE -D_UNICODE) + target_compile_definitions(casclib PRIVATE UNICODE _UNICODE) endif() -add_library(CascLib ${SRC_FILES} ${HEADER_FILES} ${TOMCRYPT_FILES} ${ZLIB_FILES} ${MD5_FILES}) +install(TARGETS casclib + EXPORT casclibTargets + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib +) -set_target_properties(CascLib PROPERTIES PUBLIC_HEADER "src/CascLib.h;src/CascPort.h") +include(CMakePackageConfigHelpers) -install(TARGETS CascLib - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - FRAMEWORK DESTINATION /Library/Frameworks - PUBLIC_HEADER DESTINATION include - INCLUDES DESTINATION include) \ No newline at end of file +set(VERSION_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/temp/casclibConfigVersion.cmake") +set(PROJECT_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/temp/casclibConfig.cmake") +set(INSTALL_DIR "share/casclib") + +write_basic_package_version_file("${VERSION_CONFIG}" VERSION 1.50 COMPATIBILITY SameMajorVersion) +configure_package_config_file("Config.cmake.in" + "${PROJECT_CONFIG}" + INSTALL_DESTINATION "${INSTALL_DIR}") + +install(FILES "${PROJECT_CONFIG}" "${VERSION_CONFIG}" DESTINATION "${INSTALL_DIR}") +install(EXPORT casclibTargets DESTINATION "${INSTALL_DIR}") + +if(INSTALL_HEADERS) + install(FILES "src/CascLib.h" "src/CascPort.h" DESTINATION include/casclib) +endif() diff --git a/ports/casclib/CONTROL b/ports/casclib/CONTROL index a9a10ac9bfc..4622f5200c6 100644 --- a/ports/casclib/CONTROL +++ b/ports/casclib/CONTROL @@ -1,4 +1,4 @@ Source: casclib -Version: 1.50 +Version: 1.50-1 Build-Depends: zlib -Description: An open-source implementation of library for reading CASC storage from Blizzard games since 2014 \ No newline at end of file +Description: An open-source implementation of library for reading CASC storage from Blizzard games since 2014 diff --git a/ports/casclib/Config.cmake.in b/ports/casclib/Config.cmake.in new file mode 100644 index 00000000000..96f5154279d --- /dev/null +++ b/ports/casclib/Config.cmake.in @@ -0,0 +1,7 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +find_dependency(ZLIB REQUIRED) + +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +check_required_components("@PROJECT_NAME@") diff --git a/ports/casclib/portfile.cmake b/ports/casclib/portfile.cmake index bf17bc54518..9604ac618e7 100644 --- a/ports/casclib/portfile.cmake +++ b/ports/casclib/portfile.cmake @@ -10,14 +10,24 @@ vcpkg_from_github( ctype_for_mac.patch ) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) +file(COPY + ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt + ${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in + DESTINATION + ${SOURCE_PATH} +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA + OPTIONS_DEBUG + -DINSTALL_HEADERS=OFF ) vcpkg_install_cmake() -file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/casclib RENAME copyright) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) \ No newline at end of file +vcpkg_fixup_cmake_targets() + +file(INSTALL ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/casclib + RENAME copyright) diff --git a/ports/catch2/CONTROL b/ports/catch2/CONTROL index 1a8c9265d60..bba0085bb7f 100644 --- a/ports/catch2/CONTROL +++ b/ports/catch2/CONTROL @@ -1,4 +1,4 @@ Source: catch2 -Version: 2.7.2-2 +Version: 2.9.1-1 Description: A modern, header-only test framework for unit testing. Homepage: https://github.com/catchorg/Catch2 diff --git a/ports/catch2/portfile.cmake b/ports/catch2/portfile.cmake index d7909857286..009696c4000 100644 --- a/ports/catch2/portfile.cmake +++ b/ports/catch2/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO catchorg/Catch2 - REF v2.7.2 - SHA512 ac58cb3b676c73a361a494492e7b1f1b85cba7d08feb2d09b2269109a89b66aa37efead6b0a9fca64678f42a3395a3b02b6d461b4cb35310451ce849a79d04ae + REF v2.9.1 + SHA512 ea18eef1fece72518c8a46b89727f5d0545a15038957087324abe6421c682693379476ff46106132f080677ebcc1c9ead51a9cf25dced3bb576a33e4f6fae4f6 HEAD_REF master ) diff --git a/ports/ccfits/CONTROL b/ports/ccfits/CONTROL index 18937d5e793..f6eb51488b1 100644 --- a/ports/ccfits/CONTROL +++ b/ports/ccfits/CONTROL @@ -1,5 +1,5 @@ Source: ccfits -Version: 2.5-2 +Version: 2.5-3 Homepage: https://heasarc.gsfc.nasa.gov/fitsio/ccfits Description: CCfits is an object oriented interface to the cfitsio library. It is designed to make the capabilities of cfitsio available to programmers working in C++. Build-Depends: cfitsio diff --git a/ports/ccfits/dll_exports.patch b/ports/ccfits/dll_exports.patch index 4ec4a8284b3..6321cbb4e42 100644 --- a/ports/ccfits/dll_exports.patch +++ b/ports/ccfits/dll_exports.patch @@ -1,10 +1,7 @@ -Index: FITS.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- FITS.h (date 1502267716000) -+++ FITS.h (revision ) +diff --git a/FITS.h b/FITS.h +index e21f3db..3e97c83 100644 +--- a/FITS.h ++++ b/FITS.h @@ -21,6 +21,8 @@ #include "HDUCreator.h" // FitsError @@ -14,42 +11,33 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP namespace CCfits { class FITSBase; -@@ -665,9 +667,8 @@ +@@ -665,7 +667,7 @@ do this either). - class FITS -- { -- -+ class CCFITS_EXPORT FITS -+ { ++ class CCFITS_EXPORT FITS + { + public: - - -Index: HDU.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- HDU.h (date 1502267716000) -+++ HDU.h (revision ) -@@ -568,7 +568,7 @@ +diff --git a/HDU.h b/HDU.h +index 07f68e7..047e731 100644 +--- a/HDU.h ++++ b/HDU.h +@@ -568,7 +568,7 @@ and return its value. - class HDU -+ class CCFITS_EXPORT HDU ++ class CCFITS_EXPORT HDU { public: -Index: Table.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- Table.h (date 1502267716000) -+++ Table.h (revision ) -@@ -268,7 +268,7 @@ +diff --git a/Table.h b/Table.h +index a0c1afe..9a8a5db 100644 +--- a/Table.h ++++ b/Table.h +@@ -268,7 +268,7 @@ namespace CCfits { @@ -58,19 +46,16 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { public: -Index: Column.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- Column.h (date 1502267716000) -+++ Column.h (revision ) -@@ -838,14 +838,14 @@ +diff --git a/Column.h b/Column.h +index e4496a7..b798947 100644 +--- a/Column.h ++++ b/Column.h +@@ -838,14 +838,14 @@ namespace CCfits { - class Column -+ class CCFITS_EXPORT Column ++ class CCFITS_EXPORT Column { public: @@ -82,7 +67,7 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { public: RangeError (const String& msg, bool silent = true); -@@ -857,7 +857,7 @@ +@@ -857,7 +857,7 @@ namespace CCfits { @@ -91,7 +76,7 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { public: InvalidDataType (const String& str = string(), bool silent = true); -@@ -869,7 +869,7 @@ +@@ -869,7 +869,7 @@ namespace CCfits { @@ -100,7 +85,7 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { public: InvalidRowParameter (const String& diag, bool silent = true); -@@ -881,7 +881,7 @@ +@@ -881,7 +881,7 @@ namespace CCfits { @@ -109,7 +94,7 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { public: WrongColumnType (const String& diag, bool silent = true); -@@ -893,7 +893,7 @@ +@@ -893,7 +893,7 @@ namespace CCfits { @@ -118,7 +103,7 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { public: UnspecifiedLengths (const String& diag, bool silent = true); -@@ -905,7 +905,7 @@ +@@ -905,7 +905,7 @@ namespace CCfits { @@ -127,7 +112,7 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { public: InvalidRowNumber (const String& diag, bool silent = true); -@@ -917,7 +917,7 @@ +@@ -917,7 +917,7 @@ namespace CCfits { @@ -136,7 +121,7 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { public: InsufficientElements (const String& msg, bool silent = true); -@@ -929,7 +929,7 @@ +@@ -929,7 +929,7 @@ namespace CCfits { @@ -145,7 +130,7 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { public: NoNullValue (const String& diag, bool silent = true); -@@ -941,7 +941,7 @@ +@@ -941,7 +941,7 @@ namespace CCfits { @@ -154,14 +139,11 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { public: InvalidNumberOfRows (int number, bool silent = true); -Index: AsciiTable.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- AsciiTable.h (date 1502267716000) -+++ AsciiTable.h (revision ) -@@ -133,7 +133,7 @@ +diff --git a/AsciiTable.h b/AsciiTable.h +index 620cf41..d03aa44 100644 +--- a/AsciiTable.h ++++ b/AsciiTable.h +@@ -133,7 +133,7 @@ namespace CCfits { @@ -170,14 +152,11 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { public: -Index: CCfits.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- CCfits.h (date 1502267716000) -+++ CCfits.h (revision ) -@@ -23,7 +23,7 @@ +diff --git a/CCfits.h b/CCfits.h +index d09438a..a62b8a6 100644 +--- a/CCfits.h ++++ b/CCfits.h +@@ -23,7 +23,7 @@ namespace CCfits { #include #include "longnam.h" #include "float.h" @@ -186,7 +165,7 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP namespace CCfits { /*! \namespace CCfits -@@ -32,8 +32,8 @@ +@@ -32,8 +32,8 @@ namespace CCfits { static const int BITPIX = -32; static const int NAXIS = 2; static const int MAXDIM = 99; @@ -197,46 +176,37 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP extern char BSCALE[7]; extern char BZERO[6]; -Index: FITSBase.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- FITSBase.h (date 1502267716000) -+++ FITSBase.h (revision ) -@@ -30,7 +30,7 @@ +diff --git a/FITSBase.h b/FITSBase.h +index 996fdae..0c985f9 100644 +--- a/FITSBase.h ++++ b/FITSBase.h +@@ -30,7 +30,7 @@ namespace CCfits { - class FITSBase -+ class CCFITS_EXPORT FITSBase ++ class CCFITS_EXPORT FITSBase { public: -Index: Keyword.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- Keyword.h (date 1502267716000) -+++ Keyword.h (revision ) -@@ -195,7 +195,7 @@ +diff --git a/Keyword.h b/Keyword.h +index 816c119..b6df1f1 100644 +--- a/Keyword.h ++++ b/Keyword.h +@@ -195,7 +195,7 @@ namespace CCfits { - class Keyword -+ class CCFITS_EXPORT Keyword ++ class CCFITS_EXPORT Keyword { public: -Index: ExtHDU.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- ExtHDU.h (date 1502267716000) -+++ ExtHDU.h (revision ) -@@ -435,7 +435,7 @@ +diff --git a/ExtHDU.h b/ExtHDU.h +index d075fa1..e2d7dc6 100644 +--- a/ExtHDU.h ++++ b/ExtHDU.h +@@ -435,7 +435,7 @@ namespace CCfits { @@ -245,14 +215,11 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { public: -Index: PHDU.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- PHDU.h (date 1502267716000) -+++ PHDU.h (revision ) -@@ -264,7 +264,7 @@ +diff --git a/PHDU.h b/PHDU.h +index fe5f799..d9669b4 100644 +--- a/PHDU.h ++++ b/PHDU.h +@@ -264,7 +264,7 @@ namespace CCfits { @@ -261,14 +228,11 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { public: -Index: BinTable.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- BinTable.h (date 1502267716000) -+++ BinTable.h (revision ) -@@ -127,7 +127,7 @@ +diff --git a/BinTable.h b/BinTable.h +index 68851e3..906005a 100644 +--- a/BinTable.h ++++ b/BinTable.h +@@ -127,7 +127,7 @@ namespace CCfits { @@ -277,63 +241,41 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { public: -Index: Image.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- Image.h (date 1502267716000) -+++ Image.h (revision ) -@@ -32,7 +32,7 @@ - - - template -- class Image -+ class Image - { - - public: -Index: ColumnCreator.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- ColumnCreator.h (date 1502267716000) -+++ ColumnCreator.h (revision ) -@@ -28,7 +28,7 @@ +diff --git a/ColumnCreator.h b/ColumnCreator.h +index 104bd4f..15cd0ea 100644 +--- a/ColumnCreator.h ++++ b/ColumnCreator.h +@@ -28,7 +28,7 @@ namespace CCfits { - class ColumnCreator -+ class CCFITS_EXPORT ColumnCreator ++ class CCFITS_EXPORT ColumnCreator { public: -Index: FitsError.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- FitsError.h (date 1502267716000) -+++ FitsError.h (revision ) -@@ -14,6 +14,7 @@ +diff --git a/FitsError.h b/FitsError.h +index 593723c..52941f6 100644 +--- a/FitsError.h ++++ b/FitsError.h +@@ -13,6 +13,7 @@ + //#include //#include //#include - #include +#include "ccfits_export.h" + #include using std::string; - -@@ -90,7 +91,7 @@ +@@ -90,7 +91,7 @@ namespace CCfits { - class FitsException -+ class CCFITS_EXPORT FitsException ++ class CCFITS_EXPORT FitsException { public: FitsException (const string& msg, bool& silent); -@@ -109,7 +110,7 @@ +@@ -109,7 +110,7 @@ namespace CCfits { @@ -342,40 +284,34 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { public: FitsError (int errornum, bool silent = true); -@@ -123,7 +124,7 @@ +@@ -123,7 +124,7 @@ namespace CCfits { - class FitsFatal -+ class CCFITS_EXPORT FitsFatal ++ class CCFITS_EXPORT FitsFatal { public: FitsFatal (const string& diag); -Index: HDUCreator.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- HDUCreator.h (date 1502267716000) -+++ HDUCreator.h (revision ) -@@ -35,7 +35,7 @@ +diff --git a/HDUCreator.h b/HDUCreator.h +index 65b82b7..2b5f717 100644 +--- a/HDUCreator.h ++++ b/HDUCreator.h +@@ -35,7 +35,7 @@ namespace CCfits { - class HDUCreator -+ class CCFITS_EXPORT HDUCreator ++ class CCFITS_EXPORT HDUCreator { public: -Index: ccfits_export.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- ccfits_export.h (revision ) -+++ ccfits_export.h (revision ) -@@ -0,0 +1,42 @@ -+ +diff --git a/ccfits_export.h b/ccfits_export.h +new file mode 100644 +index 0000000..a2540a6 100644 +--- /dev/null ++++ b/ccfits_export.h +@@ -0,0 +1,41 @@ +#ifndef CCFITS_EXPORT_H +#define CCFITS_EXPORT_H + @@ -417,13 +353,11 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +#endif + +#endif -Index: FITSUtil.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- FITSUtil.h (date 1502267716000) -+++ FITSUtil.h (revision ) +\ No newline at end of file +diff --git a/FITSUtil.h b/FITSUtil.h +index 762d430..e2eee33 100644 +--- a/FITSUtil.h ++++ b/FITSUtil.h @@ -22,6 +22,7 @@ #include // FitsError @@ -432,7 +366,7 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP #include -@@ -287,21 +288,21 @@ +@@ -287,21 +288,21 @@ object. template void swap(std::vector& left, std::vector& right); @@ -459,7 +393,7 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { bool operator()(const string& left, const string& right) const; }; -@@ -323,7 +324,7 @@ +@@ -323,7 +324,7 @@ object. char** CharArray(const std::vector& inArray); @@ -468,7 +402,7 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP template -@@ -633,7 +634,7 @@ +@@ -633,7 +634,7 @@ object. @@ -477,19 +411,78 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP { public: UnrecognizedType (string diag, bool silent = true); -Index: KeywordCreator.h -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- KeywordCreator.h (date 1502267716000) -+++ KeywordCreator.h (revision ) -@@ -24,7 +24,7 @@ +diff --git a/KeywordCreator.h b/KeywordCreator.h +index d878a26..b2c0c70 100644 +--- a/KeywordCreator.h ++++ b/KeywordCreator.h +@@ -24,7 +24,7 @@ namespace CCfits { - class KeywordCreator -+ class CCFITS_EXPORT KeywordCreator ++ class CCFITS_EXPORT KeywordCreator { public: +diff --git a/CCfits b/CCfits +index e9848c9..f30c9ad 100644 +--- a/CCfits ++++ b/CCfits +@@ -2,20 +2,20 @@ + #ifndef CCFITS + #define CCFITS 20031208 + +-#include ++#include + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + + #endif +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b958fc7..0b1fb4e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -30,6 +30,11 @@ IF (BUILD_SHARED_LIBS) + SET (LIB_TYPE SHARED) + ENDIF (BUILD_SHARED_LIBS) + ++ ++IF (NOT BUILD_SHARED_LIBS) ++ ADD_DEFINITIONS(-DCCFITS_STATIC_DEFINE) ++ENDIF() ++ + FILE(GLOB H_FILES "*.h") + SET(H_FILES ${H_FILES} CCfits) + +@@ -55,6 +60,7 @@ SET(SRC_FILES + ) + + ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${H_FILES} ${SRC_FILES}) ++ + TARGET_LINK_LIBRARIES(${LIB_NAME} ${CFITSIO_LIBRARY} + ) + diff --git a/ports/ccfits/portfile.cmake b/ports/ccfits/portfile.cmake index 6aeecfd6290..c3d2fef1e9c 100644 --- a/ports/ccfits/portfile.cmake +++ b/ports/ccfits/portfile.cmake @@ -9,14 +9,11 @@ vcpkg_download_distfile(ARCHIVE FILENAME "CCfits-2.5.tar.gz" SHA512 63ab4d153063960510cf60651d5c832824cf85f937f84adc5390c7c2fb46eb8e9f5d8cda2554d79d24c7a4f1b6cf0b7a6e20958fb69920b65d7c362c0a5f26b5 ) -vcpkg_extract_source_archive(${ARCHIVE}) - -if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - vcpkg_apply_patches( - SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/CCfits - PATCHES "${CMAKE_CURRENT_LIST_DIR}/dll_exports.patch" - ) -endif() +vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH + PATCHES dll_exports.patch +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} diff --git a/ports/cgicc/CONTROL b/ports/cgicc/CONTROL index 9e18277a9a2..1e3716e0e82 100644 --- a/ports/cgicc/CONTROL +++ b/ports/cgicc/CONTROL @@ -1,4 +1,4 @@ Source: cgicc -Version: 3.2.19-1 +Version: 3.2.19-2 Homepage: https://www.gnu.org/software/cgicc/ Description: GNU Cgicc is an ANSI C++ compliant class library that greatly simplifies the creation of CGI applications for the World Wide Web diff --git a/ports/cgicc/portfile.cmake b/ports/cgicc/portfile.cmake index 58a97087714..24447e884ac 100644 --- a/ports/cgicc/portfile.cmake +++ b/ports/cgicc/portfile.cmake @@ -15,6 +15,7 @@ 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 ) diff --git a/ports/chakracore/CONTROL b/ports/chakracore/CONTROL index 919391eb697..44c6fe4c4a9 100644 --- a/ports/chakracore/CONTROL +++ b/ports/chakracore/CONTROL @@ -1,4 +1,4 @@ Source: chakracore -Version: 1.11.9 +Version: 1.11.11 Homepage: https://github.com/Microsoft/ChakraCore Description: Core part of the Chakra Javascript engine diff --git a/ports/chakracore/portfile.cmake b/ports/chakracore/portfile.cmake index 04b253b15c3..5263b3a16f0 100644 --- a/ports/chakracore/portfile.cmake +++ b/ports/chakracore/portfile.cmake @@ -9,8 +9,8 @@ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/ChakraCore - REF v1.11.9 - SHA512 4703e28f04925074bfc2057dcccee0427aacdd48f7b9f715d08a9385e4de9e804e1620cd49e8b3db7cd330d00ecd374bfaa3205dbe1f3cfce51ed0eea439a55e + REF v1.11.11 + SHA512 67fd364090632c4187c43dc7bb50d2a6cd18ebb2963f86b7f07c6394c243a94963dd9a1e2dc8f4ab9653ab1316921dbac2c1f5fa235e241e9c605e63f2551a10 HEAD_REF master ) diff --git a/ports/charls/CONTROL b/ports/charls/CONTROL index 00f6777a4ad..e8fabbf2286 100644 --- a/ports/charls/CONTROL +++ b/ports/charls/CONTROL @@ -1,4 +1,4 @@ Source: charls -Version: 2.0.0-1 +Version: 2.0.0-2 Homepage: https://github.com/team-charls/charls Description: CharLS, a C++ JPEG-LS library implementation. diff --git a/ports/charls/portfile.cmake b/ports/charls/portfile.cmake index 69726f1c38c..0f622c7e313 100644 --- a/ports/charls/portfile.cmake +++ b/ports/charls/portfile.cmake @@ -15,6 +15,7 @@ vcpkg_apply_patches( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DBUILD_TESTING=OFF ) diff --git a/ports/cjson/CONTROL b/ports/cjson/CONTROL index 7029313e336..f8eada28ba5 100644 --- a/ports/cjson/CONTROL +++ b/ports/cjson/CONTROL @@ -1,5 +1,5 @@ Source: cjson -Version: 1.7.10-1 +Version: 1.7.12 Description: Ultralightweight JSON parser in ANSI C Feature: utils diff --git a/ports/cjson/portfile.cmake b/ports/cjson/portfile.cmake index 7db22d9ae37..753c4ed2a1b 100644 --- a/ports/cjson/portfile.cmake +++ b/ports/cjson/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DaveGamble/cJSON - REF v1.7.10 - SHA512 f8d7c9fe798b51ec3c69cabe4124d2f6372f0e6d282285e3ca951c58c971a9a520d87550530d750ff7f8055c0b6ff566f237b9af9eb345cf4f4fc4ff8c910740 + REF v1.7.12 + SHA512 d767b7261eff3a1a50ea46cc5573f9504f5734a891ea211ad348835bfb4b80acf7f744da2d34bb1fa270cd4d44576c21bc6f52c0604b7e6ffdeb61ecb396b376 HEAD_REF master PATCHES fix-install-path.patch diff --git a/ports/collada-dom/CONTROL b/ports/collada-dom/CONTROL index 952f4ae5048..31ded725324 100644 --- a/ports/collada-dom/CONTROL +++ b/ports/collada-dom/CONTROL @@ -1,4 +1,4 @@ Source: collada-dom -Version: 2.5.0-1 +Version: 2.5.0-2 Description: The COLLADA Document Object Model (DOM) is an application programming interface (API) that provides a C++ object representation of a COLLADA XML instance document. Build-Depends: zlib, libxml2, minizip, pcre, uriparser, boost-filesystem, boost-system diff --git a/ports/collada-dom/portfile.cmake b/ports/collada-dom/portfile.cmake index f36d8e4a955..20ee9fffad1 100644 --- a/ports/collada-dom/portfile.cmake +++ b/ports/collada-dom/portfile.cmake @@ -14,6 +14,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/corrade/portfile.cmake b/ports/corrade/portfile.cmake index 336cda6e384..40011f3d055 100644 --- a/ports/corrade/portfile.cmake +++ b/ports/corrade/portfile.cmake @@ -26,13 +26,23 @@ foreach(_feature IN LISTS ALL_FEATURES) endif() endforeach() +if(NOT VCPKG_CMAKE_SYSTEM_NAME) + # building for Windows desktop + if (VCPKG_PLATFORM_TOOLSET STREQUAL "v142" AND NOT VCPKG_USE_HEAD_VERSION) + message("**********") + message("WARNING: Visual Studio 2019 is not official supported by Corrade/Magnum team. Please use --head version if you intend to have upstream support.") + message("**********") + set(_CUSTOM_BUILD_FLAGS "-DCORRADE_MSVC2017_COMPATIBILITY=ON") + endif() +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA # Disable this option if project cannot be built with Ninja OPTIONS - -DDUTILITY_USE_ANSI_COLORS=ON + -DUTILITY_USE_ANSI_COLORS=ON -DBUILD_STATIC=${BUILD_STATIC} - -DCORRADE_MSVC2017_COMPATIBILITY=ON + ${_CUSTOM_BUILD_FLAGS} ${_COMPONENT_FLAGS} ) diff --git a/ports/cpp-taskflow/CONTROL b/ports/cpp-taskflow/CONTROL index 4abf5457fca..69b58ea81d8 100644 --- a/ports/cpp-taskflow/CONTROL +++ b/ports/cpp-taskflow/CONTROL @@ -1,3 +1,3 @@ Source: cpp-taskflow -Version: 2018-11-30 +Version: 2.2.0 Description: Fast Parallel Tasking Programming Library using Modern C++. diff --git a/ports/cpp-taskflow/portfile.cmake b/ports/cpp-taskflow/portfile.cmake index 1f596f0d491..5160d02a260 100644 --- a/ports/cpp-taskflow/portfile.cmake +++ b/ports/cpp-taskflow/portfile.cmake @@ -5,8 +5,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cpp-taskflow/cpp-taskflow - REF 97252f7d782c6e896122645175c08131ce10e649 - SHA512 df8ae9ea449663cb548f3c37346c2e0c785add2d86b9c618aea2741d81fe88c34b0d3d0e610a4b571973f9bc18631becedfe28e029ecf0c0cc87e4c35a280a29 + REF v2.2.0 + SHA512 c075f1b7e4dd6ed6d9561b860b660ee4b28eddb321d8aa8746fbec45b1039ab686700156e4273da5a4ac7af0707975331befd9bf3e51f18925ea3a9a60083549 HEAD_REF master ) diff --git a/ports/cpprestsdk/CONTROL b/ports/cpprestsdk/CONTROL index be8d24045ba..8771646738e 100644 --- a/ports/cpprestsdk/CONTROL +++ b/ports/cpprestsdk/CONTROL @@ -1,19 +1,23 @@ Source: cpprestsdk -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) +Version: 2.10.14-1 +Build-Depends: 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 The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services. Default-Features: default-features Feature: default-features -Build-Depends: cpprestsdk[brotli] (windows), cpprestsdk[websockets] +Build-Depends: cpprestsdk[brotli] (windows), cpprestsdk[core], cpprestsdk[compression], cpprestsdk[websockets] Description: Features installed by default +Feature: compression +Build-Depends: zlib +Description: HTTP Compression support + Feature: websockets -Build-Depends: websocketpp (!uwp), openssl (!uwp), boost-system (!uwp), boost-date-time (!uwp), boost-regex (!uwp) +Build-Depends: cpprestsdk[core], cpprestsdk[compression], websocketpp (!uwp), openssl (!uwp), boost-system (!uwp), boost-date-time (!uwp), boost-regex (!uwp) Description: Websockets support Feature: brotli -Build-Depends: brotli +Build-Depends: cpprestsdk[core], cpprestsdk[compression], brotli Description: Brotli compression support diff --git a/ports/cpprestsdk/portfile.cmake b/ports/cpprestsdk/portfile.cmake index 8add4c1ab1b..4a6dad14287 100644 --- a/ports/cpprestsdk/portfile.cmake +++ b/ports/cpprestsdk/portfile.cmake @@ -16,16 +16,21 @@ if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") -DWEBSOCKETPP_CONFIG_VERSION=${WEBSOCKETPP_PATH}) endif() -set(CPPREST_EXCLUDE_WEBSOCKETS ON) -if("websockets" IN_LIST FEATURES) - set(CPPREST_EXCLUDE_WEBSOCKETS OFF) -endif() - set(CPPREST_EXCLUDE_BROTLI ON) if ("brotli" IN_LIST FEATURES) set(CPPREST_EXCLUDE_BROTLI OFF) endif() +set(CPPREST_EXCLUDE_COMPRESSION ON) +if ("compression" IN_LIST FEATURES) + set(CPPREST_EXCLUDE_COMPRESSION OFF) +endif() + +set(CPPREST_EXCLUDE_WEBSOCKETS ON) +if("websockets" IN_LIST FEATURES) + set(CPPREST_EXCLUDE_WEBSOCKETS OFF) +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH}/Release PREFER_NINJA @@ -33,6 +38,8 @@ vcpkg_configure_cmake( ${OPTIONS} -DBUILD_TESTS=OFF -DBUILD_SAMPLES=OFF + -DCPPREST_EXCLUDE_BROTLI=${CPPREST_EXCLUDE_BROTLI} + -DCPPREST_EXCLUDE_COMPRESSION=${CPPREST_EXCLUDE_COMPRESSION} -DCPPREST_EXCLUDE_WEBSOCKETS=${CPPREST_EXCLUDE_WEBSOCKETS} -DCPPREST_EXPORT_DIR=share/cpprestsdk -DWERROR=OFF diff --git a/ports/cppzmq/CONTROL b/ports/cppzmq/CONTROL index f50dd41035e..c98e464ca10 100644 --- a/ports/cppzmq/CONTROL +++ b/ports/cppzmq/CONTROL @@ -1,5 +1,5 @@ Source: cppzmq -Version: 4.3.0-1 +Version: 4.4.1 Build-Depends: zeromq Homepage: https://github.com/zeromq/cppzmq Description: lightweight messaging kernel, C++ bindings diff --git a/ports/cppzmq/portfile.cmake b/ports/cppzmq/portfile.cmake index cd281513af9..52c4126c487 100644 --- a/ports/cppzmq/portfile.cmake +++ b/ports/cppzmq/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zeromq/cppzmq - REF v4.3.0 - SHA512 c9e08e48795b9043c689ffa6953ac59e0fe79d9110d79e06609ab67bf76bea52147b59ecf033f7a06e57d5eb0c3c6bc79634af789966ff22d7d80091d19b135d + REF v4.4.1 + SHA512 5178a24413e44a6d99e57db7c9859c72279304272baa0e1fb810174cdf592cb567cab98428ef3ab611042bdf4bc506867421662409d1f0d82c233cb83ebdb801 HEAD_REF master ) diff --git a/ports/ctbignum/CONTROL b/ports/ctbignum/CONTROL new file mode 100644 index 00000000000..977abc21fe4 --- /dev/null +++ b/ports/ctbignum/CONTROL @@ -0,0 +1,6 @@ +Source: ctbignum +Version: 2019-08-02 +Homepage: https://github.com/niekbouman/ctbignum +Description: This is a header-only template library for fixed-width "small big-integer" computations, for use during run-time as well as compile-time. +Build-Depends: boost + diff --git a/ports/ctbignum/portfile.cmake b/ports/ctbignum/portfile.cmake new file mode 100644 index 00000000000..6d297117f7d --- /dev/null +++ b/ports/ctbignum/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO niekbouman/ctbignum + REF cf3233d8b7dcff59f29a7389204959ee2228a4af + SHA512 8cd5e187836f48165a088a171c87ce438393e66f7362af1b67a253ae6ef0b17c41468e21e0dfe337094796f2b2a2fa5062cc9a9231afc377f187baf1ead1257e + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DCTBIGNUM_BuildTests=OFF + -DCTBIGNUM_BuildBenchmarks=OFF +) + +vcpkg_install_cmake() + +# Move CMake files to the right place +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT}) +# Remove empty files +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib) + +# Handle copyright +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright) + diff --git a/ports/ctemplate/CONTROL b/ports/ctemplate/CONTROL index d5fadf3eadd..00abc1f960d 100644 --- a/ports/ctemplate/CONTROL +++ b/ports/ctemplate/CONTROL @@ -1,4 +1,4 @@ Source: ctemplate -Version: 2017-06-23-44b7c5-3 +Version: 2017-06-23-44b7c5-4 Homepage: https://github.com/OlafvdSpek/ctemplate Description: C++ CTemplate system diff --git a/ports/ctemplate/portfile.cmake b/ports/ctemplate/portfile.cmake index d22c3afa408..d5d8b39608b 100644 --- a/ports/ctemplate/portfile.cmake +++ b/ports/ctemplate/portfile.cmake @@ -14,6 +14,7 @@ vcpkg_find_acquire_program(PYTHON3) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DPYTHON_EXECUTABLE=${PYTHON3} OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) diff --git a/ports/cxxopts/CONTROL b/ports/cxxopts/CONTROL index 1d5664cec65..53da6cd4e08 100644 --- a/ports/cxxopts/CONTROL +++ b/ports/cxxopts/CONTROL @@ -1,4 +1,4 @@ Source: cxxopts -Version: 2.1.2-1 +Version: 2.2.0 Homepage: https://github.com/jarro2783/cxxopts Description: This is a lightweight C++ option parser library, supporting the standard GNU style syntax for options diff --git a/ports/cxxopts/portfile.cmake b/ports/cxxopts/portfile.cmake index dd5981e7d70..b1c6697ede0 100644 --- a/ports/cxxopts/portfile.cmake +++ b/ports/cxxopts/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jarro2783/cxxopts - REF v2.1.2 - SHA512 7ee3725995d4d0f78b75d1d87f10290f20529ca4aa430eb8dd1c59d98c6e99c54b54fc545926b59f499d02ae4f75f9064b3b5ebbab3f74031d3638e7a2378440 + REF v2.2.0 + SHA512 9f5182b3a86b3d47d1ce5e1e222ab596fce59d3b2dcc0ab2c3802338d5e0f3e6556f2a5ff2accb32cae7e2db41ac5a361c93bf0256f9e44c316eaa4b47c19efa HEAD_REF master ) @@ -12,6 +12,7 @@ vcpkg_configure_cmake( PREFER_NINJA OPTIONS -DCXXOPTS_BUILD_EXAMPLES=OFF + -DCXXOPTS_BUILD_TESTS=OFF ) vcpkg_install_cmake() diff --git a/ports/darknet/CONTROL b/ports/darknet/CONTROL index d31d4ef1d18..812f66a2ce3 100644 --- a/ports/darknet/CONTROL +++ b/ports/darknet/CONTROL @@ -1,5 +1,5 @@ Source: darknet -Version: 0.2.5-4 +Version: 0.2.5-5 Description: Darknet is an open source neural network framework written in C and CUDA. You only look once (YOLO) is a state-of-the-art, real-time object detection system, best example of darknet functionalities. Build-Depends: pthreads (windows), stb Default-Features: weights @@ -13,7 +13,10 @@ Build-Depends: cuda Description: Build darknet with support for CUDA Feature: weights -Description: Download common weights from official websites, using vcpkg proxy-enabled functions +Description: Download pre-built weights for test + +Feature: weights-train +Description: Download pre-built weights for training Feature: opencv-cuda Build-Depends: opencv[ffmpeg], opencv[cuda] diff --git a/ports/darknet/portfile.cmake b/ports/darknet/portfile.cmake index 3fb49e68749..83f68b6d7e0 100644 --- a/ports/darknet/portfile.cmake +++ b/ports/darknet/portfile.cmake @@ -11,8 +11,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AlexeyAB/darknet - REF a1abd07e23fc5b143a6197de9908fe4f33791c6a - SHA512 df91bf595666a4db5beb5cc55f6c60be19667ab987a784faef04cf2215317c9a340cfc0a200640741fcc88c29cff077d5153b86ff497c31ad5ad132f05987516 + REF b2d795e34e1d734d0f451ce9847a0e6b68c32351 + SHA512 1964aa0d768d37fc614983718aede8b29e562fd8120116b7cd7a1331bb8a3256e28c01cdff6f19bbe7b9d6289b3292188205f362bae38393cee33d8a2e6a5273 HEAD_REF master ) @@ -56,8 +56,22 @@ if("weights" IN_LIST FEATURES) ) endif() -#make sure we don't use any integrated pre-built library +if("weights-train" IN_LIST FEATURES) + vcpkg_download_distfile(IMAGENET_CONV_WEIGHTS_V3 + URLS "https://pjreddie.com/media/files/darknet53.conv.74" + FILENAME "darknet-cache/darknet53.conv.74" + SHA512 8983e1c129e2d6e8e3da0cc0781ecb7a07813830ef5a87c24b53100df6a5f23db6c6e6a402aec78025a93fe060b75d1958f1b8f7439a04b54a3f19c81e2ae99b + ) + vcpkg_download_distfile(IMAGENET_CONV_WEIGHTS_V2 + URLS "https://pjreddie.com/media/files/darknet19_448.conv.23" + FILENAME "darknet-cache/darknet19_448.conv.23" + SHA512 8016f5b7ddc15c5d7dad231592f5351eea65f608ebdb204f545034dde904e11962f693080dfeb5a4510e7b71bdda151a9121ba0f8a243018d680f01b1efdbd31 + ) +endif() + +#make sure we don't use any integrated pre-built library nor any unnecessary CMake module file(REMOVE_RECURSE ${SOURCE_PATH}/3rdparty) +file(REMOVE ${SOURCE_PATH}/cmake/Modules/FindPThreads_windows.cmake) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} @@ -72,7 +86,6 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -#somehow the native CMAKE_EXECUTABLE_SUFFIX does not work, so here we emulate it if(CMAKE_HOST_WIN32) set(EXECUTABLE_SUFFIX ".exe") else() @@ -101,8 +114,6 @@ endif() vcpkg_fixup_cmake_targets() file(COPY ${SOURCE_PATH}/cmake/Modules/FindCUDNN.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/darknet) -file(COPY ${SOURCE_PATH}/cmake/Modules/FindPThreads_windows.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/darknet) -file(COPY ${SOURCE_PATH}/cmake/Modules/FindStb.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/darknet) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) @@ -115,3 +126,8 @@ if("weights" IN_LIST FEATURES) file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov3-tiny.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet) file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov2-tiny.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet) endif() + +if("weights-train" IN_LIST FEATURES) + file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/darknet53.conv.74 DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet) + file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/darknet19_448.conv.23 DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet) +endif() diff --git a/ports/discount/CONTROL b/ports/discount/CONTROL new file mode 100644 index 00000000000..51c8b5e90b3 --- /dev/null +++ b/ports/discount/CONTROL @@ -0,0 +1,4 @@ +Source: discount +Version: 2.2.6 +Homepage: https://github.com/Orc/discount +Description: DISCOUNT is a implementation of John Gruber & Aaron Swartz's Markdown markup language. diff --git a/ports/discount/blocktags b/ports/discount/blocktags new file mode 100644 index 00000000000..dfd3957c30a --- /dev/null +++ b/ports/discount/blocktags @@ -0,0 +1,34 @@ +static struct kw blocktags[] = { + { "P", 1, 0 }, + { "DL", 2, 0 }, + { "H1", 2, 0 }, + { "H2", 2, 0 }, + { "H3", 2, 0 }, + { "H4", 2, 0 }, + { "H5", 2, 0 }, + { "H6", 2, 0 }, + { "HR", 2, 1 }, + { "OL", 2, 0 }, + { "UL", 2, 0 }, + { "BDO", 3, 0 }, + { "DFN", 3, 0 }, + { "DIV", 3, 0 }, + { "MAP", 3, 0 }, + { "PRE", 3, 0 }, + { "WBR", 3, 0 }, + { "XMP", 3, 0 }, + { "FORM", 4, 0 }, + { "NOBR", 4, 0 }, + { "STYLE", 5, 0 }, + { "TABLE", 5, 0 }, + { "CENTER", 6, 0 }, + { "IFRAME", 6, 0 }, + { "OBJECT", 6, 0 }, + { "SCRIPT", 6, 0 }, + { "ADDRESS", 7, 0 }, + { "LISTING", 7, 0 }, + { "PLAINTEXT", 9, 0 }, + { "BLOCKQUOTE", 10, 0 }, +}; + +#define NR_blocktags 30 diff --git a/ports/discount/cmake.patch b/ports/discount/cmake.patch new file mode 100644 index 00000000000..8a2278cf7e7 --- /dev/null +++ b/ports/discount/cmake.patch @@ -0,0 +1,27 @@ +diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt +index 3895fdb..a183836 100644 +--- a/cmake/CMakeLists.txt ++++ b/cmake/CMakeLists.txt +@@ -182,7 +182,10 @@ if(${PROJECT_NAME}_MAKE_INSTALL) + target_include_directories(libmarkdown INTERFACE + $ + ) +- set(_TARGETS libmarkdown markdown) ++ set(_TARGETS libmarkdown) ++ if(NOT ${PROJECT_NAME}_ONLY_LIBRARY) ++ set(_TARGETS ${_TARGETS} markdown) ++ endif() + if(${PROJECT_NAME}_INSTALL_SAMPLES) + list(APPEND _TARGETS mkd2html makepage) + endif() +diff --git a/cmake/config.h.in b/cmake/config.h.in +index e08220d..e630934 100644 +--- a/cmake/config.h.in ++++ b/cmake/config.h.in +@@ -74,4 +74,6 @@ + + #define TABSTOP @TABSTOP@ + ++#define DESTRUCTOR ++ + #endif /* _CONFIG_D */ diff --git a/ports/discount/disable-deprecated-warnings.patch b/ports/discount/disable-deprecated-warnings.patch new file mode 100644 index 00000000000..e8f4f0fb772 --- /dev/null +++ b/ports/discount/disable-deprecated-warnings.patch @@ -0,0 +1,16 @@ +diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt +index 11fa675..34cc9ed 100644 +--- a/cmake/CMakeLists.txt ++++ b/cmake/CMakeLists.txt +@@ -20,6 +20,11 @@ set(${PROJECT_NAME}_INSTALL_SAMPLES OFF CACHE BOOL + set(${PROJECT_NAME}_ONLY_LIBRARY OFF CACHE BOOL + "Set to ON to only build markdown library (default is OFF)") + ++# MSVC deprecated warnings (C4996,strdup, ...) ++if(MSVC) ++ add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS) ++endif() ++ + # Check headers + include(CheckIncludeFile) + check_include_file(libgen.h HAVE_LIBGEN_H) diff --git a/ports/discount/generate-blocktags-command.patch b/ports/discount/generate-blocktags-command.patch new file mode 100644 index 00000000000..13d63a25dec --- /dev/null +++ b/ports/discount/generate-blocktags-command.patch @@ -0,0 +1,29 @@ +diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt +index a183836..e9deef5 100644 +--- a/cmake/CMakeLists.txt ++++ b/cmake/CMakeLists.txt +@@ -113,12 +115,19 @@ configure_file("${_ROOT}/mkdio.h.in" + + include_directories("${_ROOT}") + +-add_executable(mktags +- "${_ROOT}/mktags.c") + +-add_custom_command(OUTPUT "${_ROOT}/blocktags" +- COMMAND mktags > blocktags +- WORKING_DIRECTORY "${_ROOT}") ++if(NOT GENERATE_BLOCKTAGS) ++ message(STATUS "Not generating blocktags") ++else() ++ message(STATUS "Using mktags to generate blocktags") ++ ++ add_executable(mktags ++ "${_ROOT}/mktags.c") ++ ++ add_custom_command(OUTPUT "${_ROOT}/blocktags" ++ COMMAND mktags > blocktags ++ WORKING_DIRECTORY "${_ROOT}") ++endif() + + add_library(libmarkdown + "${_ROOT}/mkdio.c" diff --git a/ports/discount/portfile.cmake b/ports/discount/portfile.cmake new file mode 100644 index 00000000000..6a40d51051a --- /dev/null +++ b/ports/discount/portfile.cmake @@ -0,0 +1,45 @@ +include(vcpkg_common_functions) + +# No dynamic link for MSVC +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Orc/discount + REF v2.2.6 + SHA512 4c5956dea78aacd3a105ddac13f1671d811a5b2b04990cdf8485c36190c8872c4b1b9432a7236f669c34b07564ecd0096632dced54d67de9eaf4f23641417ecc + HEAD_REF master + PATCHES + cmake.patch + generate-blocktags-command.patch + disable-deprecated-warnings.patch +) + +set(GENERATE_BLOCKTAGS ON) +if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm" OR VCPKG_TARGET_ARCHITECTURE MATCHES "arm64" OR VCPKG_CMAKE_SYSTEM_NAME MATCHES "WindowsStore") + set(GENERATE_BLOCKTAGS OFF) +endif() + +if(NOT GENERATE_BLOCKTAGS) + configure_file("${CURRENT_PORT_DIR}/blocktags" "${SOURCE_PATH}/blocktags" COPYONLY) + message(STATUS "Copied blocktags") +endif() + +vcpkg_configure_cmake( + SOURCE_PATH "${SOURCE_PATH}/cmake" + PREFER_NINJA + DISABLE_PARALLEL_CONFIGURE + OPTIONS + -DDISCOUNT_ONLY_LIBRARY=ON + -DGENERATE_BLOCKTAGS=${GENERATE_BLOCKTAGS} +) + +vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/discount) +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +# Handle copyright +file(INSTALL "${SOURCE_PATH}/COPYRIGHT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/discount" RENAME copyright) + diff --git a/ports/dlfcn-win32/CONTROL b/ports/dlfcn-win32/CONTROL index 24af3631fca..453ecf9e4dc 100644 --- a/ports/dlfcn-win32/CONTROL +++ b/ports/dlfcn-win32/CONTROL @@ -1,4 +1,4 @@ Source: dlfcn-win32 -Version: 1.1.1-1 +Version: 1.1.1-2 Homepage: https://github.com/dlfcn-win32/dlfcn-win32 Description: dlfcn-win32 is an implementation of dlfcn for Windows. diff --git a/ports/dlfcn-win32/portfile.cmake b/ports/dlfcn-win32/portfile.cmake index 77fd87b12e0..d67fb00fe12 100644 --- a/ports/dlfcn-win32/portfile.cmake +++ b/ports/dlfcn-win32/portfile.cmake @@ -22,6 +22,7 @@ vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/duktape/CONTROL b/ports/duktape/CONTROL index 5f212d705a7..08c822fadfe 100644 --- a/ports/duktape/CONTROL +++ b/ports/duktape/CONTROL @@ -1,5 +1,5 @@ Source: duktape -Version: 2.3.0-1 +Version: 2.3.0-2 Homepage: https://github.com/svaarala/duktape Description: Embeddable Javascript engine with a focus on portability and compact footprint. Build-Depends: diff --git a/ports/duktape/portfile.cmake b/ports/duktape/portfile.cmake index e15ca137b56..fe2c9a494eb 100644 --- a/ports/duktape/portfile.cmake +++ b/ports/duktape/portfile.cmake @@ -48,6 +48,7 @@ vcpkg_apply_patches( ) vcpkg_configure_cmake( + PREFER_NINJA SOURCE_PATH ${SOURCE_PATH} ) diff --git a/ports/easycl/CONTROL b/ports/easycl/CONTROL new file mode 100644 index 00000000000..ad61f226040 --- /dev/null +++ b/ports/easycl/CONTROL @@ -0,0 +1,5 @@ +Source: easycl +Version: 0.3 +Homepage: https://github.com/architector1324/EasyCL +Build-Depends: opencl +Description: OpenCL based lightweight c++ computing library diff --git a/ports/easycl/portfile.cmake b/ports/easycl/portfile.cmake new file mode 100644 index 00000000000..694a853bb6e --- /dev/null +++ b/ports/easycl/portfile.cmake @@ -0,0 +1,15 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO architector1324/EasyCL + REF 0.3 + SHA512 c0e9aa03c9039e9ffe4794ccc4e85654f8267924e577cf96fd8d5e141fab9e8f6dc4668ee4475d6df3ba77572e52a181493acd3dfdb0abf7bd83b7e3d4d08a29 + HEAD_REF master +) + +# Handle headers +file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.hpp") + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/easycl RENAME copyright) diff --git a/ports/easyhook/CONTROL b/ports/easyhook/CONTROL new file mode 100644 index 00000000000..a47eb803dfc --- /dev/null +++ b/ports/easyhook/CONTROL @@ -0,0 +1,4 @@ +Source: easyhook +Version: 2.7.6789.0 +Homepage: https://github.com/EasyHook/EasyHook +Description: This project supports extending (hooking) unmanaged code (APIs) with pure managed ones, from within a fully managed environment on 32- or 64-bit Windows Vista x64, Windows Server 2008 x64, Windows 7, Windows 8.1, and Windows 10. \ No newline at end of file diff --git a/ports/easyhook/fix-build.patch b/ports/easyhook/fix-build.patch new file mode 100644 index 00000000000..230faf65d86 --- /dev/null +++ b/ports/easyhook/fix-build.patch @@ -0,0 +1,128 @@ +diff --git a/EasyHookDll/EasyHookDll.vcxproj b/EasyHookDll/EasyHookDll.vcxproj +index ec66f91..5773555 100644 +--- a/EasyHookDll/EasyHookDll.vcxproj ++++ b/EasyHookDll/EasyHookDll.vcxproj +@@ -188,7 +188,7 @@ + true + true + EnableFastChecks +- true ++ false + MultiThreadedDebug + + +@@ -207,10 +207,6 @@ + MachineX86 + false + +- +- copy "$(TargetPath)" "$(TargetDir)..\x64\EasyHook32.dll" +-copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" +- + + false + +@@ -223,7 +219,7 @@ copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" + true + true + EnableFastChecks +- true ++ false + MultiThreadedDebug + + +@@ -242,10 +238,6 @@ copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" + MachineX86 + false + +- +- copy "$(TargetPath)" "$(TargetDir)..\x64\EasyHook32.dll" +-copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" +- + + false + +@@ -261,7 +253,7 @@ copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" + true + true + EnableFastChecks +- true ++ false + MultiThreadedDebug + + +@@ -278,10 +270,6 @@ copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" + Windows + MachineX64 + +- +- copy "$(TargetPath)" "$(TargetDir)..\x86\EasyHook64.dll" +-copy "$(TargetDir)EasyHook64.lib" "$(TargetDir)..\x86\EasyHook64.lib" +- + + false + +@@ -297,7 +285,7 @@ copy "$(TargetDir)EasyHook64.lib" "$(TargetDir)..\x86\EasyHook64.lib" + true + true + EnableFastChecks +- true ++ false + MultiThreadedDebug + + +@@ -314,10 +302,6 @@ copy "$(TargetDir)EasyHook64.lib" "$(TargetDir)..\x86\EasyHook64.lib" + Windows + MachineX64 + +- +- copy "$(TargetPath)" "$(TargetDir)..\x86\EasyHook64.dll" +-copy "$(TargetDir)EasyHook64.lib" "$(TargetDir)..\x86\EasyHook64.lib" +- + + false + +@@ -355,10 +339,6 @@ copy "$(TargetDir)EasyHook64.lib" "$(TargetDir)..\x86\EasyHook64.lib" + MachineX86 + false + +- +- copy "$(TargetPath)" "$(TargetDir)..\x64\EasyHook32.dll" +-copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" +- + + false + false +@@ -397,10 +377,6 @@ copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" + MachineX86 + false + +- +- copy "$(TargetPath)" "$(TargetDir)..\x64\EasyHook32.dll" +-copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" +- + + false + false +@@ -439,10 +415,6 @@ copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" + true + MachineX64 + +- +- copy "$(TargetPath)" "$(TargetDir)..\x86\EasyHook64.dll" +-copy "$(TargetDir)EasyHook64.lib" "$(TargetDir)..\x86\EasyHook64.lib" +- + + false + false +@@ -481,10 +453,6 @@ copy "$(TargetDir)EasyHook64.lib" "$(TargetDir)..\x86\EasyHook64.lib" + true + MachineX64 + +- +- copy "$(TargetPath)" "$(TargetDir)..\x86\EasyHook64.dll" +-copy "$(TargetDir)EasyHook64.lib" "$(TargetDir)..\x86\EasyHook64.lib" +- + + false + false diff --git a/ports/easyhook/portfile.cmake b/ports/easyhook/portfile.cmake new file mode 100644 index 00000000000..d74457880a3 --- /dev/null +++ b/ports/easyhook/portfile.cmake @@ -0,0 +1,38 @@ +include(vcpkg_common_functions) + +if (NOT VCPKG_TARGET_IS_WINDOWS) + message(FATAL_ERROR "easyhook only support windows.") +endif() + +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + message(FATAL_ERROR "easyhook can only be built as dynamic library.") +endif() + +message(".Net framework 4.0 is required, please install it before install easyhook.") + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO EasyHook/EasyHook + REF v2.7.6789.0 + SHA512 a48b4fe6dd2e55a2d515bc917c0f3ff5b73f08d1778e671df802347c3b8e1d4638005582a494acdf891ffe3fa6eae3eab0096083a8af2352e3f0883eb83421d6 + HEAD_REF master + PATCHES fix-build.patch +) + +vcpkg_install_msbuild( + SOURCE_PATH ${SOURCE_PATH} + PROJECT_SUBPATH EasyHook.sln + TARGET EasyHookDll + RELEASE_CONFIGURATION "netfx4-Release" + DEBUG_CONFIGURATION "netfx4-Debug" +) + +# These libraries are useless, so remove. +file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/EasyHook.dll ${CURRENT_PACKAGES_DIR}/bin/EasyHook.pdb) +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/EasyHook.dll ${CURRENT_PACKAGES_DIR}/debug/bin/EasyHook.pdb) + +# Install includes +file(INSTALL ${SOURCE_PATH}/Public/easyhook.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/easyhook) + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/easyhook RENAME copyright) diff --git a/ports/easyloggingpp/CONTROL b/ports/easyloggingpp/CONTROL index 9e2427ff919..a10dbb2d668 100644 --- a/ports/easyloggingpp/CONTROL +++ b/ports/easyloggingpp/CONTROL @@ -1,3 +1,3 @@ Source: easyloggingpp -Version: 9.96.7 +Version: 9.96.7-1 Description: Easylogging++ is a single header efficient logging library for C++ applications. \ No newline at end of file diff --git a/ports/easyloggingpp/portfile.cmake b/ports/easyloggingpp/portfile.cmake index 8294e0a8178..56ba406b73c 100644 --- a/ports/easyloggingpp/portfile.cmake +++ b/ports/easyloggingpp/portfile.cmake @@ -12,6 +12,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -Dbuild_static_lib=ON ) diff --git a/ports/ecm/CONTROL b/ports/ecm/CONTROL index 075cf894f5a..4f98c2290eb 100644 --- a/ports/ecm/CONTROL +++ b/ports/ecm/CONTROL @@ -1,4 +1,4 @@ Source: ecm -Version: 5.58.0 +Version: 5.60.0-1 Homepage: https://github.com/KDE/extra-cmake-modules Description: Extra CMake Modules (ECM), extra modules and scripts for CMake diff --git a/ports/ecm/portfile.cmake b/ports/ecm/portfile.cmake index 8211fb97a6f..ab92b308621 100644 --- a/ports/ecm/portfile.cmake +++ b/ports/ecm/portfile.cmake @@ -4,13 +4,14 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/extra-cmake-modules - REF v5.58.0 - SHA512 c08408c5842789ce61d17642025edca022bcc0b78aba3d7dc0af5a6973f5f26ebe6f65e6d97e516e64eaf778d4a70397c76a96c45a6ee8bda3f2a9d9fff5966e + REF v5.60.0 + SHA512 98c7cbb0a84fbd4806cdf84538cb16717cbbb13fa5cce5c4bf9a507a699c579fa6f88af5091b3d311bdd504a119d6147114b2fad5de2dfd5f18448bca60cdc92 HEAD_REF master ) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DBUILD_HTML_DOCS=OFF -DBUILD_MAN_DOCS=OFF -DBUILD_QTHELP_DOCS=OFF diff --git a/ports/ecsutil/CONTROL b/ports/ecsutil/CONTROL index f008311f24a..9621f878142 100644 --- a/ports/ecsutil/CONTROL +++ b/ports/ecsutil/CONTROL @@ -1,4 +1,4 @@ -Source: ecsutil -Version: 1.0.6.1-1 -Description: Native Windows SDK for accessing ECS via the S3 HTTP protocol. -Build-Depends: atlmfc (windows) +Source: ecsutil +Version: 1.0.7.2 +Description: Native Windows SDK for accessing ECS via the S3 HTTP protocol. +Build-Depends: atlmfc (windows) diff --git a/ports/ecsutil/portfile.cmake b/ports/ecsutil/portfile.cmake index 966281a4f19..eeb9eca53ab 100644 --- a/ports/ecsutil/portfile.cmake +++ b/ports/ecsutil/portfile.cmake @@ -28,8 +28,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO EMCECS/ecs-object-client-windows-cpp - REF v1.0.6.1 - SHA512 4b16b9ce1dbc9f541fe95a40c10678cd2b0192acc94bc3d57e58fbdf37964af84cdc901686555aad1f58d133632b1ad6f57976a5ac71aed1fce2fb44a2d0f8d3 + REF v1.0.7.2 + SHA512 2505db74b370271bd9ad8e73248e3d29384ad9a6f1c8246203abe82f99ea8f75419482031024127361358c339955fd2a029a5c77f5ce6e7a35c18f1fc0635c88 HEAD_REF master PATCHES NoLibSyms.patch ) diff --git a/ports/fastfeat/CONTROL b/ports/fastfeat/CONTROL index ff76128fcc0..9349930346e 100644 --- a/ports/fastfeat/CONTROL +++ b/ports/fastfeat/CONTROL @@ -1,3 +1,3 @@ Source: fastfeat -Version: 391d5e9 +Version: 391d5e9-1 Description: FAST feature detectors in C diff --git a/ports/fastfeat/portfile.cmake b/ports/fastfeat/portfile.cmake index 95d178ea4c7..7fd35b9f840 100644 --- a/ports/fastfeat/portfile.cmake +++ b/ports/fastfeat/portfile.cmake @@ -17,6 +17,7 @@ DESTINATION ${SOURCE_PATH} vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) diff --git a/ports/fastlz/CONTROL b/ports/fastlz/CONTROL index 4154ea95332..98b53557e33 100644 --- a/ports/fastlz/CONTROL +++ b/ports/fastlz/CONTROL @@ -1,4 +1,4 @@ Source: fastlz -Version: 1.0-2 +Version: 1.0-3 Homepage: https://github.com/ariya/FastLZ Description: A lightning-fast lossless compression library diff --git a/ports/fastlz/portfile.cmake b/ports/fastlz/portfile.cmake index 857dd7d0bbd..38c71aadedd 100644 --- a/ports/fastlz/portfile.cmake +++ b/ports/fastlz/portfile.cmake @@ -14,6 +14,7 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/ffmpeg/CONTROL b/ports/ffmpeg/CONTROL index 4c15656798e..3bbf544c179 100644 --- a/ports/ffmpeg/CONTROL +++ b/ports/ffmpeg/CONTROL @@ -1,5 +1,5 @@ Source: ffmpeg -Version: 4.1-8 +Version: 4.1-9 Homepage: https://ffmpeg.org Description: a library to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations. diff --git a/ports/ffmpeg/fix-debug-build.patch b/ports/ffmpeg/fix-debug-build.patch new file mode 100644 index 00000000000..324eb79f97e --- /dev/null +++ b/ports/ffmpeg/fix-debug-build.patch @@ -0,0 +1,30 @@ +diff --git a/configure b/configure +index 7c5b8a1..181fc47 100644 +--- a/configure ++++ b/configure +@@ -3906,6 +3906,9 @@ for opt do + --libfuzzer=*) + libfuzzer_path="$optval" + ;; ++ --debug) ++ enable debug_configure ++ ;; + *) + optname="${opt%%=*}" + optname="${optname#--}" +@@ -6037,8 +6040,13 @@ fi + + enabled zlib && { check_pkg_config zlib zlib "zlib.h" zlibVersion || + check_lib zlib zlib.h zlibVersion -lz; } +-enabled bzlib && check_lib bzlib bzlib.h BZ2_bzlibVersion -lbz2 +-enabled lzma && check_lib lzma lzma.h lzma_version_number -llzma ++if enabled debug_configure; then ++ enabled bzlib && check_lib bzlib bzlib.h BZ2_bzlibVersion -lbz2d ++ enabled lzma && check_lib lzma lzma.h lzma_version_number -llzmad ++else ++ enabled bzlib && check_lib bzlib bzlib.h BZ2_bzlibVersion -lbz2 ++ enabled lzma && check_lib lzma lzma.h lzma_version_number -llzma ++fi + + # On some systems dynamic loading requires no extra linker flags + check_lib libdl dlfcn.h "dlopen dlsym" || check_lib libdl dlfcn.h "dlopen dlsym" -ldl diff --git a/ports/ffmpeg/portfile.cmake b/ports/ffmpeg/portfile.cmake index 15be7468b3e..7309bd544f0 100644 --- a/ports/ffmpeg/portfile.cmake +++ b/ports/ffmpeg/portfile.cmake @@ -16,6 +16,7 @@ vcpkg_extract_source_archive_ex( fix_windowsinclude-in-ffmpegexe-1.patch fix_windowsinclude-in-ffmpegexe-2.patch fix_libvpx_windows_linking.patch + fix-debug-build.patch ) if (${SOURCE_PATH} MATCHES " ") @@ -25,7 +26,7 @@ endif() vcpkg_find_acquire_program(YASM) get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY) -if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") +if(VCPKG_TARGET_IS_WINDOWS) set(SEP ";") #We're assuming that if we're building for Windows we're using MSVC set(INCLUDE_VAR "INCLUDE") @@ -36,7 +37,7 @@ else() set(LIB_PATH_VAR "LIBRARY_PATH") endif() -if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") +if(VCPKG_TARGET_IS_WINDOWS) set(ENV{PATH} "$ENV{PATH};${YASM_EXE_PATH}") set(BUILD_SCRIPT ${CMAKE_CURRENT_LIST_DIR}\\build.sh) @@ -162,44 +163,51 @@ endif() message(STATUS "Building Options: ${OPTIONS}") -if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") +if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") - set(OPTIONS_DEBUG "${OPTIONS_DEBUG} --extra-cflags=-MDd --extra-cxxflags=-MDd") + set(OPTIONS_DEBUG "${OPTIONS_DEBUG} --extra-cflags=-MDd --extra-cxxflags=-MDd --debug") set(OPTIONS_RELEASE "${OPTIONS_RELEASE} --extra-cflags=-MD --extra-cxxflags=-MD") else() - set(OPTIONS_DEBUG "${OPTIONS_DEBUG} --extra-cflags=-MTd --extra-cxxflags=-MTd") + set(OPTIONS_DEBUG "${OPTIONS_DEBUG} --extra-cflags=-MTd --extra-cxxflags=-MTd --debug") set(OPTIONS_RELEASE "${OPTIONS_RELEASE} --extra-cflags=-MT --extra-cxxflags=-MT") endif() endif() set(ENV_LIB_PATH "$ENV{${LIB_PATH_VAR}}") -set(ENV{${LIB_PATH_VAR}} "${CURRENT_INSTALLED_DIR}/lib${SEP}${ENV_LIB_PATH}") -message(STATUS "Building ${_csc_PROJECT_PATH} for Release") -file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) -vcpkg_execute_required_process( - COMMAND ${BASH} --noprofile --norc "${BUILD_SCRIPT}" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" # BUILD DIR - "${SOURCE_PATH}" # SOURCE DIR - "${CURRENT_PACKAGES_DIR}" # PACKAGE DIR - "${OPTIONS} ${OPTIONS_RELEASE}" - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel - LOGNAME build-${TARGET_TRIPLET}-rel -) +# Relase build +if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL release) + message(STATUS "Building Relase Options: ${OPTIONS_RELEASE}") + set(ENV{${LIB_PATH_VAR}} "${CURRENT_INSTALLED_DIR}/lib${SEP}${ENV_LIB_PATH}") + message(STATUS "Building ${_csc_PROJECT_PATH} for Release") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + vcpkg_execute_required_process( + COMMAND ${BASH} --noprofile --norc "${BUILD_SCRIPT}" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" # BUILD DIR + "${SOURCE_PATH}" # SOURCE DIR + "${CURRENT_PACKAGES_DIR}" # PACKAGE DIR + "${OPTIONS} ${OPTIONS_RELEASE}" + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel + LOGNAME build-${TARGET_TRIPLET}-rel + ) +endif() -set(ENV{${LIB_PATH_VAR}} "${CURRENT_INSTALLED_DIR}/debug/lib${SEP}${ENV_LIB_PATH}") - -message(STATUS "Building ${_csc_PROJECT_PATH} for Debug") -file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) -vcpkg_execute_required_process( - COMMAND ${BASH} --noprofile --norc "${BUILD_SCRIPT}" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" # BUILD DIR - "${SOURCE_PATH}" # SOURCE DIR - "${CURRENT_PACKAGES_DIR}/debug" # PACKAGE DIR - "${OPTIONS} ${OPTIONS_DEBUG}" - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg - LOGNAME build-${TARGET_TRIPLET}-dbg -) +# Debug build +if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL debug) + message(STATUS "Building Debug Options: ${OPTIONS_DEBUG}") + set(ENV{${LIB_PATH_VAR}} "${CURRENT_INSTALLED_DIR}/debug/lib${SEP}${ENV_LIB_PATH}") + message(STATUS "Building ${_csc_PROJECT_PATH} for Debug") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + vcpkg_execute_required_process( + COMMAND ${BASH} --noprofile --norc "${BUILD_SCRIPT}" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" # BUILD DIR + "${SOURCE_PATH}" # SOURCE DIR + "${CURRENT_PACKAGES_DIR}/debug" # PACKAGE DIR + "${OPTIONS} ${OPTIONS_DEBUG}" + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg + LOGNAME build-${TARGET_TRIPLET}-dbg + ) +endif() file(GLOB DEF_FILES ${CURRENT_PACKAGES_DIR}/lib/*.def ${CURRENT_PACKAGES_DIR}/debug/lib/*.def) diff --git a/ports/forest/CONTROL b/ports/forest/CONTROL index 39fda46724f..82de142c10a 100644 --- a/ports/forest/CONTROL +++ b/ports/forest/CONTROL @@ -1,4 +1,4 @@ Source: forest -Version: 12.0.0 +Version: 12.0.3 Homepage: https://github.com/xorz57/forest -Description: Template library of tree data structures +Description: Template Library of Tree Data Structures in C++17 diff --git a/ports/forest/portfile.cmake b/ports/forest/portfile.cmake index b142d181ed4..b32febeaed9 100644 --- a/ports/forest/portfile.cmake +++ b/ports/forest/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xorz57/forest - REF 12.0.0 - SHA512 c6f7a7ca098755bc6ac2f02048962d9f1d619c2d76671e9bb558524f760c3e28604db21991c2d9ebc90ffdb12ea00708d9a4fee1f4416ee216f3ef1dea0a1b97 + REF 12.0.3 + SHA512 9a693569c1d169e0c87d88150ae223d71d9491c9ed8774fdfdeee3b6a10f25d74b0653766d04095711bc76c7a4ecbec6f98dfad6846323f5f3bd701574843f53 HEAD_REF master ) diff --git a/ports/freeglut/CONTROL b/ports/freeglut/CONTROL index 1ee44b7f370..7489109c49f 100644 --- a/ports/freeglut/CONTROL +++ b/ports/freeglut/CONTROL @@ -1,4 +1,4 @@ Source: freeglut -Version: 3.0.0-6 +Version: 3.0.0-7 Homepage: https://sourceforge.net/projects/freeglut/ Description: Open source implementation of GLUT with source and binary backwards compatibility. diff --git a/ports/freeglut/portfile.cmake b/ports/freeglut/portfile.cmake index 86d6915939d..ab95e3165a1 100644 --- a/ports/freeglut/portfile.cmake +++ b/ports/freeglut/portfile.cmake @@ -36,6 +36,7 @@ file(WRITE ${SOURCE_PATH}/include/GL/freeglut_std.h "${FREEGLUT_STDH}") vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DFREEGLUT_BUILD_STATIC_LIBS=${FREEGLUT_STATIC} -DFREEGLUT_BUILD_SHARED_LIBS=${FREEGLUT_DYNAMIC} diff --git a/ports/g3log/CONTROL b/ports/g3log/CONTROL index 71716607946..aeeee688cb4 100644 --- a/ports/g3log/CONTROL +++ b/ports/g3log/CONTROL @@ -1,3 +1,4 @@ Source: g3log -Version: 2019-05-14-1 +Version: 2019-07-29 Description: Asynchronous logger with Dynamic Sinks +Homepage: https://github.com/KjellKod/g3log diff --git a/ports/g3log/portfile.cmake b/ports/g3log/portfile.cmake index f07ae0b1c90..f0ae8a23aed 100644 --- a/ports/g3log/portfile.cmake +++ b/ports/g3log/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KjellKod/g3log - REF 376c417ad170228fa6d1b9994a6e07a2ac143a51 - SHA512 fd442b895f0be2489d2be099b1faca5c964f1a3880e3867726efb5f5a17192fbf2c2d60cf118e1b68bea73cf328f0b16c0265ec0f0c0fbbb1f62f68a994f5b86 + REF f1491791785101d4ae948f8ecee7e9cc3e6b0be8 + SHA512 852ed7c9eb2345f02414be7fb7dfbd4be340dcbf8abc4e6ba6327d181cf10e33969279166151b4eeab78b290d3fecbf4a5094696c412f7b2ab815df415652bd8 HEAD_REF master ) @@ -12,7 +12,7 @@ string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" G3_SHARED_LIB) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" G3_SHARED_RUNTIME) # https://github.com/KjellKod/g3log#prerequisites -set(VERSION "1.3.2-95") +set(VERSION "1.3.2-80") vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} diff --git a/ports/gaussianlib/CONTROL b/ports/gaussianlib/CONTROL new file mode 100644 index 00000000000..7f0be1d5a71 --- /dev/null +++ b/ports/gaussianlib/CONTROL @@ -0,0 +1,4 @@ +Source: gaussianlib +Version: 2019-08-04 +Description: Basic linear algebra C++ library for 2D and 3D applications +Homepage: https://github.com/LukasBanana/GaussianLib diff --git a/ports/gaussianlib/portfile.cmake b/ports/gaussianlib/portfile.cmake new file mode 100644 index 00000000000..219196738ef --- /dev/null +++ b/ports/gaussianlib/portfile.cmake @@ -0,0 +1,16 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO LukasBanana/GaussianLib + REF 8630d4ac14a37f01c71bdf0c1c653e3746aa08da + SHA512 70de394496f20fe7037782d16cfa4bcd85beefdb25094247b8b572e6bb55866be6e2c82722d705141919b91f24428dde7b32f3d8a39670e7ef324c81b1ebe7e2 + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/include/Gauss DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/ports/gdal/CONTROL b/ports/gdal/CONTROL index 5df9a7fa252..bf5acc08d4d 100644 --- a/ports/gdal/CONTROL +++ b/ports/gdal/CONTROL @@ -1,5 +1,5 @@ Source: gdal -Version: 2.4.1-5 +Version: 2.4.1-7 Homepage: https://gdal.org/ Description: The Geographic Data Abstraction Library for reading and writing geospatial raster and vector data. Build-Depends: proj, libpng, geos, sqlite3, curl, expat, libpq, openjpeg, libwebp, libxml2, liblzma, netcdf-c, hdf5, zlib diff --git a/ports/gdal/portfile.cmake b/ports/gdal/portfile.cmake index 61609d3d3bd..e212a42ed6e 100644 --- a/ports/gdal/portfile.cmake +++ b/ports/gdal/portfile.cmake @@ -324,6 +324,10 @@ if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStor # Copy over PDBs vcpkg_copy_pdbs() + + if(NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/gdal204.pdb) + endif() elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") # Build in UNIX # Check build system first diff --git a/ports/gherkin-c/CONTROL b/ports/gherkin-c/CONTROL index 3ded484441b..e1533180f8c 100644 --- a/ports/gherkin-c/CONTROL +++ b/ports/gherkin-c/CONTROL @@ -1,3 +1,3 @@ Source: gherkin-c -Version: 2019-10-07 +Version: 2019-10-07-1 Description: Gherkin parser/compiler in C diff --git a/ports/gherkin-c/portfile.cmake b/ports/gherkin-c/portfile.cmake index 04e104235a5..adb13076d8a 100644 --- a/ports/gherkin-c/portfile.cmake +++ b/ports/gherkin-c/portfile.cmake @@ -10,6 +10,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DBUILD_GHERKIN_TESTS=OFF ) diff --git a/ports/gl2ps/CONTROL b/ports/gl2ps/CONTROL index ae8aab8fabc..deb9483aaff 100644 --- a/ports/gl2ps/CONTROL +++ b/ports/gl2ps/CONTROL @@ -1,5 +1,5 @@ Source: gl2ps -Version: 1.4.0-1 +Version: 1.4.0-3 Homepage: https://gitlab.onelab.info/gl2ps/gl2ps Description: OpenGL to PostScript Printing Library Build-Depends: freeglut, zlib, libpng diff --git a/ports/gl2ps/portfile.cmake b/ports/gl2ps/portfile.cmake index 7f08f8de4a1..eaee5627050 100644 --- a/ports/gl2ps/portfile.cmake +++ b/ports/gl2ps/portfile.cmake @@ -1,19 +1,18 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/gl2ps-gl2ps_1_4_0-e7b16f8f80382e45b681651e6381de09250243a6) -vcpkg_download_distfile(ARCHIVE - URLS "http://gitlab.onelab.info/gl2ps/gl2ps/repository/archive.tar.gz?ref=gl2ps_1_4_0" - FILENAME "gl2ps_1_4_0.tar.gz" - SHA512 6ec18debdf94e8de22ca7084fe6fef72fb858fc6295a35fa3c98c3c45211f9f72e23a14224a85877f64031077da4978b8d5d81f24dfe18de8c2ec32a680eba60 -) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/separate-static-dynamic-build.patch" +vcpkg_from_gitlab( + GITLAB_URL http://gitlab.onelab.info + OUT_SOURCE_PATH SOURCE_PATH + REPO gl2ps/gl2ps + REF gl2ps_1_4_0 + SHA512 ee10e3fd312eae896934c39b8d115f28017874f918e4dd3350ca8f7cbf47dfc44101a5c6eb8826707620fcc336ca51ddc4eb7bf653af4b27651277625bac3cce + HEAD_REF master + PATCHES separate-static-dynamic-build.patch ) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) diff --git a/ports/glbinding/CONTROL b/ports/glbinding/CONTROL index 016283ca940..5bef7210a16 100644 --- a/ports/glbinding/CONTROL +++ b/ports/glbinding/CONTROL @@ -1,5 +1,5 @@ Source: glbinding -Version: 3.1.0-1 +Version: 3.1.0-2 Description: glbinding is an MIT licensed, cross-platform C++ binding for the OpenGL API Homepage: https://github.com/cginternals/glbinding Build-Depends: egl-registry diff --git a/ports/glbinding/portfile.cmake b/ports/glbinding/portfile.cmake index d9fb5c0b210..863426282be 100644 --- a/ports/glbinding/portfile.cmake +++ b/ports/glbinding/portfile.cmake @@ -14,6 +14,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DOPTION_BUILD_TESTS=OFF -DOPTION_BUILD_GPU_TESTS=OFF diff --git a/ports/glew/CONTROL b/ports/glew/CONTROL index 8d336de5a3a..41df4d08ce3 100644 --- a/ports/glew/CONTROL +++ b/ports/glew/CONTROL @@ -1,4 +1,4 @@ Source: glew -Version: 2.1.0-4 +Version: 2.1.0-5 Description: The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. Homepage: https://github.com/nigels-com/glew diff --git a/ports/glew/portfile.cmake b/ports/glew/portfile.cmake index 2637b209139..818ee52ea8a 100644 --- a/ports/glew/portfile.cmake +++ b/ports/glew/portfile.cmake @@ -18,6 +18,7 @@ vcpkg_extract_source_archive_ex( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH}/build/cmake + PREFER_NINJA DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_UTILS=OFF diff --git a/ports/glfw3/CONTROL b/ports/glfw3/CONTROL index 361820820e9..6cbc41564ae 100644 --- a/ports/glfw3/CONTROL +++ b/ports/glfw3/CONTROL @@ -1,4 +1,4 @@ Source: glfw3 -Version: 3.3 +Version: 3.3-1 Homepage: https://github.com/glfw/glfw Description: GLFW is a free, Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc. diff --git a/ports/glfw3/portfile.cmake b/ports/glfw3/portfile.cmake index ea3e4eaec71..c8948628fea 100644 --- a/ports/glfw3/portfile.cmake +++ b/ports/glfw3/portfile.cmake @@ -20,6 +20,7 @@ endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF diff --git a/ports/google-cloud-cpp/CONTROL b/ports/google-cloud-cpp/CONTROL index 0adc8a16ba0..a844f9749bd 100644 --- a/ports/google-cloud-cpp/CONTROL +++ b/ports/google-cloud-cpp/CONTROL @@ -1,4 +1,5 @@ Source: google-cloud-cpp -Version: 0.11.0 -Build-Depends: grpc, curl[ssl], crc32c +Version: 0.12.0 +Build-Depends: grpc, curl[ssl], crc32c, googleapis Description: C++ Client Libraries for Google Cloud Platform APIs. +Homepage: https://github.com/googleapis/google-cloud-cpp diff --git a/ports/google-cloud-cpp/portfile.cmake b/ports/google-cloud-cpp/portfile.cmake index 0ae85412a80..e9ffdd0146e 100644 --- a/ports/google-cloud-cpp/portfile.cmake +++ b/ports/google-cloud-cpp/portfile.cmake @@ -5,18 +5,19 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO googleapis/google-cloud-cpp - REF v0.11.0 - SHA512 059322c73a9632644faec7dc33fc9e390cd5aeb1576a2e6ddeeb6e4078040c47f71fe687702f04173ee86638886872046ea22e60fae3f6a8bf16f6bfb9478962 + REF v0.12.0 + SHA512 14d83e099b9d425475b963b6b4fe11c1881988afc90d87a63b2a0d17cd18f3000f725fa230b6b7487e14e383e7f3c5803122dbadd9dacdeeadc541b55074a805 HEAD_REF master ) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA + DISABLE_PARALLEL_CONFIGURE OPTIONS -DGOOGLE_CLOUD_CPP_DEPENDENCY_PROVIDER=package -DGOOGLE_CLOUD_CPP_ENABLE_MACOS_OPENSSL_CHECK=OFF - -DBUILD_TESTING=OFF + -DBUILD_TESTING=OFF ) vcpkg_install_cmake(ADD_BIN_TO_PATH) diff --git a/ports/googleapis/CONTROL b/ports/googleapis/CONTROL new file mode 100644 index 00000000000..b77e35eed98 --- /dev/null +++ b/ports/googleapis/CONTROL @@ -0,0 +1,5 @@ +Source: googleapis +Version: 0.1.1 +Build-Depends: grpc, protobuf +Description: C++ Proto Libraries for Google APIs. +Homepage: https://github.com/googleapis/cpp-cmakefiles diff --git a/ports/googleapis/portfile.cmake b/ports/googleapis/portfile.cmake new file mode 100644 index 00000000000..684b4cbdbe9 --- /dev/null +++ b/ports/googleapis/portfile.cmake @@ -0,0 +1,32 @@ +include(vcpkg_common_functions) + +if (VCPKG_TARGET_IS_UWP) + message(FATAL_ERROR "Package `googleapis` doesn't support UWP") +endif() + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO googleapis/cpp-cmakefiles + REF v0.1.1 + SHA512 e23af2d0d36d4e13da761473b78b958326b9c7fd4aaf0c4b6742ae498b65aafe73976f7c858365b041aa667f280c10eca6df7e87644c260fc022ec4eee7a7bc6 + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake(ADD_BIN_TO_PATH) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake TARGET_PATH share) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/googleapis RENAME copyright) + +vcpkg_copy_pdbs() + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) diff --git a/ports/googleapis/usage b/ports/googleapis/usage new file mode 100644 index 00000000000..00ca628e56f --- /dev/null +++ b/ports/googleapis/usage @@ -0,0 +1,6 @@ +The package googleapis is compatible with built-in CMake targets: + + find_package(googleapis CONFIG REQUIRED) + + # Then link against the proto libraries that you want to use, for example: + target_link_libraries(main PRIVATE googleapis-c++::bigtable_protos gRPC::grpc gRPC::grpc++) diff --git a/ports/graphicsmagick/CONTROL b/ports/graphicsmagick/CONTROL index 631fd52f3c6..350ccd1785b 100644 --- a/ports/graphicsmagick/CONTROL +++ b/ports/graphicsmagick/CONTROL @@ -1,6 +1,6 @@ Source: graphicsmagick Maintainer: josuegomes@gmail.com -Version: 1.3.32 +Version: 1.3.32-1 Build-Depends: zlib, bzip2, freetype, libjpeg-turbo, libpng, tiff Homepage: https://sourceforge.net/projects/graphicsmagick/ Description: Image processing library diff --git a/ports/graphicsmagick/portfile.cmake b/ports/graphicsmagick/portfile.cmake index b976bfbee0c..1764b30e724 100644 --- a/ports/graphicsmagick/portfile.cmake +++ b/ports/graphicsmagick/portfile.cmake @@ -28,6 +28,7 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/magick_types.h DESTINATION ${SOURCE_PATH}/ma vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS_DEBUG -DINSTALL_HEADERS=OFF ) diff --git a/ports/harfbuzz/CONTROL b/ports/harfbuzz/CONTROL index 39bce80107e..8952d04d4b9 100644 --- a/ports/harfbuzz/CONTROL +++ b/ports/harfbuzz/CONTROL @@ -1,5 +1,5 @@ Source: harfbuzz -Version: 2.5.1-1 +Version: 2.5.3 Description: HarfBuzz OpenType text shaping engine Homepage: https://github.com/behdad/harfbuzz Build-Depends: freetype, ragel, gettext (osx) diff --git a/ports/harfbuzz/portfile.cmake b/ports/harfbuzz/portfile.cmake index d7fbd9a0d6a..98e6b15af8d 100644 --- a/ports/harfbuzz/portfile.cmake +++ b/ports/harfbuzz/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO harfbuzz/harfbuzz - REF 2.5.1 - SHA512 e8b4b98e65d809579456551e4dd70bdd847d02cbfa80df479f6f544eff2bdbfaa7502f22e5f4e5217f063badc8874f6e568d49e9c40ab752b233fafa9e74aeab + REF 2.5.3 + SHA512 d541463b3647fc2c7ddaa29aedcea1c3bde5e26e0d529384d66d630af3aaf2a4befb3c4d47c93833f099339a0f951fb132011a02c57fc00ba543bd1b17026ffa HEAD_REF master PATCHES 0001-fix-cmake-export.patch diff --git a/ports/hdf5/CONTROL b/ports/hdf5/CONTROL index 18f03e48714..542062c5067 100644 --- a/ports/hdf5/CONTROL +++ b/ports/hdf5/CONTROL @@ -1,12 +1,12 @@ Source: hdf5 -Version: 1.10.5-7 +Version: 1.10.5-8 Homepage: https://www.hdfgroup.org/downloads/hdf5/ Description: HDF5 is a data model, library, and file format for storing and managing data Build-Depends: zlib, szip Feature: parallel Description: parallel support for HDF5 -Build-Depends: msmpi +Build-Depends: mpi Feature: cpp Description: Builds cpp lib diff --git a/ports/hypre/CONTROL b/ports/hypre/CONTROL index 907e64b87ba..91d281589a3 100644 --- a/ports/hypre/CONTROL +++ b/ports/hypre/CONTROL @@ -1,5 +1,5 @@ Source: hypre -Version: 2.11.2-1 +Version: 2.11.2-2 Homepage: https://computation.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods Description: SCALABLE LINEAR SOLVERS AND MULTIGRID METHODS -Build-Depends: msmpi +Build-Depends: mpi diff --git a/ports/hypre/portfile.cmake b/ports/hypre/portfile.cmake index a0b38216e77..f8ab07b9d0f 100644 --- a/ports/hypre/portfile.cmake +++ b/ports/hypre/portfile.cmake @@ -25,6 +25,7 @@ endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS ${OPTIONS} OPTIONS_RELEASE diff --git a/ports/imgui/CONTROL b/ports/imgui/CONTROL index 6de881a9a36..203556f6fa2 100644 --- a/ports/imgui/CONTROL +++ b/ports/imgui/CONTROL @@ -1,4 +1,4 @@ Source: imgui -Version: 1.70-1 +Version: 1.72b Homepage: https://github.com/ocornut/imgui Description: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies. diff --git a/ports/imgui/portfile.cmake b/ports/imgui/portfile.cmake index 2acebc0c8af..79c2bb3185f 100644 --- a/ports/imgui/portfile.cmake +++ b/ports/imgui/portfile.cmake @@ -5,8 +5,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ocornut/imgui - REF v1.70 - SHA512 b1a0fba339a9b19a49316494e58eabacd250e85e8ee17552c03ed99f50886072c882979039f18139e504c4406cf31aea3e9ce391d4641318f0022fa9b51bb9c4 + REF v1.72b + SHA512 ed40f2647a2256e61b6c754d091df364f23c93d7c008a838f7816e2924e16bea3d1251b675e1bd69256697d77f17372e5b29d986720ed5fb63ede94f9e813ede HEAD_REF master ) diff --git a/ports/itk/CONTROL b/ports/itk/CONTROL index b77968554c1..d9e0bde62e0 100644 --- a/ports/itk/CONTROL +++ b/ports/itk/CONTROL @@ -1,5 +1,5 @@ Source: itk -Version: 5.0.0-2 +Version: 5.0.1 Description: Insight Segmentation and Registration Toolkit (ITK) is used for image processing and analysis. Homepage: https://github.com/InsightSoftwareConsortium/ITK Build-Depends: double-conversion, libjpeg-turbo, zlib, libpng, tiff, expat, eigen3, hdf5[cpp], openjpeg diff --git a/ports/itk/portfile.cmake b/ports/itk/portfile.cmake index a83527a51f6..e0ebaaecfa2 100644 --- a/ports/itk/portfile.cmake +++ b/ports/itk/portfile.cmake @@ -10,8 +10,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO InsightSoftwareConsortium/ITK - REF v5.0.0 - SHA512 7eecd62ab3124147f0abce482699dfdc43610703959d4a3f667c8ce12a6ecacf836a863d146f3cc7d5220b4aa05adf70a0d4dc6fa8e87bac215565badc96acff + REF v5.0.1 + SHA512 242ce66cf83f82d26f20d2099108295e28c8875e7679126ba023834bf0e94454460ba86452a94c8ddaea93d2314befc399f2b151d7294370d4b47f0e9798e77f HEAD_REF master PATCHES fix_openjpeg_search.patch @@ -35,8 +35,6 @@ vcpkg_configure_cmake( -DITK_INSTALL_DATA_DIR=share/itk/data -DITK_INSTALL_DOC_DIR=share/itk/doc -DITK_INSTALL_PACKAGE_DIR=share/itk - -DITK_LEGACY_REMOVE=ON - -DITK_FUTURE_LEGACY_REMOVE=ON -DITK_USE_64BITS_IDS=ON -DITK_USE_CONCEPT_CHECKING=ON #-DITK_USE_SYSTEM_LIBRARIES=ON # enables USE_SYSTEM for all third party libraries, some of which do not have vcpkg ports such as CastXML, SWIG, MINC etc diff --git a/ports/itpp/CONTROL b/ports/itpp/CONTROL index 623b2fc6b41..95a49293b22 100644 --- a/ports/itpp/CONTROL +++ b/ports/itpp/CONTROL @@ -1,3 +1,3 @@ Source: itpp -Version: 4.3.1 +Version: 4.3.1-1 Description: IT++ is a C++ library of mathematical, signal processing and communication classes and functions. Its main use is in simulation of communication systems and for performing research in the area of communications. \ No newline at end of file diff --git a/ports/itpp/fix-linux.patch b/ports/itpp/fix-linux.patch index 5e7bb64c0b1..18b66af5f16 100644 --- a/ports/itpp/fix-linux.patch +++ b/ports/itpp/fix-linux.patch @@ -1,13 +1,17 @@ diff --git a/itpp/base/random_dsfmt.h b/itpp/base/random_dsfmt.h -index ccbf182..a3d5472 100644 +index ccbf182..de819fb 100644 --- a/itpp/base/random_dsfmt.h +++ b/itpp/base/random_dsfmt.h -@@ -299,7 +299,7 @@ private: +@@ -299,7 +299,12 @@ private: */ static void do_recursion(typename Context::w128_t *r, typename Context::w128_t *a, typename Context::w128_t *b, typename Context::w128_t *lung) { #if defined(__SSE2__) -- const unsigned int SSE2_SHUFF = 0x1bU; ++ ++#ifdef __linux__ +#define SSE2_SHUFF 0x1bU ++#else + const unsigned int SSE2_SHUFF = 0x1bU; ++#endif __m128i x = a->si; __m128i z = _mm_slli_epi64(x, SL1); diff --git a/ports/itpp/fix-uwp.patch b/ports/itpp/fix-uwp.patch index 18e5fe4ebbe..69805922a4c 100644 --- a/ports/itpp/fix-uwp.patch +++ b/ports/itpp/fix-uwp.patch @@ -1,12 +1,15 @@ diff --git a/itpp/base/timing.cpp b/itpp/base/timing.cpp -index 58178e4..47d662e 100644 +index 58178e4..6b173d0 100644 --- a/itpp/base/timing.cpp +++ b/itpp/base/timing.cpp -@@ -51,6 +51,7 @@ - +@@ -52,6 +52,10 @@ #if defined(_WIN32) && !defined(__CYGWIN__) #include -+#include ++#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP) ++#include ++#endif ++ int gettimeofday(struct timeval* p, void*) { + union { diff --git a/ports/itpp/portfile.cmake b/ports/itpp/portfile.cmake index 10faf48822a..84fc651e433 100644 --- a/ports/itpp/portfile.cmake +++ b/ports/itpp/portfile.cmake @@ -13,20 +13,10 @@ vcpkg_extract_source_archive_ex( REF ${ITPP_VERSION} PATCHES msvc2013.patch + fix-uwp.patch + fix-linux.patch ) -if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES fix-uwp.patch - ) -elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") - vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES fix-linux.patch - ) -endif() - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA diff --git a/ports/jack2/CONTROL b/ports/jack2/CONTROL index d665dbe2410..fb3fed91fa9 100644 --- a/ports/jack2/CONTROL +++ b/ports/jack2/CONTROL @@ -1,5 +1,5 @@ Source: jack2 -Version: 1.9.12-1 +Version: 1.9.12-2 Homepage: https://github.com/jackaudio/jack2 Description: Cross-platform API that enables device sharing and inter-application audio routing diff --git a/ports/jack2/portfile.cmake b/ports/jack2/portfile.cmake index f7109aafdc6..3cb59189e5a 100644 --- a/ports/jack2/portfile.cmake +++ b/ports/jack2/portfile.cmake @@ -15,6 +15,7 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/jsoncons/CONTROL b/ports/jsoncons/CONTROL index 8b01549ef14..7158ab58077 100644 --- a/ports/jsoncons/CONTROL +++ b/ports/jsoncons/CONTROL @@ -1,3 +1,4 @@ -Source: jsoncons -Version: 0.125.0 -Description: A C++, header-only library for constructing JSON and JSON-like text and binary data formats, with JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON +Source: jsoncons +Version: 0.131.2 +Description: A C++, header-only library for constructing JSON and JSON-like text and binary data formats, with JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON +Homepage: https://github.com/danielaparker/jsoncons diff --git a/ports/jsoncons/portfile.cmake b/ports/jsoncons/portfile.cmake index fb00be0adde..7c6af87b59f 100644 --- a/ports/jsoncons/portfile.cmake +++ b/ports/jsoncons/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO danielaparker/jsoncons - REF v0.125.0 - SHA512 60969fa9bb47c8ee2e01c9333322940c7e9063e4c7761fa54f9d2bba8e49815145e2b48f2bc528a5b3b5316aded2930cdf410a29ce608df09a561a4650d20e15 + REF v0.131.2 + SHA512 7053a971cbc6e12623b65f98323c0d330c903f2b5eae9191369a9a04ae87654e8fa435139e9a72829a1ef9a957e3d4837362c90668f42ba8a0eedc80207e6eef HEAD_REF master ) diff --git a/ports/jxrlib/CONTROL b/ports/jxrlib/CONTROL index f104c4c844d..8ed2805a4f7 100644 --- a/ports/jxrlib/CONTROL +++ b/ports/jxrlib/CONTROL @@ -1,4 +1,4 @@ Source: jxrlib -Version: 1.1-7 +Version: 1.1-8 Homepage: https://github.com/4creators/jxrlib Description: Open source implementation of the jpegxr image format standard. diff --git a/ports/jxrlib/portfile.cmake b/ports/jxrlib/portfile.cmake index 43358fa1548..76b0f61fa6a 100644 --- a/ports/jxrlib/portfile.cmake +++ b/ports/jxrlib/portfile.cmake @@ -22,6 +22,7 @@ endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/kangaru/CONTROL b/ports/kangaru/CONTROL index 6990d51902e..9f7e93f1b47 100644 --- a/ports/kangaru/CONTROL +++ b/ports/kangaru/CONTROL @@ -1,3 +1,3 @@ Source: kangaru -Version: 4.1.3-1 +Version: 4.2.0 Description: A dependency injection container for C++11, C++14 and later diff --git a/ports/kangaru/portfile.cmake b/ports/kangaru/portfile.cmake index 15af5ded0ce..c4ede7a3db3 100644 --- a/ports/kangaru/portfile.cmake +++ b/ports/kangaru/portfile.cmake @@ -3,14 +3,15 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gracicot/kangaru - REF v4.1.3 - SHA512 7cfec493dff475c8fe88e336638897096359d3781ab8944aa6bb8f5b68a4dbc993f769142d0143ae5db751159cee1b125ea2728e8b73747950572c84ea354090 + REF v4.2.0 + SHA512 8495add3074370edaef397fa298d6e5305165c3d8e2d5abfa18b0853418cd47a75a38753d33bc58f1d038f1a8d0c8812b9763a822d580641e98c331495946b50 HEAD_REF master ) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - OPTIONS -DKANGARU_EXPORT=Off -DKANGARU_TEST=Off + PREFER_NINJA + OPTIONS -DKANGARU_EXPORT=Off -DKANGARU_TEST=Off -DKANGARU_REVERSE_DESTRUCTION=On ) vcpkg_install_cmake() diff --git a/ports/kealib/CONTROL b/ports/kealib/CONTROL index 9e2b6549c6b..bb2b4cd4877 100644 --- a/ports/kealib/CONTROL +++ b/ports/kealib/CONTROL @@ -1,9 +1,9 @@ Source: kealib -Version: 1.4.11 +Version: 1.4.11-1 Build-Depends: hdf5[cpp], zlib, szip Homepage: https://bitbucket.org/chchrsc/kealib Description: kealib is gdal model using HDF5 standard. Feature: parallel Description: Use parallel support for HDF5 -Build-Depends: hdf5[parallel], msmpi +Build-Depends: hdf5[parallel], mpi diff --git a/ports/leaf/CONTROL b/ports/leaf/CONTROL index 27db9dc33e6..d85d93d9af4 100644 --- a/ports/leaf/CONTROL +++ b/ports/leaf/CONTROL @@ -1,3 +1,3 @@ Source: leaf -Version: 0.2.1-1 +Version: 0.2.1-2 Description: Lightweight error augmentation framework \ No newline at end of file diff --git a/ports/leaf/portfile.cmake b/ports/leaf/portfile.cmake index 64d6ae50e30..1ff5e1e536f 100644 --- a/ports/leaf/portfile.cmake +++ b/ports/leaf/portfile.cmake @@ -10,6 +10,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/libcerf/001-fix-static-build.patch b/ports/libcerf/001-fix-static-build.patch new file mode 100644 index 00000000000..ffaeaedfbf4 --- /dev/null +++ b/ports/libcerf/001-fix-static-build.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f79581f..4fc9457 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -56,6 +56,8 @@ if(MSVC) + # set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/$) + if(BUILD_SHARED_LIBS) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) ++ else() ++ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") + endif() + else() + add_compile_options(-O2 -Wno-sign-compare -fno-omit-frame-pointer) diff --git a/ports/libcerf/CONTROL b/ports/libcerf/CONTROL new file mode 100644 index 00000000000..72b1324d346 --- /dev/null +++ b/ports/libcerf/CONTROL @@ -0,0 +1,4 @@ +Source: libcerf +Version: 1.13 +Description: A self-contained numeric library that provides an efficient and accurate implementation of complex error functions, along with Dawson, Faddeeva, and Voigt functions. +Homepage: https://jugit.fz-juelich.de/mlz/libcerf diff --git a/ports/libcerf/portfile.cmake b/ports/libcerf/portfile.cmake new file mode 100644 index 00000000000..20e3c7c7084 --- /dev/null +++ b/ports/libcerf/portfile.cmake @@ -0,0 +1,35 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + set(BUILD_SHARED_LIBS ON) +else() + set(BUILD_SHARED_LIBS OFF) +endif() + +vcpkg_download_distfile(ARCHIVE + URLS "https://jugit.fz-juelich.de/mlz/libcerf/uploads/924b8d245ad3461107ec630734dfc781/libcerf-1.13.tgz" + FILENAME "libcerf-1.13.tgz" + SHA512 4df711d3e9fd00de99959c3253a9565d1dc2c41f75a5800ced9c52f89cbd13185fbdca3ad75de788fd16c044082738ab345b7fb6a8820ac588edafe1812944aa +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES 001-fix-static-build.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DCERF_CPP=ON + -DLIB_MAN=OFF + -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libcerf RENAME copyright) + +vcpkg_test_cmake(PACKAGE_NAME libcerf) diff --git a/ports/libconfig/CONTROL b/ports/libconfig/CONTROL index 8b64a280e0d..3cbedcf5c4a 100644 --- a/ports/libconfig/CONTROL +++ b/ports/libconfig/CONTROL @@ -1,4 +1,4 @@ Source: libconfig -Version: 1.7.2 +Version: 1.7.2-1 Homepage: https://github.com/hyperrealm/libconfig Description: C/C++ library for processing configuration files diff --git a/ports/libconfig/portfile.cmake b/ports/libconfig/portfile.cmake index 9456636a933..a3958d342df 100644 --- a/ports/libconfig/portfile.cmake +++ b/ports/libconfig/portfile.cmake @@ -13,6 +13,7 @@ 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 ) diff --git a/ports/libevent/CONTROL b/ports/libevent/CONTROL index 95a4c37dafe..a05a77edd71 100644 --- a/ports/libevent/CONTROL +++ b/ports/libevent/CONTROL @@ -1,5 +1,5 @@ Source: libevent -Version: 2.1.10 +Version: 2.1.11 Build-Depends: openssl Homepage: https://github.com/libevent/libevent Description: An event notification library diff --git a/ports/libevent/fix-arm_build.patch b/ports/libevent/fix-arm_build.patch deleted file mode 100644 index 7bfad04496b..00000000000 --- a/ports/libevent/fix-arm_build.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 44b6e18..19c024f 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -322,7 +322,7 @@ endif() - # Winsock. - if(WIN32) - set(CMAKE_EXTRA_INCLUDE_FILES winsock2.h ws2tcpip.h) -- set(CMAKE_REQUIRED_LIBRARIES ws2_32.lib) -+ set(CMAKE_REQUIRED_LIBRARIES ws2_32.lib advapi32.lib shell32.lib) - set(CMAKE_REQUIRED_DEFINITIONS -FIwinsock2.h -FIws2tcpip.h) - endif() - if (SOLARIS) -diff --git a/cmake/AddEventLibrary.cmake b/cmake/AddEventLibrary.cmake -index 411ca9d..869735e 100644 ---- a/cmake/AddEventLibrary.cmake -+++ b/cmake/AddEventLibrary.cmake -@@ -73,6 +73,8 @@ macro(add_event_library LIB_NAME) - list(APPEND ADD_EVENT_LIBRARY_TARGETS "${LIB_NAME}_static") - - set(ADD_EVENT_LIBRARY_INTERFACE "${LIB_NAME}_static") -+ -+ target_link_libraries("${LIB_NAME}_static" PRIVATE ${CMAKE_REQUIRED_LIBRARIES}) - endif() - - if (${EVENT_LIBRARY_SHARED}) -@@ -81,7 +83,8 @@ macro(add_event_library LIB_NAME) - target_link_libraries("${LIB_NAME}_shared" - ${CMAKE_THREAD_LIBS_INIT} - ${LIB_PLATFORM} -- ${LIB_LIBRARIES}) -+ ${LIB_LIBRARIES} -+ ${CMAKE_REQUIRED_LIBRARIES}) - - if (EVENT_SHARED_FLAGS) - set_event_shared_lib_flags("${LIB_NAME}" "${EVENT_SHARED_FLAGS}") diff --git a/ports/libevent/portfile.cmake b/ports/libevent/portfile.cmake index ee3fdd3b68d..91c915b92d1 100644 --- a/ports/libevent/portfile.cmake +++ b/ports/libevent/portfile.cmake @@ -7,11 +7,10 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libevent/libevent - REF release-2.1.10-stable - SHA512 8c336df258f7a12164da739b0ea68bebcc8b2ea4f4a839300aa1c5edfb673ac5d6517f882ba04ab35d406489ddd682a319e39fa6784ac0cab73227d42e503a55 + REF release-2.1.11-stable + SHA512 a34ca4ad4d55a989a4f485f929d0ed2438d070d0e12a19d90c2b12783a562419c64db6a2603b093d958a75246d14ffefc8730c69c90b1b2f48339bde947f0e02 PATCHES fix-file_path.patch - fix-arm_build.patch ) if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") @@ -34,16 +33,20 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - -if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "windows" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") +if (VCPKG_TARGET_IS_WINDOWS) vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/libevent) -elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") - vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake TARGET_PATH share) -elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") +else () vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake TARGET_PATH share) endif() +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/libevent/) +file(RENAME ${CURRENT_PACKAGES_DIR}/bin/event_rpcgen.py ${CURRENT_PACKAGES_DIR}/tools/libevent/event_rpcgen.py) + +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() file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libevent) diff --git a/ports/libfreenect2/CONTROL b/ports/libfreenect2/CONTROL index bb0b6387177..6734e25cc63 100644 --- a/ports/libfreenect2/CONTROL +++ b/ports/libfreenect2/CONTROL @@ -1,5 +1,5 @@ Source: libfreenect2 -Version: 0.2.0-2 +Version: 0.2.0-3 Build-Depends: libusb, libjpeg-turbo Homepage: https://github.com/OpenKinect/libfreenect2 Description: Open source drivers for the Kinect for Windows v2 device diff --git a/ports/libfreenect2/portfile.cmake b/ports/libfreenect2/portfile.cmake index 839c7073ea4..9ca8867fb3a 100644 --- a/ports/libfreenect2/portfile.cmake +++ b/ports/libfreenect2/portfile.cmake @@ -20,6 +20,7 @@ file(WRITE ${SOURCE_PATH}/examples/CMakeLists.txt "${EXAMPLECMAKE}") vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DENABLE_CUDA=OFF ) diff --git a/ports/libmad/CONTROL b/ports/libmad/CONTROL index ae26eebab30..e3adc42be8a 100644 --- a/ports/libmad/CONTROL +++ b/ports/libmad/CONTROL @@ -1,3 +1,3 @@ Source: libmad -Version: 0.15.1-2 +Version: 0.15.1-3 Description: high-quality MPEG audio decoder diff --git a/ports/libmad/portfile.cmake b/ports/libmad/portfile.cmake index cc50279631c..9c1f43b56ee 100644 --- a/ports/libmad/portfile.cmake +++ b/ports/libmad/portfile.cmake @@ -24,6 +24,7 @@ file(COPY ${SOURCE_PATH}/msvc++/mad.h DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/libmariadb/CONTROL b/ports/libmariadb/CONTROL index 887a52ed026..0e3327bb4c0 100644 --- a/ports/libmariadb/CONTROL +++ b/ports/libmariadb/CONTROL @@ -1,4 +1,4 @@ Source: libmariadb -Version: 3.0.10-2 +Version: 3.0.10-3 Homepage: https://github.com/MariaDB/mariadb-connector-c Description: MariaDB Connector/C is used to connect C/C++ applications to MariaDB and MySQL databases diff --git a/ports/libmariadb/portfile.cmake b/ports/libmariadb/portfile.cmake index 5fab1502c89..ebf8b9f24e5 100644 --- a/ports/libmariadb/portfile.cmake +++ b/ports/libmariadb/portfile.cmake @@ -19,6 +19,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DWITH_UNITTEST=OFF -DWITH_SSL=OFF diff --git a/ports/libmspack/CONTROL b/ports/libmspack/CONTROL index de476a430ce..c81f19005f7 100644 --- a/ports/libmspack/CONTROL +++ b/ports/libmspack/CONTROL @@ -1,5 +1,5 @@ Source: libmspack -Version: 0.10.1 +Version: 0.10.1-1 Build-Depends: Homepage: https://www.cabextract.org.uk/libmspack Description: libmspack is a portable library for some loosely related Microsoft compression formats. diff --git a/ports/libmspack/portfile.cmake b/ports/libmspack/portfile.cmake index 759f017248c..b476ad9a62e 100644 --- a/ports/libmspack/portfile.cmake +++ b/ports/libmspack/portfile.cmake @@ -18,6 +18,7 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/libmspack.def DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/libnice/CONTROL b/ports/libnice/CONTROL index 2d542c41d9d..8f79f6b0a00 100644 --- a/ports/libnice/CONTROL +++ b/ports/libnice/CONTROL @@ -1,5 +1,5 @@ Source: libnice -Version: 0.1.15 +Version: 0.1.15-1 Homepage: https://nice.freedesktop.org Description: Libnice is an implementation of the IETF's Interactive Connectivity Establishment (ICE) standard (RFC 5245) and the Session Traversal Utilities for NAT (STUN) standard (RFC 5389). Build-Depends: glib, openssl diff --git a/ports/libnice/portfile.cmake b/ports/libnice/portfile.cmake index 2c0f87afee1..14fb0d646c5 100644 --- a/ports/libnice/portfile.cmake +++ b/ports/libnice/portfile.cmake @@ -15,6 +15,7 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS_RELEASE -DOPTIMIZE=1 OPTIONS_DEBUG -DDEBUGGABLE=1 ) diff --git a/ports/libodb-boost/CONTROL b/ports/libodb-boost/CONTROL index 24f7d18b92e..3dec8410355 100644 --- a/ports/libodb-boost/CONTROL +++ b/ports/libodb-boost/CONTROL @@ -1,4 +1,4 @@ Source: libodb-boost -Version: 2.4.0-2 +Version: 2.4.0-3 Description: Description: Boost support for the ODB ORM library Build-Depends: libodb diff --git a/ports/libodb-boost/portfile.cmake b/ports/libodb-boost/portfile.cmake index 212e6b01ae5..dc94a232f51 100644 --- a/ports/libodb-boost/portfile.cmake +++ b/ports/libodb-boost/portfile.cmake @@ -14,6 +14,7 @@ file(COPY vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS_DEBUG -DLIBODB_INSTALL_HEADERS=OFF ) diff --git a/ports/libodb-mysql/CONTROL b/ports/libodb-mysql/CONTROL index fe5a28e8acf..7d2ee12f112 100644 --- a/ports/libodb-mysql/CONTROL +++ b/ports/libodb-mysql/CONTROL @@ -1,5 +1,5 @@ Source: libodb-mysql -Version: 2.4.0-2 +Version: 2.4.0-3 Homepage: https://www.codesynthesis.com/products/odb/ Description: MySQL support for the ODB ORM library Build-Depends: libodb, libmysql \ No newline at end of file diff --git a/ports/libodb-mysql/portfile.cmake b/ports/libodb-mysql/portfile.cmake index 88684bd3575..cf2d8b8c790 100644 --- a/ports/libodb-mysql/portfile.cmake +++ b/ports/libodb-mysql/portfile.cmake @@ -35,6 +35,7 @@ set(MYSQL_LIB "${CURRENT_INSTALLED_DIR}/lib/libmysql.lib") set(MYSQL_LIB_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib/libmysql.lib") vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DMYSQL_INCLUDE_DIR=${MYSQL_INCLUDE_DIR} OPTIONS_RELEASE diff --git a/ports/libodb-pgsql/CONTROL b/ports/libodb-pgsql/CONTROL index d35291135e5..a6988eeb0c5 100644 --- a/ports/libodb-pgsql/CONTROL +++ b/ports/libodb-pgsql/CONTROL @@ -1,5 +1,5 @@ Source: libodb-pgsql -Version: 2.4.0-2 +Version: 2.4.0-3 Homepage: https://www.codesynthesis.com/products/odb/ Description: Description: PostgreSQL support for the ODB ORM library Build-Depends: libodb, libpq diff --git a/ports/libodb-pgsql/portfile.cmake b/ports/libodb-pgsql/portfile.cmake index 3e31f2aa738..ed9f35034b1 100644 --- a/ports/libodb-pgsql/portfile.cmake +++ b/ports/libodb-pgsql/portfile.cmake @@ -14,6 +14,7 @@ file(COPY vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS_DEBUG -DLIBODB_INSTALL_HEADERS=OFF ) diff --git a/ports/libodb-sqlite/CONTROL b/ports/libodb-sqlite/CONTROL index a8d9ef41f22..ed02fa81555 100644 --- a/ports/libodb-sqlite/CONTROL +++ b/ports/libodb-sqlite/CONTROL @@ -1,5 +1,5 @@ Source: libodb-sqlite -Version: 2.4.0-3 +Version: 2.4.0-4 Homepage: https://www.codesynthesis.com/products/odb/ Description: Sqlite support for the ODB ORM library Build-Depends: libodb, sqlite3 diff --git a/ports/libodb-sqlite/portfile.cmake b/ports/libodb-sqlite/portfile.cmake index b301169a70a..67e4ffb3785 100644 --- a/ports/libodb-sqlite/portfile.cmake +++ b/ports/libodb-sqlite/portfile.cmake @@ -22,6 +22,7 @@ file(COPY vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS_DEBUG -DLIBODB_INSTALL_HEADERS=OFF ) diff --git a/ports/libodb/CONTROL b/ports/libodb/CONTROL index 049a1bd1273..129db70ab49 100644 --- a/ports/libodb/CONTROL +++ b/ports/libodb/CONTROL @@ -1,4 +1,4 @@ Source: libodb -Version: 2.4.0-4 +Version: 2.4.0-5 Homepage: https://www.codesynthesis.com/products/odb/ Description: ODB library, base runtime for the ODB ORM solution diff --git a/ports/libodb/portfile.cmake b/ports/libodb/portfile.cmake index 1ca5d4a1a01..7e48f43e526 100644 --- a/ports/libodb/portfile.cmake +++ b/ports/libodb/portfile.cmake @@ -22,6 +22,7 @@ file(COPY vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS_DEBUG -DLIBODB_INSTALL_HEADERS=OFF ) diff --git a/ports/libpmemobj-cpp/CONTROL b/ports/libpmemobj-cpp/CONTROL index ec1eb362860..1c692e8eb0c 100644 --- a/ports/libpmemobj-cpp/CONTROL +++ b/ports/libpmemobj-cpp/CONTROL @@ -1,4 +1,4 @@ Source: libpmemobj-cpp -Version: 1.6-1 +Version: 1.7 #Build-Depends: pmdk Description: C++ bindings for libpmemobj (https://github.com/pmem/pmdk). \ No newline at end of file diff --git a/ports/libpmemobj-cpp/portfile.cmake b/ports/libpmemobj-cpp/portfile.cmake index 45771140493..d60ee33760c 100644 --- a/ports/libpmemobj-cpp/portfile.cmake +++ b/ports/libpmemobj-cpp/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pmem/libpmemobj-cpp - REF 1.6 - SHA512 c9a90ebc6e3231b9fcc86c9c55cc8dc219b663b39828680fb58ad7229dba1d60428c34824445f627350013bf32b83e5f0f9c2d4c17054f2321d5200832e6fea0 + REF 1.7 + SHA512 1caea1227baa0f36190a108cbf7150fd7022175a138d81167bb25d4b1c5dba14a5c16c37477f8895b5c4f9fd460c7c43560ceeccc4ad088f94b50de18637173b HEAD_REF master ) diff --git a/ports/librabbitmq/CONTROL b/ports/librabbitmq/CONTROL index 38287971d47..9f2d0fae638 100644 --- a/ports/librabbitmq/CONTROL +++ b/ports/librabbitmq/CONTROL @@ -1,5 +1,5 @@ Source: librabbitmq -Version: 0.9.0 +Version: 0.9.0-1 Build-Depends: openssl Homepage: https://github.com/alanxz/rabbitmq-c Description: A C-language AMQP client library for use with v2.0+ of the RabbitMQ broker. diff --git a/ports/librabbitmq/portfile.cmake b/ports/librabbitmq/portfile.cmake index 79463c26c99..3bf4d25cca2 100644 --- a/ports/librabbitmq/portfile.cmake +++ b/ports/librabbitmq/portfile.cmake @@ -15,6 +15,7 @@ string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF diff --git a/ports/librdkafka/CONTROL b/ports/librdkafka/CONTROL index f4030ff086a..9b520bbe3cb 100644 --- a/ports/librdkafka/CONTROL +++ b/ports/librdkafka/CONTROL @@ -1,5 +1,5 @@ Source: librdkafka -Version: 1.1.0 +Version: 1.1.0-1 Description: The Apache Kafka C/C++ library Homepage: https://github.com/edenhill/librdkafka @@ -18,3 +18,6 @@ Build-Depends: zlib Feature: zstd Description: Build with zstd Build-Depends: zstd + +Feature: snappy +Description: Build with snappy diff --git a/ports/librdkafka/portfile.cmake b/ports/librdkafka/portfile.cmake index 5bc66fdfa9e..84c50c8faed 100644 --- a/ports/librdkafka/portfile.cmake +++ b/ports/librdkafka/portfile.cmake @@ -17,6 +17,7 @@ vcpkg_check_features( ssl WITH_SSL zlib WITH_ZLIB zstd WITH_ZSTD + snappy WITH_SNAPPY ) vcpkg_configure_cmake( diff --git a/ports/libsamplerate/CONTROL b/ports/libsamplerate/CONTROL index dc0bf20dc25..36e5df98c34 100644 --- a/ports/libsamplerate/CONTROL +++ b/ports/libsamplerate/CONTROL @@ -1,4 +1,4 @@ Source: libsamplerate -Version: 0.1.9.0 +Version: 0.1.9.0-1 Homepage: https://www.mega-nerd.com/SRC Description: Sample Rate Converter for audio diff --git a/ports/libsamplerate/portfile.cmake b/ports/libsamplerate/portfile.cmake index 87712f6d2f1..9cd648a6d9d 100644 --- a/ports/libsamplerate/portfile.cmake +++ b/ports/libsamplerate/portfile.cmake @@ -15,6 +15,7 @@ file(COPY ${SOURCE_PATH}/Win32/config.h DESTINATION ${SOURCE_PATH}/src) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH}/src + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/libusb/CONTROL b/ports/libusb/CONTROL index e4229daed35..d8b7d7042cd 100644 --- a/ports/libusb/CONTROL +++ b/ports/libusb/CONTROL @@ -1,4 +1,4 @@ Source: libusb -Version: 1.0.22-3 +Version: 1.0.22-4 Homepage: https://github.com/libusb/libusb Description: a cross-platform library to access USB devices diff --git a/ports/libusb/portfile.cmake b/ports/libusb/portfile.cmake index d5047841fe9..9ab38c869fb 100644 --- a/ports/libusb/portfile.cmake +++ b/ports/libusb/portfile.cmake @@ -18,7 +18,7 @@ vcpkg_from_github( fix_c2001.patch ) -if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") +if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_PLATFORM_TOOLSET MATCHES "v142") set(MSVS_VERSION 2017) #they are abi compatible, so it should work elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v141") @@ -29,8 +29,20 @@ if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(LIBUSB_PROJECT_TYPE dll) + if (VCPKG_CRT_LINKAGE STREQUAL static) + file(READ "${SOURCE_PATH}/msvc/libusb_${LIBUSB_PROJECT_TYPE}_${MSVS_VERSION}.vcxproj" PROJ_FILE) + string(REPLACE "MultiThreadedDLL" "MultiThreaded" PROJ_FILE "${PROJ_FILE}") + string(REPLACE "MultiThreadedDebugDLL" "MultiThreadedDebug" PROJ_FILE "${PROJ_FILE}") + file(WRITE "${SOURCE_PATH}/msvc/libusb_${LIBUSB_PROJECT_TYPE}_${MSVS_VERSION}.vcxproj" "${PROJ_FILE}") + endif() else() set(LIBUSB_PROJECT_TYPE static) + if (VCPKG_CRT_LINKAGE STREQUAL dynamic) + file(READ "${SOURCE_PATH}/msvc/libusb_${LIBUSB_PROJECT_TYPE}_${MSVS_VERSION}.vcxproj" PROJ_FILE) + string(REPLACE "MultiThreaded" "MultiThreadedDLL" PROJ_FILE "${PROJ_FILE}") + string(REPLACE "MultiThreadedDebug" "MultiThreadedDebugDLL" PROJ_FILE "${PROJ_FILE}") + file(WRITE "${SOURCE_PATH}/msvc/libusb_${LIBUSB_PROJECT_TYPE}_${MSVS_VERSION}.vcxproj" "${PROJ_FILE}") + endif() endif() vcpkg_install_msbuild( diff --git a/ports/libwebsockets/CONTROL b/ports/libwebsockets/CONTROL index 1b091480a5f..a180ec42016 100644 --- a/ports/libwebsockets/CONTROL +++ b/ports/libwebsockets/CONTROL @@ -1,5 +1,5 @@ Source: libwebsockets -Version: 3.1.0-2 +Version: 3.1.0-3 Build-Depends: zlib, openssl Homepage: https://github.com/warmcat/libwebsockets Description: Libwebsockets is a lightweight pure C library built to use minimal CPU and memory resources, and provide fast throughput in both directions as client or server. diff --git a/ports/libwebsockets/portfile.cmake b/ports/libwebsockets/portfile.cmake index b2b90cccff6..06793dd8e53 100644 --- a/ports/libwebsockets/portfile.cmake +++ b/ports/libwebsockets/portfile.cmake @@ -13,6 +13,7 @@ string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LWS_WITH_SHARED) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DLWS_WITH_STATIC=${LWS_WITH_STATIC} -DLWS_WITH_SHARED=${LWS_WITH_SHARED} diff --git a/ports/lmdb/CONTROL b/ports/lmdb/CONTROL index eea847401fb..eac4b017fb1 100644 --- a/ports/lmdb/CONTROL +++ b/ports/lmdb/CONTROL @@ -1,4 +1,4 @@ Source: lmdb -Version: 0.9.23-1 +Version: 0.9.23-2 Homepage: https://github.com/LMDB/lmdb Description: LMDB is an extraordinarily fast, memory-efficient database diff --git a/ports/lmdb/portfile.cmake b/ports/lmdb/portfile.cmake index 9dc1aeeb2dd..064f7cff6b6 100644 --- a/ports/lmdb/portfile.cmake +++ b/ports/lmdb/portfile.cmake @@ -13,6 +13,7 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/cmake/ DESTINATION ${SOURCE_PATH}/libraries/ vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH}/libraries/liblmdb + PREFER_NINJA OPTIONS_DEBUG -DLMDB_INSTALL_HEADERS=OFF ) diff --git a/ports/mbedtls/CONTROL b/ports/mbedtls/CONTROL index ac4a4a131c2..787d1565252 100644 --- a/ports/mbedtls/CONTROL +++ b/ports/mbedtls/CONTROL @@ -1,4 +1,4 @@ Source: mbedtls -Version: 2.15.1 +Version: 2.16.2 Homepage: https://github.com/ARMmbed/mbedtls Description: An open source, portable, easy to use, readable and flexible SSL library diff --git a/ports/mbedtls/portfile.cmake b/ports/mbedtls/portfile.cmake index fa87630a401..d1a9372433c 100644 --- a/ports/mbedtls/portfile.cmake +++ b/ports/mbedtls/portfile.cmake @@ -5,8 +5,8 @@ set(VCPKG_LIBRARY_LINKAGE static) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ARMmbed/mbedtls - REF mbedtls-2.15.1 - SHA512 361bac49bc179c020855a59140a3e9e31ec9e89ebde9d630e9f3491cdfdf466c8dc2313276d6b257a7728784f5478bdcfd14d26e81f90d432bad2e9a94151fc2 + REF mbedtls-2.16.2 + SHA512 55af897ea3a1455ec4c16980a504a542333e8465bdf89d77b756e6d9893c394166ec880734ecdb10ec0643ddc828bf21e2dd8891b1b4a431e9c57e63a07915aa HEAD_REF master ) diff --git a/ports/metis/CONTROL b/ports/metis/CONTROL index 02f5eb9e149..3ddfbb788cf 100644 --- a/ports/metis/CONTROL +++ b/ports/metis/CONTROL @@ -1,4 +1,4 @@ Source: metis -Version: 5.1.0-4 +Version: 5.1.0-5 Homepage: https://glaros.dtc.umn.edu/gkhome/metis/metis/overview Description: Serial Graph Partitioning and Fill-reducing Matrix Ordering diff --git a/ports/metis/portfile.cmake b/ports/metis/portfile.cmake index 7a7f575a6ef..ec17f0dc304 100644 --- a/ports/metis/portfile.cmake +++ b/ports/metis/portfile.cmake @@ -26,6 +26,7 @@ vcpkg_extract_source_archive_ex( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS ${OPTIONS} ) diff --git a/ports/mozjpeg/CONTROL b/ports/mozjpeg/CONTROL index c5180d1405f..2f786a1c21c 100644 --- a/ports/mozjpeg/CONTROL +++ b/ports/mozjpeg/CONTROL @@ -1,4 +1,4 @@ Source: mozjpeg -Version: 3.2-2 +Version: 3.2-3 Homepage: https://github.com/mozilla/mozjpeg Description: MozJPEG reduces file sizes of JPEG images while retaining quality and compatibility with the vast majority of the world's deployed decoders. It's compatible with libjpeg API and ABI, and can be used as a drop-in replacement for libjpeg. diff --git a/ports/mozjpeg/portfile.cmake b/ports/mozjpeg/portfile.cmake index 70fc58dc413..d771fd20534 100644 --- a/ports/mozjpeg/portfile.cmake +++ b/ports/mozjpeg/portfile.cmake @@ -26,6 +26,7 @@ string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" WITH_CRT_DLL) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DDENABLE_SHARED=${ENABLE_SHARED_BUILD} -DENABLE_STATIC=${ENABLE_STATIC_BUILD} diff --git a/ports/mpg123/CONTROL b/ports/mpg123/CONTROL index ad360039c78..47692364eaf 100644 --- a/ports/mpg123/CONTROL +++ b/ports/mpg123/CONTROL @@ -1,4 +1,4 @@ Source: mpg123 -Version: 1.25.8-5 +Version: 1.25.8-6 Homepage: https://sourceforge.net/projects/mpg123/ Description: mpg123 is a real time MPEG 1.0/2.0/2.5 audio player/decoder for layers 1, 2 and 3 (MPEG 1.0 layer 3 also known as MP3). \ No newline at end of file diff --git a/ports/mpg123/portfile.cmake b/ports/mpg123/portfile.cmake index ff7645390d1..8523c6cb7b1 100644 --- a/ports/mpg123/portfile.cmake +++ b/ports/mpg123/portfile.cmake @@ -2,7 +2,6 @@ include(vcpkg_common_functions) set(MPG123_VERSION 1.25.8) set(MPG123_HASH f226317dddb07841a13753603fa13c0a867605a5a051626cb30d45cfba266d3d4296f5b8254f65b403bb5eef6addce1784ae8829b671a746854785cda1bad203) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mpg123-${MPG123_VERSION}) #architecture detection if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") @@ -23,19 +22,20 @@ vcpkg_download_distfile(ARCHIVE FILENAME "mpg123-${MPG123_VERSION}.tar.bz2" SHA512 ${MPG123_HASH} ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH + PATCHES + 0001-fix-crt-linking.patch + 0002-fix-x86-build.patch +) vcpkg_find_acquire_program(YASM) get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY) set(ENV{PATH} "$ENV{PATH};${YASM_EXE_PATH}") -if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - "${CURRENT_PORT_DIR}/0001-fix-crt-linking.patch" - "${CURRENT_PORT_DIR}/0002-fix-x86-build.patch") - +if(VCPKG_TARGET_IS_WINDOWS) vcpkg_build_msbuild( PROJECT_PATH ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/libmpg123.vcxproj RELEASE_CONFIGURATION Release_x86${MPG123_CONFIGURATION_SUFFIX} diff --git a/ports/mpi/CONTROL b/ports/mpi/CONTROL new file mode 100644 index 00000000000..b5db97f1338 --- /dev/null +++ b/ports/mpi/CONTROL @@ -0,0 +1,4 @@ +Source: mpi +Version: 1 +Description: Message Passing Interface (MPI) is a standardized and portable message-passing standard designed by a group of researchers from academia and industry to function on a wide variety of parallel computing architectures. The standard defines the syntax and semantics of a core of library routines useful to a wide range of users writing portable message-passing programs in C, C++, and Fortran. There are several well-tested and efficient implementations of MPI, many of which are open-source or in the public domain. +Build-Depends: msmpi (windows), openmpi (!windows) diff --git a/ports/mpi/portfile.cmake b/ports/mpi/portfile.cmake new file mode 100644 index 00000000000..e46edeb4354 --- /dev/null +++ b/ports/mpi/portfile.cmake @@ -0,0 +1,3 @@ +include(vcpkg_common_functions) + +set(VCPKG_POLICY_EMPTY_PACKAGE enabled) diff --git a/ports/msgpack/CONTROL b/ports/msgpack/CONTROL index 0b22d5c69b9..dab3515b997 100644 --- a/ports/msgpack/CONTROL +++ b/ports/msgpack/CONTROL @@ -1,4 +1,4 @@ Source: msgpack -Version: 3.1.1 +Version: 3.2.0 Homepage: https://github.com/msgpack/msgpack-c Description: MessagePack is an efficient binary serialization format, which lets you exchange data among multiple languages like JSON, except that it's faster and smaller. diff --git a/ports/msgpack/portfile.cmake b/ports/msgpack/portfile.cmake index 33873e990d4..c9249a2bc56 100644 --- a/ports/msgpack/portfile.cmake +++ b/ports/msgpack/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO msgpack/msgpack-c - REF cpp-3.1.1 - SHA512 2d1607f482160d8860b07d7597af760bfefcb3afa4e82602df43487d15950ab235e7efeabd7e08996807935de71d4dcdab424c91bff806279419db2ec9500227 + REF cpp-3.2.0 + SHA512 698fcdd5b427373997d0c89ff2cd09c44cf3b165defd381ff3cd9e14ecb83841064754a42aab99441a3b17aa26e3daec8f83e40d6d482c4b443b21b313278d14 HEAD_REF master) vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} diff --git a/ports/msmpi/portfile.cmake b/ports/msmpi/portfile.cmake index c55a4941245..10482cb0a02 100644 --- a/ports/msmpi/portfile.cmake +++ b/ports/msmpi/portfile.cmake @@ -1,5 +1,9 @@ include(vcpkg_common_functions) +if(VCPKG_CMAKE_SYSTEM_NAME) + message(FATAL_ERROR "This port is only for building msmpi on Windows Desktop") +endif() + set(MSMPI_VERSION "10.0.12498") set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/msmpi-${MSMPI_VERSION}) diff --git a/ports/nanodbc/CONTROL b/ports/nanodbc/CONTROL index bf1aaa69ed3..20c7c28b561 100644 --- a/ports/nanodbc/CONTROL +++ b/ports/nanodbc/CONTROL @@ -1,4 +1,4 @@ Source: nanodbc -Version: 2.12.4-3 +Version: 2.12.4-4 Homepage: https://github.com/lexicalunit/nanodbc Description: A small C++ wrapper for the native C ODBC API. diff --git a/ports/nanodbc/portfile.cmake b/ports/nanodbc/portfile.cmake index 7014c7eacf2..0b31d6f6fe6 100644 --- a/ports/nanodbc/portfile.cmake +++ b/ports/nanodbc/portfile.cmake @@ -14,6 +14,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS # Legacy, remove at release of v2.13 -DNANODBC_EXAMPLES=OFF diff --git a/ports/netcdf-c/CONTROL b/ports/netcdf-c/CONTROL index 684c54ba62c..f69dc61ad4f 100644 --- a/ports/netcdf-c/CONTROL +++ b/ports/netcdf-c/CONTROL @@ -1,5 +1,5 @@ Source: netcdf-c -Version: 4.7.0-3 +Version: 4.7.0-4 Build-Depends: hdf5, curl Homepage: https://github.com/Unidata/netcdf-c Description: a set of self-describing, machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data. diff --git a/ports/netcdf-c/hdf5_3.patch b/ports/netcdf-c/hdf5_3.patch index ba9a168c8a2..502a8ea9941 100644 --- a/ports/netcdf-c/hdf5_3.patch +++ b/ports/netcdf-c/hdf5_3.patch @@ -2,11 +2,13 @@ diff --git a/libhdf5/CMakeLists.txt b/libhdf5/CMakeLists.txt index f3c7bbc..34fc2ab 100644 --- a/libhdf5/CMakeLists.txt +++ b/libhdf5/CMakeLists.txt -@@ -20,3 +20,7 @@ add_library(netcdfhdf5 OBJECT ${libnchdf5_SOURCES}) +@@ -20,3 +20,9 @@ add_library(netcdfhdf5 OBJECT ${libnchdf5_SOURCES}) # Remember to package this file for CMake builds. ADD_EXTRA_DIST(${libnchdf5_SOURCES} CMakeLists.txt) + -+if(BUILD_SHARED_LIBS) -+target_link_libraries(netcdfhdf5 PRIVATE hdf5::hdf5-shared hdf5::hdf5-static hdf5::hdf5_hl-shared hdf5::hdf5_hl-static) ++if(HDF5_BUILD_SHARED_LIBS) ++ target_link_libraries(netcdfhdf5 PRIVATE hdf5::hdf5-shared hdf5::hdf5_hl-shared) ++else() ++ target_link_libraries(netcdfhdf5 PRIVATE hdf5::hdf5-static hdf5::hdf5_hl-static) +endif() diff --git a/ports/nlohmann-json/CONTROL b/ports/nlohmann-json/CONTROL index 275914a940f..168535699fd 100644 --- a/ports/nlohmann-json/CONTROL +++ b/ports/nlohmann-json/CONTROL @@ -1,4 +1,4 @@ Source: nlohmann-json -Version: 3.6.1 +Version: 3.7.0 Homepage: https://github.com/nlohmann/json Description: JSON for Modern C++ diff --git a/ports/nlohmann-json/portfile.cmake b/ports/nlohmann-json/portfile.cmake index fb492c08c81..5d105d4f411 100644 --- a/ports/nlohmann-json/portfile.cmake +++ b/ports/nlohmann-json/portfile.cmake @@ -1,6 +1,6 @@ include(vcpkg_common_functions) -set(SOURCE_VERSION 3.6.1) +set(SOURCE_VERSION 3.7.0) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/nlohmann-json-v${SOURCE_VERSION}) file(MAKE_DIRECTORY ${SOURCE_PATH}) @@ -15,11 +15,11 @@ function(download_src SUBPATH SHA512) file(COPY ${FILE} DESTINATION ${SUBPATH_DIR}) endfunction() -download_src(CMakeLists.txt ea5775c8eca3f387d152e6adadeb5e5454b7bce2bb45b305019248def2714b85b959196cb97f25b175ebebd044f179bcffa5ec62b0373bee3a8ca135f2988054) +download_src(CMakeLists.txt f397536b06a2adaf717067f6bcbc4b23836d28bb7471143848259ef90f84bb5aadbd21bb387f80603fca791c9806b846e110e97a10de5b276f03a7fe6a97f2eb) download_src(LICENSE.MIT 44e6d9510dd66195211aa8ce3e6eef55be524e82c5864f3bfb85f2ac1215529c8ca370c8746de61ad5739e5af1633a5985085dacd1ffe220cd21d06433936801) download_src(nlohmann_json.natvis 9bce6758db0e54777394a4e718e60a281952b15f0c6dc6a6ad4a6d023c958b5515b2d39b7d4c66c03f0d3fdfdc1d6c23afb8b8419f1345c9d44d7b9a9ee2582b) download_src(cmake/config.cmake.in 7caab6166baa891f77f5b632ac4a920e548610ec41777b885ec51fe68d3665ffe91984dd2881caf22298b5392dfbd84b526fda252467bb66de9eb90e6e6ade5a) -download_src(single_include/nlohmann/json.hpp 17ad2911f054235002e273a34087f91122586de475792e9a41b8fa5cd0df3341867a976d702e2bb99459583d393afaabb481823700260bc19fb64eae544fc0bd) +download_src(single_include/nlohmann/json.hpp 1a12ea9e54a19e398a4d7aa3be1759ce3666a1b479bd553fe11bc63897a8055f11f42871eee6c801756dde038d860c48043cc50df753835c9a9691a1876a159e) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} diff --git a/ports/nmslib/CONTROL b/ports/nmslib/CONTROL index 262c4068235..5f61fa1f9af 100644 --- a/ports/nmslib/CONTROL +++ b/ports/nmslib/CONTROL @@ -1,5 +1,5 @@ Source: nmslib -Version: 1.7.3.6 +Version: 1.7.3.6-1 Homepage: https://github.com/searchivarius/nmslib Description: Non-Metric Space Library (NMSLIB) is an efficient similarity search library and a toolkit for evaluation of k-NN methods for generic non-metric spaces. # diff --git a/ports/nmslib/portfile.cmake b/ports/nmslib/portfile.cmake index ffea74d75c1..ed5d902baf2 100644 --- a/ports/nmslib/portfile.cmake +++ b/ports/nmslib/portfile.cmake @@ -25,6 +25,7 @@ endif() # TODO: check SSE and AVX avability and set corresponding tags vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH}/similarity_search + PREFER_NINJA OPTIONS -DWITH_EXTRAS=${WITH_EXTRAS} ) diff --git a/ports/nngpp/CONTROL b/ports/nngpp/CONTROL new file mode 100644 index 00000000000..7cc9d7afe10 --- /dev/null +++ b/ports/nngpp/CONTROL @@ -0,0 +1,6 @@ +Source: nngpp +Version: 2019-07-25 +Homepage:https://github.com/cwzx/nngpp +Description: C++ wrapper around the nanomsg NNG API. +Build-Depends: nng + diff --git a/ports/nngpp/portfile.cmake b/ports/nngpp/portfile.cmake new file mode 100644 index 00000000000..18646951c49 --- /dev/null +++ b/ports/nngpp/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO cwzx/nngpp + REF 3351f54e6e774505d8d8b88064d04eb98e0b1cda + SHA512 6f72d1085b58ee7a8941294e7479661d8fc2c22cc8af2cee9c2cef11d508032a860c0061851bda07cf995ec8f57e5a25e241a15114a91c487d8aad6def2d4ce5 + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DNNGPP_BUILD_DEMOS=OFF + -DNNGPP_BUILD_TESTS=OFF +) + +vcpkg_install_cmake() + +# Move CMake config files to the right place +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT}) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib) + +# 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/open62541/CONTROL b/ports/open62541/CONTROL index 28bfd2c0bd0..bff3217bb61 100644 --- a/ports/open62541/CONTROL +++ b/ports/open62541/CONTROL @@ -1,3 +1,3 @@ Source: open62541 -Version: 0.3.0-2 +Version: 0.3.0-3 Description: open62541 is an open source C (C99) implementation of OPC UA licensed under the Mozilla Public License v2.0. diff --git a/ports/open62541/portfile.cmake b/ports/open62541/portfile.cmake index 5132fa7f053..d0e26df3f6c 100644 --- a/ports/open62541/portfile.cmake +++ b/ports/open62541/portfile.cmake @@ -1,6 +1,6 @@ include(vcpkg_common_functions) -if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") +if(NOT CMAKE_HOST_WIN32) message("${PORT} currently requires the following tools from the system package manager:\n python-six\n\nThis can be installed on Ubuntu systems via apt-get install python-six python3-six (depending on your current python default interpreter)") endif() @@ -31,21 +31,24 @@ endif() vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) -get_filename_component(PYTHON3_DIR_NAME "${PYTHON3_DIR}" NAME) vcpkg_add_to_path("${PYTHON3_DIR}") -if(NOT EXISTS ${PYTHON3_DIR}/easy_install${EXECUTABLE_SUFFIX}) - if(NOT EXISTS ${PYTHON3_DIR}/Scripts/pip${EXECUTABLE_SUFFIX}) - vcpkg_download_distfile(GET_PIP - URLS "https://bootstrap.pypa.io/get-pip.py" - FILENAME "tools/python/${PYTHON3_DIR_NAME}/get-pip.py" - SHA512 99520d223819708b8f6e4b839d1fa215e4e8adc7fcd0db6c25a0399cf2fa10034b35673cf450609303646d12497f301ef53b7e7cc65c78e7bce4af0c673555ad - ) - execute_process(COMMAND ${PYTHON3_DIR}/python${EXECUTABLE_SUFFIX} ${PYTHON3_DIR}/get-pip.py) +if(CMAKE_HOST_WIN32) + # Must not modify system copy of python3 -- on CMAKE_HOST_WIN32, we have our own private copy + if(NOT EXISTS ${PYTHON3_DIR}/easy_install.exe) + if(NOT EXISTS ${PYTHON3_DIR}/Scripts/pip.exe) + get_filename_component(PYTHON3_DIR_NAME "${PYTHON3_DIR}" NAME) + vcpkg_download_distfile(GET_PIP + URLS "https://bootstrap.pypa.io/3.3/get-pip.py" + FILENAME "tools/python/${PYTHON3_DIR_NAME}/get-pip.py" + SHA512 92e68525830bb23955a31cb19ebc3021ef16b6337eab83d5db2961b791283d2867207545faf83635f6027f2f7b7f8fee2c85f2cfd8e8267df25406474571c741 + ) + execute_process(COMMAND ${PYTHON3_DIR}/python.exe ${GET_PIP}) + endif() + execute_process(COMMAND ${PYTHON3_DIR}/Scripts/pip.exe install six) + else() + execute_process(COMMAND ${PYTHON3_DIR}/easy_install.exe six) endif() - execute_process(COMMAND ${PYTHON3_DIR}/Scripts/pip${EXECUTABLE_SUFFIX} install six) -else() - execute_process(COMMAND ${PYTHON3_DIR}/easy_install${EXECUTABLE_SUFFIX} six) endif() vcpkg_configure_cmake( diff --git a/ports/opencv/CONTROL b/ports/opencv/CONTROL index 42f5c1c47f2..30e04b54cd7 100644 --- a/ports/opencv/CONTROL +++ b/ports/opencv/CONTROL @@ -82,6 +82,10 @@ Feature: eigen Build-Depends: eigen3 Description: Eigen support for opencv +Feature: halide +Build-Depends: halide, opencv[dnn] +Description: Halide support for opencv + Feature: world Description: Compile to a single package support for opencv diff --git a/ports/opencv/portfile.cmake b/ports/opencv/portfile.cmake index 55fd6a68041..be86319c7c4 100644 --- a/ports/opencv/portfile.cmake +++ b/ports/opencv/portfile.cmake @@ -218,6 +218,11 @@ if("eigen" IN_LIST FEATURES) set(WITH_EIGEN ON) endif() +set(WITH_HALIDE OFF) +if("halide" IN_LIST FEATURES) + set(WITH_HALIDE ON) +endif() + set(OPENCV_ENABLE_NONFREE OFF) if("nonfree" IN_LIST FEATURES) set(OPENCV_ENABLE_NONFREE ON) diff --git a/ports/openimageio/CONTROL b/ports/openimageio/CONTROL index ceb4b94085e..94ae8654e52 100644 --- a/ports/openimageio/CONTROL +++ b/ports/openimageio/CONTROL @@ -1,5 +1,5 @@ Source: openimageio -Version: 2.0.8 +Version: 2019-08-08-1 Homepage: https://github.com/OpenImageIO/oiio Description: A library for reading and writing images, and a bunch of related classes, utilities, and application Build-Depends: libjpeg-turbo, tiff, libpng, openexr, boost-thread, boost-smart-ptr, boost-foreach, boost-regex, boost-type-traits, boost-static-assert, boost-unordered, boost-config, boost-algorithm, boost-filesystem, boost-system, boost-thread, boost-asio, boost-random, robin-map, boost-stacktrace diff --git a/ports/openimageio/portfile.cmake b/ports/openimageio/portfile.cmake index e40441e4cb1..7284d58b830 100644 --- a/ports/openimageio/portfile.cmake +++ b/ports/openimageio/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OpenImageIO/oiio - REF Release-2.0.8 - SHA512 412d240916780b784b89d9eeb36b5b9451e8448100fce494c0d95f0b274506d2946cae0eb929dbe8118b8b04a8bd2a926270a971aad7d0542abcff5f35404953 + REF ad1ab61a56c63d770e4beb335efe8b1f1a9e36cd + SHA512 48ee7862583e7adb86b56b20634c34aebf83ef0a3a14ad96182494ce6a84cb027334840a6c4c335e9342110c3a36532e3eeae22a3ed7363cd91b27cb7ca58154 HEAD_REF master PATCHES fix_libraw.patch @@ -71,6 +71,9 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/doc) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(COPY ${SOURCE_PATH}/src/cmake/modules/FindOpenImageIO.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) + # Handle copyright file(COPY ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/openimageio) file(RENAME ${CURRENT_PACKAGES_DIR}/share/openimageio/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/openimageio/copyright) diff --git a/ports/openimageio/remove_wrong_dependency.patch b/ports/openimageio/remove_wrong_dependency.patch index 307ef1decfe..5338c6563c9 100644 --- a/ports/openimageio/remove_wrong_dependency.patch +++ b/ports/openimageio/remove_wrong_dependency.patch @@ -1,15 +1,15 @@ -diff --git a/src/libOpenImageIO/CMakeLists.txt b/src/libOpenImageIO/CMakeLists.txt -index 61ed97b..4435426 100644 ---- a/src/libOpenImageIO/CMakeLists.txt -+++ b/src/libOpenImageIO/CMakeLists.txt -@@ -164,10 +164,6 @@ if (WIN32) - target_link_libraries (OpenImageIO psapi.lib) - endif () - --if (VISIBILITY_MAP_FILE) -- add_dependencies (OpenImageIO "${VISIBILITY_MAP_FILE}") --endif () -- - if (USE_EXTERNAL_PUGIXML) - target_link_libraries (OpenImageIO ${PUGIXML_LIBRARIES}) - endif () +diff --git a/src/libOpenImageIO/CMakeLists.txt b/src/libOpenImageIO/CMakeLists.txt +index 5449675..cdd5235 100644 +--- a/src/libOpenImageIO/CMakeLists.txt ++++ b/src/libOpenImageIO/CMakeLists.txt +@@ -171,10 +171,6 @@ elseif(MINGW) + target_link_libraries (OpenImageIO psapi ws2_32) + endif () + +-if (VISIBILITY_MAP_FILE) +- add_dependencies (OpenImageIO "${VISIBILITY_MAP_FILE}") +-endif () +- + if (USE_EXTERNAL_PUGIXML) + target_link_libraries (OpenImageIO ${PUGIXML_LIBRARIES}) + endif () diff --git a/ports/openimageio/vcpkg-cmake-wrapper.cmake b/ports/openimageio/vcpkg-cmake-wrapper.cmake new file mode 100644 index 00000000000..82dc991f066 --- /dev/null +++ b/ports/openimageio/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,8 @@ +set(OPENIMAGEIO_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) + +if(NOT OPENIMAGEIO_LIBRARIES) + _find_package(${ARGS}) +endif() + +set(CMAKE_MODULE_PATH ${OPENIMAGEIO_PREV_MODULE_PATH}) diff --git a/ports/openmpi/CONTROL b/ports/openmpi/CONTROL new file mode 100644 index 00000000000..6ea5a17c124 --- /dev/null +++ b/ports/openmpi/CONTROL @@ -0,0 +1,4 @@ +Source: openmpi +Version: 4.0.1 +Homepage: https://www.open-mpi.org/ +Description: The Open MPI Project is an open source Message Passing Interface implementation that is developed and maintained by a consortium of academic, research, and industry partners. Open MPI is therefore able to combine the expertise, technologies, and resources from all across the High Performance Computing community in order to build the best MPI library available. Open MPI offers advantages for system and software vendors, application developers and computer science researchers. diff --git a/ports/openmpi/portfile.cmake b/ports/openmpi/portfile.cmake new file mode 100644 index 00000000000..9f69f9f9bfe --- /dev/null +++ b/ports/openmpi/portfile.cmake @@ -0,0 +1,100 @@ +include(vcpkg_common_functions) + +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR NOT VCPKG_CMAKE_SYSTEM_NAME) + message(FATAL_ERROR "This port is only for openmpi on Unix-like systems") +endif() + +vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) + +set(OpenMPI_FULL_VERSION "4.0.1") +set(OpenMPI_SHORT_VERSION "4.0") + +vcpkg_download_distfile(ARCHIVE + URLS "https://download.open-mpi.org/release/open-mpi/v${OpenMPI_SHORT_VERSION}/openmpi-${OpenMPI_FULL_VERSION}.tar.gz" + FILENAME "openmpi-${OpenMPI_FULL_VERSION}.tar.gz" + SHA512 760716974cb6b25ad820184622e1ee7926bc6fda87db6b574f76792bc1ca99522e52195866c14b7cb2df5a4981efdaf9f71d2c5533cc0e8e45c2c4b3b74cbacc +) + +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + list(APPEND BUILD_TYPES "release") +endif() +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + list(APPEND BUILD_TYPES "debug") +endif() + +set(SOURCE_PATH_DEBUG ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-debug/openmpi-${OpenMPI_FULL_VERSION}) +set(SOURCE_PATH_RELEASE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-release/openmpi-${OpenMPI_FULL_VERSION}) +set(OUT_PATH_DEBUG ${SOURCE_PATH_RELEASE}/../../make-build-${TARGET_TRIPLET}-debug) +set(OUT_PATH_RELEASE ${SOURCE_PATH_RELEASE}/../../make-build-${TARGET_TRIPLET}-release) +file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-debug/) +file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-release/) +file(MAKE_DIRECTORY ${OUT_PATH_DEBUG}) +file(MAKE_DIRECTORY ${OUT_PATH_RELEASE}) + +foreach(BUILD_TYPE IN LISTS BUILD_TYPES) + vcpkg_extract_source_archive(${ARCHIVE} ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE}) + #vcpkg_apply_patches(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE}/openmpi-${OpenMPI_FULL_VERSION} PATCHES patch.file) +endforeach() + +vcpkg_find_acquire_program(PERL) +get_filename_component(PERL_PATH ${PERL} DIRECTORY) +vcpkg_add_to_path(${PERL_PATH}) + +set(BASH bash) + +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") + vcpkg_execute_required_process( + COMMAND ${BASH} --noprofile --norc -c "${SOURCE_PATH_DEBUG}/configure --prefix=${OUT_PATH_DEBUG} --enable-debug" + WORKING_DIRECTORY "${SOURCE_PATH_DEBUG}" + LOGNAME "config-${TARGET_TRIPLET}-dbg" + ) + message(STATUS "Building ${TARGET_TRIPLET}-dbg") + vcpkg_execute_required_process( + COMMAND ${BASH} --noprofile --norc -c "make -j ${VCPKG_CONCURRENCY}" + NO_PARALLEL_COMMAND ${BASH} --noprofile --norc -c "make" + WORKING_DIRECTORY "${SOURCE_PATH_DEBUG}" + LOGNAME "make-build-${TARGET_TRIPLET}-dbg" + ) + message(STATUS "Installing ${TARGET_TRIPLET}-dbg") + vcpkg_execute_required_process( + COMMAND ${BASH} --noprofile --norc -c "make install" + WORKING_DIRECTORY "${SOURCE_PATH_DEBUG}" + LOGNAME "make-install-${TARGET_TRIPLET}-dbg" + ) + file(COPY ${OUT_PATH_DEBUG}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug) + message(STATUS "Installing ${TARGET_TRIPLET}-dbg done") +endif() + +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + message(STATUS "Configuring ${TARGET_TRIPLET}-rel") + vcpkg_execute_required_process( + COMMAND ${BASH} --noprofile --norc -c "${SOURCE_PATH_RELEASE}/configure --prefix=${OUT_PATH_RELEASE}" + WORKING_DIRECTORY "${SOURCE_PATH_RELEASE}" + LOGNAME "config-${TARGET_TRIPLET}-rel" + ) + message(STATUS "Building ${TARGET_TRIPLET}-rel") + vcpkg_execute_required_process( + COMMAND ${BASH} --noprofile --norc -c "make -j ${VCPKG_CONCURRENCY}" + NO_PARALLEL_COMMAND ${BASH} --noprofile --norc -c "make" + WORKING_DIRECTORY "${SOURCE_PATH_RELEASE}" + LOGNAME "make-build-${TARGET_TRIPLET}-rel" + ) + message(STATUS "Installing ${TARGET_TRIPLET}-rel") + vcpkg_execute_required_process( + COMMAND ${BASH} --noprofile --norc -c "make install" + WORKING_DIRECTORY "${SOURCE_PATH_RELEASE}" + LOGNAME "make-install-${TARGET_TRIPLET}-rel" + ) + file(COPY ${OUT_PATH_RELEASE}/lib DESTINATION ${CURRENT_PACKAGES_DIR}) + file(COPY ${OUT_PATH_RELEASE}/include DESTINATION ${CURRENT_PACKAGES_DIR}) + file(COPY ${OUT_PATH_RELEASE}/share DESTINATION ${CURRENT_PACKAGES_DIR}) + file(COPY ${OUT_PATH_RELEASE}/bin DESTINATION ${CURRENT_PACKAGES_DIR}) + message(STATUS "Installing ${TARGET_TRIPLET}-rel done") +endif() + +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(INSTALL ${SOURCE_PATH_DEBUG}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openmpi RENAME copyright) +else() + file(INSTALL ${SOURCE_PATH_RELEASE}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openmpi RENAME copyright) +endif() diff --git a/ports/openxr-loader/0001-fix-embedded-python-path.patch b/ports/openxr-loader/0001-fix-embedded-python-path.patch deleted file mode 100644 index 3fe7e61e82d..00000000000 --- a/ports/openxr-loader/0001-fix-embedded-python-path.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/specification/scripts/genxr.py b/specification/scripts/genxr.py -index 906c044..b0a414f 100755 ---- a/specification/scripts/genxr.py -+++ b/specification/scripts/genxr.py -@@ -17,6 +17,12 @@ - import argparse - import re - import sys -+import os -+ -+base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) -+sys.path.append(os.path.join(base_dir, 'src', 'scripts')) -+sys.path.append(os.path.join(base_dir, 'specification', 'scripts')) -+ - import time - import xml.etree.ElementTree as etree - -diff --git a/src/scripts/src_genxr.py b/src/scripts/src_genxr.py -index 960b6cd..6f49296 100755 ---- a/src/scripts/src_genxr.py -+++ b/src/scripts/src_genxr.py -@@ -14,7 +14,12 @@ - # See the License for the specific language governing permissions and - # limitations under the License. - --import argparse, cProfile, pdb, string, sys, time -+import argparse, cProfile, pdb, string, sys, time, os -+ -+base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) -+sys.path.append(os.path.join(base_dir, 'src', 'scripts')) -+sys.path.append(os.path.join(base_dir, 'specification', 'scripts')) -+ - from reg import * - from generator import write - from cgenerator import CGeneratorOptions, COutputGenerator diff --git a/ports/openxr-loader/0002-fix-linux-pkgconfig-dependency.patch b/ports/openxr-loader/0002-fix-linux-pkgconfig-dependency.patch deleted file mode 100644 index 3f9cbc328aa..00000000000 --- a/ports/openxr-loader/0002-fix-linux-pkgconfig-dependency.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/src/cmake/presentation.cmake b/src/cmake/presentation.cmake -index 3970546..c2e7bc3 100644 ---- a/src/cmake/presentation.cmake -+++ b/src/cmake/presentation.cmake -@@ -12,21 +12,17 @@ endif() - - message(STATUS "Using presentation backend: ${PRESENTATION_BACKEND}") - --find_package(PkgConfig REQUIRED) - - if( PRESENTATION_BACKEND MATCHES "xlib" ) -- pkg_search_module(X11 REQUIRED x11) -- pkg_search_module(XXF86VM REQUIRED xxf86vm) -- pkg_search_module(XRANDR REQUIRED xrandr) -- - add_definitions( -DSUPPORT_X ) - add_definitions( -DOS_LINUX_XLIB ) - set( XLIB_LIBRARIES -- ${X11_LIBRARIES} -- ${XXF86VM_LIBRARIES} -- ${XRANDR_LIBRARIES} ) -+ X11 -+ Xxf86vm -+ Xrandr) - - elseif( PRESENTATION_BACKEND MATCHES "xcb" ) -+ find_package(PkgConfig REQUIRED) - # XCB + XCB GLX is limited to OpenGL 2.1 - # add_definitions( -DOS_LINUX_XCB ) - # XCB + Xlib GLX 1.3 -@@ -49,6 +45,7 @@ elseif( PRESENTATION_BACKEND MATCHES "xcb" ) - ${X11_LIBRARIES} ) - - elseif( PRESENTATION_BACKEND MATCHES "wayland" ) -+ find_package(PkgConfig REQUIRED) - pkg_search_module(WAYLAND_CLIENT REQUIRED wayland-client) - pkg_search_module(WAYLAND_EGL REQUIRED wayland-egl) - pkg_search_module(WAYLAND_SCANNER REQUIRED wayland-scanner) diff --git a/ports/openxr-loader/0003-windows-path-python-fix.patch b/ports/openxr-loader/0003-windows-path-python-fix.patch deleted file mode 100644 index a68f877220a..00000000000 --- a/ports/openxr-loader/0003-windows-path-python-fix.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/specification/scripts/generator.py b/specification/scripts/generator.py -index d6a1afe..5f9d0b6 100644 ---- a/specification/scripts/generator.py -+++ b/specification/scripts/generator.py -@@ -516,9 +516,10 @@ class OutputGenerator: - # Generator can be used without writing to a file. - if self.genOpts.filename is not None: - if sys.platform == 'win32': -- directory = Path(self.genOpts.directory) -+ directory = self.genOpts.directory - if not os.path.exists(directory): - os.makedirs(directory) -- self.outFile = io.open(directory / self.genOpts.filename, 'w', encoding='utf-8') -+ self.outFile = io.open(directory + '/' + self.genOpts.filename, 'w', encoding='utf-8') - else: - filename = self.genOpts.directory + '/' + self.genOpts.filename diff --git a/ports/openxr-loader/0004-fix-fatal-errorC1189.patch b/ports/openxr-loader/0004-fix-fatal-errorC1189.patch deleted file mode 100644 index f71a99c622e..00000000000 --- a/ports/openxr-loader/0004-fix-fatal-errorC1189.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/loader/CMakeLists.txt b/src/loader/CMakeLists.txt -index 92985a5..b265091 100644 ---- a/src/loader/CMakeLists.txt -+++ b/src/loader/CMakeLists.txt -@@ -134,7 +134,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") - endforeach() - - target_link_libraries(${LOADER_NAME} shlwapi) -- target_compile_options(${LOADER_NAME} PRIVATE) -+ target_compile_options(${LOADER_NAME} PRIVATE /std:c++17) - generate_export_header(${LOADER_NAME}) - # set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS false) - diff --git a/ports/openxr-loader/CONTROL b/ports/openxr-loader/CONTROL index 7fd84105bf0..cff29cb1b8b 100644 --- a/ports/openxr-loader/CONTROL +++ b/ports/openxr-loader/CONTROL @@ -1,5 +1,5 @@ Source: openxr-loader -Version: 0.90.1-1 +Version: 1.0.0-2 Description: Khronos API for abstracting VR/MR/AR hardware Feature: vulkan diff --git a/ports/openxr-loader/portfile.cmake b/ports/openxr-loader/portfile.cmake index c1de0d14249..efb57b0c3b3 100644 --- a/ports/openxr-loader/portfile.cmake +++ b/ports/openxr-loader/portfile.cmake @@ -12,17 +12,9 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/OpenXR-SDK - REF release-0.90.1 - SHA512 99b16b52511fef740fa7a1e234213310a4490b8d7baf4d1e003b93cf4f37b28abf526f6ed2d1e27e9ee2b4949b1957f15c20d4e0f8d30687806fe782780697af + REF release-1.0.0 + SHA512 423079b841a01f3b51283839c565cfa1b8ff38348c3f3d6f62e9120569d4ad540d8d6bfe8010e74d9bbb76aeaedcf273e5e3b1717bb0b424898793fb4712aa58 HEAD_REF master - PATCHES - # embedded python uses ignores PYTHONPATH - 0001-fix-embedded-python-path.patch - # Pkg-config is not available on the Vcpkg CI systems, don't depend on it for the xlib backend - 0002-fix-linux-pkgconfig-dependency.patch - # Python < 3.6 doesn't allow a WindowsPath object to act as a pathlike in os.path functions - 0003-windows-path-python-fix.patch - 0004-fix-fatal-errorC1189.patch ) # Weird behavior inside the OpenXR loader. On Windows they force shared libraries to use static crt, and @@ -45,6 +37,7 @@ vcpkg_configure_cmake( OPTIONS -DBUILD_API_LAYERS=OFF -DBUILD_TESTS=OFF + -DBUILD_CONFORMANCE_TESTS=OFF -DDYNAMIC_LOADER=${DYNAMIC_LOADER} -DPYTHON_EXECUTABLE=${PYTHON3} ) diff --git a/ports/pango/CONTROL b/ports/pango/CONTROL index 192c5c0489e..c221c1e3707 100644 --- a/ports/pango/CONTROL +++ b/ports/pango/CONTROL @@ -2,4 +2,4 @@ Source: pango Version: 1.40.11-4 Homepage: https://ftp.gnome.org/pub/GNOME/sources/pango/ Description: Text and font handling library. -Build-Depends: glib, gettext, cairo, fontconfig, freetype, harfbuzz[glib] (!windows-static) +Build-Depends: glib, gettext, cairo, fontconfig, freetype, harfbuzz[glib] (!(windows&static)) diff --git a/ports/parmetis/CONTROL b/ports/parmetis/CONTROL index 7e5e3b21b65..c98d4869ff5 100644 --- a/ports/parmetis/CONTROL +++ b/ports/parmetis/CONTROL @@ -1,5 +1,5 @@ Source: parmetis -Version: 4.0.3-2 +Version: 4.0.3-3 Homepage: https://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview Description: Parallel Graph Partitioning and Fill-reducing Matrix Ordering -Build-Depends: metis, msmpi +Build-Depends: metis, mpi diff --git a/ports/parmetis/portfile.cmake b/ports/parmetis/portfile.cmake index 63b2cb87bc5..f3eee992f22 100644 --- a/ports/parmetis/portfile.cmake +++ b/ports/parmetis/portfile.cmake @@ -22,6 +22,7 @@ vcpkg_extract_source_archive_ex( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS ${ADDITIONAL_OPTIONS} ) diff --git a/ports/pcl/CONTROL b/ports/pcl/CONTROL index 41714a66aad..1cf828db425 100644 --- a/ports/pcl/CONTROL +++ b/ports/pcl/CONTROL @@ -1,5 +1,5 @@ Source: pcl -Version: 1.9.1-5 +Version: 1.9.1-6 Homepage: https://github.com/PointCloudLibrary/pcl Description: Point Cloud Library (PCL) is open source library for 2D/3D image and point cloud processing. Build-Depends: eigen3, flann, qhull, vtk, libpng, boost-system, boost-filesystem, boost-thread, boost-date-time, boost-iostreams, boost-random, boost-foreach, boost-dynamic-bitset, boost-property-map, boost-graph, boost-multi-array, boost-signals2, boost-ptr-container, boost-uuid, boost-interprocess, boost-asio @@ -23,3 +23,6 @@ Build-Depends: boost-accumulators Feature: cuda Description: CUDA support for PCL Build-Depends: cuda + +Feature: opengl +Description: OpenGL support for PCL diff --git a/ports/pcl/boost-1.70.patch b/ports/pcl/boost-1.70.patch index 1c8a02121c4..c4b9955d29f 100644 --- a/ports/pcl/boost-1.70.patch +++ b/ports/pcl/boost-1.70.patch @@ -11,3 +11,17 @@ index 05e6002..99e3a07 100644 typedef boost::ptr_list HelperListT; HelperListT supervoxel_helpers_; +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 68cc438..8cfa1c6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -416,6 +416,9 @@ endif() + + # Boost (required) + include("${PCL_SOURCE_DIR}/cmake/pcl_find_boost.cmake") ++if (NOT APPLE) ++ add_definitions(-fext-numeric-literals) ++endif() + + ### ---[ Create the config.h file + set(pcl_config_h_in "${CMAKE_CURRENT_SOURCE_DIR}/pcl_config.h.in") diff --git a/ports/pcl/portfile.cmake b/ports/pcl/portfile.cmake index b855831e9d1..6ef0833515e 100644 --- a/ports/pcl/portfile.cmake +++ b/ports/pcl/portfile.cmake @@ -18,30 +18,14 @@ file(REMOVE ${SOURCE_PATH}/cmake/Modules/FindFLANN.cmake) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PCL_SHARED_LIBS) -set(WITH_OPENNI2 OFF) -if("openni2" IN_LIST FEATURES) - set(WITH_OPENNI2 ON) -endif() - -set(WITH_QT OFF) -if("qt" IN_LIST FEATURES) - set(WITH_QT ON) -endif() - -set(WITH_PCAP OFF) -if("pcap" IN_LIST FEATURES) - set(WITH_PCAP ON) -endif() - -set(WITH_CUDA OFF) -if("cuda" IN_LIST FEATURES) - set(WITH_CUDA ON) -endif() - -set(BUILD_TOOLS OFF) -if("tools" IN_LIST FEATURES) - set(BUILD_TOOLS ON) -endif() +vcpkg_check_features( + openni2 WITH_OPENNI2 + qt WITH_QT + pcap WITH_PCAP + cuda WITH_CUDA + tools BUILD_TOOLS + opengl WITH_OPENGL +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} @@ -66,6 +50,7 @@ vcpkg_configure_cmake( -DWITH_QHULL=ON -DWITH_QT=${WITH_QT} -DWITH_VTK=ON + -DWITH_OPENGL=${WITH_OPENGL} ) vcpkg_install_cmake() diff --git a/ports/pdqsort/CONTROL b/ports/pdqsort/CONTROL new file mode 100644 index 00000000000..6d1d9e6601b --- /dev/null +++ b/ports/pdqsort/CONTROL @@ -0,0 +1,4 @@ +Source: pdqsort +Version: 2019-07-30 +Homepage: https://github.com/orlp/pdqsort +Description: Pattern-defeating quicksort (pdqsort) is a novel sorting algorithm diff --git a/ports/pdqsort/portfile.cmake b/ports/pdqsort/portfile.cmake new file mode 100644 index 00000000000..a9c6a92118e --- /dev/null +++ b/ports/pdqsort/portfile.cmake @@ -0,0 +1,15 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO orlp/pdqsort + REF 08879029ab8dcb80a70142acb709e3df02de5d37 + SHA512 38e8b6e35edf1e88e26850a13ce892d8adc0d3e1d7954287d024b3bb858a6b2284e25fbf7c92a694b3ec77cacaf6bbc27fc365187115f7cca6bc88088f67a18f + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/pdqsort.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/pdqsort) + +# Handle copyright +file(COPY ${SOURCE_PATH}/license.txt ${SOURCE_PATH}/readme.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/pdqsort) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/pdqsort/license.txt ${CURRENT_PACKAGES_DIR}/share/pdqsort/copyright) \ No newline at end of file diff --git a/ports/plibsys/CONTROL b/ports/plibsys/CONTROL index 2c71346bbfc..004f0708486 100644 --- a/ports/plibsys/CONTROL +++ b/ports/plibsys/CONTROL @@ -1,4 +1,4 @@ Source: plibsys -Version: 0.0.4-1 +Version: 0.0.4-2 Homepage: https://github.com/saprykin/plibsys Description: Highly portable C system library: threads and synchronization, sockets, IPC, data structures and more. diff --git a/ports/plibsys/portfile.cmake b/ports/plibsys/portfile.cmake index 210fddd37eb..a4a032370cd 100644 --- a/ports/plibsys/portfile.cmake +++ b/ports/plibsys/portfile.cmake @@ -15,6 +15,7 @@ endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DPLIBSYS_TESTS=OFF -DPLIBSYS_COVERAGE=OFF diff --git a/ports/proj4/CONTROL b/ports/proj4/CONTROL index 265b8173dd3..f2a6ae8b62f 100644 --- a/ports/proj4/CONTROL +++ b/ports/proj4/CONTROL @@ -1,4 +1,4 @@ Source: proj4 -Version: 4.9.3-3 +Version: 4.9.3-4 Homepage: https://download.osgeo.org/proj Description: PROJ.4 library for cartographic projections diff --git a/ports/proj4/portfile.cmake b/ports/proj4/portfile.cmake index b34f04ac337..70878aae640 100644 --- a/ports/proj4/portfile.cmake +++ b/ports/proj4/portfile.cmake @@ -26,6 +26,7 @@ endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DBUILD_LIBPROJ_SHARED=${VCPKG_BUILD_SHARED_LIBS} -DPROJ_LIB_SUBDIR=lib diff --git a/ports/protobuf/CONTROL b/ports/protobuf/CONTROL index 0dc2aa6dc52..f6876ba9141 100644 --- a/ports/protobuf/CONTROL +++ b/ports/protobuf/CONTROL @@ -1,5 +1,5 @@ Source: protobuf -Version: 3.8.0-1 +Version: 3.9.0 Homepage: https://github.com/google/protobuf Description: Protocol Buffers - Google's data interchange format diff --git a/ports/protobuf/portfile.cmake b/ports/protobuf/portfile.cmake index 7c04158a837..c650e921e19 100644 --- a/ports/protobuf/portfile.cmake +++ b/ports/protobuf/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/protobuf - REF v3.8.0 - SHA512 ba27c64e5193cd4a144bf0c9dc0d195fbbe6e580aaca01960362f0f185074588ca40046d3bcea76e1deae7508b722f6c5be484ea957122ae8e98229c7c3a4ad2 + REF v3.9.0 + SHA512 eebfea7758b924939edaf44d0f51e341f4778dcf943c9e399da57cb5f52e875bda1e37e40841798232dea52082b5d59c20de69a15ddeaf00220c432f05ca0e6e HEAD_REF master PATCHES fix-uwp.patch diff --git a/ports/pugixml/CONTROL b/ports/pugixml/CONTROL index a68f438334a..7024b6b049b 100644 --- a/ports/pugixml/CONTROL +++ b/ports/pugixml/CONTROL @@ -1,4 +1,4 @@ Source: pugixml -Version: 1.9-2 +Version: 1.9-3 Homepage: https://github.com/zeux/pugixml Description: C++ XML processing library diff --git a/ports/pugixml/portfile.cmake b/ports/pugixml/portfile.cmake index 62d0a4b74ad..746e9c2d4c5 100644 --- a/ports/pugixml/portfile.cmake +++ b/ports/pugixml/portfile.cmake @@ -10,6 +10,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/qhull/CONTROL b/ports/qhull/CONTROL index 9ea30f0115c..67812997bac 100644 --- a/ports/qhull/CONTROL +++ b/ports/qhull/CONTROL @@ -1,4 +1,4 @@ Source: qhull -Version: 7.3.2 +Version: 7.3.2-1 Homepage: https://github.com/qhull/qhull Description: computes the convex hull, Delaunay triangulation, Voronoi diagram diff --git a/ports/qhull/portfile.cmake b/ports/qhull/portfile.cmake index a9c68992310..ade241dc8ad 100644 --- a/ports/qhull/portfile.cmake +++ b/ports/qhull/portfile.cmake @@ -6,6 +6,7 @@ vcpkg_from_github( REF v7.3.2 # Qhull 2019.1 SHA512 aea2c70179de10f648aba960129a3b9a3fe309a0eb085bdb86f697e3d4b214570c241e88d4f0b4d2974137759ee7086452d0a3957c4b2a256708402fb3c9eb3d HEAD_REF master + PATCHES uwp.patch ) if(${TARGET_TRIPLET} STREQUAL "x64-windows-static") # workaround for visual studio toolset regression LNK1201 (remove if solved) diff --git a/ports/qhull/uwp.patch b/ports/qhull/uwp.patch new file mode 100644 index 00000000000..98c74564efd --- /dev/null +++ b/ports/qhull/uwp.patch @@ -0,0 +1,26 @@ +diff --git a/src/libqhull/global.c b/src/libqhull/global.c +index e7de8e6..81be9df 100644 +--- a/src/libqhull/global.c ++++ b/src/libqhull/global.c +@@ -636,7 +636,7 @@ void qh_init_qhull_command(int argc, char *argv[]) { + */ + void qh_initflags(char *command) { + int k, i, lastproject; +- char *s= command, *t, *prev_s, *start, key, *lastwarning= NULL; ++ char *s= command, *t = NULL, *prev_s, *start, key, *lastwarning= NULL; + boolT isgeom= False, wasproject; + realT r; + +diff --git a/src/libqhull_r/global_r.c b/src/libqhull_r/global_r.c +index 3e6919f..8d13e47 100644 +--- a/src/libqhull_r/global_r.c ++++ b/src/libqhull_r/global_r.c +@@ -610,7 +610,7 @@ void qh_init_qhull_command(qhT *qh, int argc, char *argv[]) { + */ + void qh_initflags(qhT *qh, char *command) { + int k, i, lastproject; +- char *s= command, *t, *prev_s, *start, key, *lastwarning= NULL; ++ char *s= command, *t = NULL, *prev_s, *start, key, *lastwarning= NULL; + boolT isgeom= False, wasproject; + realT r; + diff --git a/ports/qwt/CONTROL b/ports/qwt/CONTROL index 230203b34ae..c1271a72f7c 100644 --- a/ports/qwt/CONTROL +++ b/ports/qwt/CONTROL @@ -1,5 +1,5 @@ Source: qwt -Version: 6.1.3-6 +Version: 6.1.3-7 Homepage: https://sourceforge.net/projects/qwt Description: Qt widgets library for technical applications Build-Depends: qt5-base, qt5-svg, qt5-tools diff --git a/ports/qwt/build-static-lib.patch b/ports/qwt/build-static-lib.patch deleted file mode 100644 index 3e1b462ac6b..00000000000 --- a/ports/qwt/build-static-lib.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/qwtconfig.pri b/qwtconfig.pri -index 2dc3715..756231a 100644 ---- a/qwtconfig.pri -+++ b/qwtconfig.pri -@@ -72,7 +72,7 @@ QWT_INSTALL_FEATURES = $${QWT_INSTALL_PREFIX}/features - # it will be a static library. - ###################################################################### - --QWT_CONFIG += QwtDll -+# QWT_CONFIG += QwtDll - - ###################################################################### - # QwtPlot enables all classes, that are needed to use the QwtPlot diff --git a/ports/qwt/build-shared-lib.patch b/ports/qwt/fix-dynamic-static.patch similarity index 65% rename from ports/qwt/build-shared-lib.patch rename to ports/qwt/fix-dynamic-static.patch index 2a8447d5213..b608681f2ec 100644 --- a/ports/qwt/build-shared-lib.patch +++ b/ports/qwt/fix-dynamic-static.patch @@ -1,13 +1,15 @@ diff --git a/qwtconfig.pri b/qwtconfig.pri -index 756231a..2dc3715 100644 +index 1fe6055..441c69b 100644 --- a/qwtconfig.pri +++ b/qwtconfig.pri -@@ -72,7 +72,7 @@ QWT_INSTALL_FEATURES = $${QWT_INSTALL_PREFIX}/features +@@ -72,7 +72,10 @@ QWT_INSTALL_FEATURES = $${QWT_INSTALL_PREFIX}/features # it will be a static library. ###################################################################### --# QWT_CONFIG += QwtDll -+QWT_CONFIG += QwtDll ++CONFIG(dynamic, dynamic|static) { ++ + QWT_CONFIG += QwtDll ++} ###################################################################### # QwtPlot enables all classes, that are needed to use the QwtPlot diff --git a/ports/qwt/portfile.cmake b/ports/qwt/portfile.cmake index 918914a0111..002272e2468 100644 --- a/ports/qwt/portfile.cmake +++ b/ports/qwt/portfile.cmake @@ -1,30 +1,25 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/qwt-6.1.3) + vcpkg_download_distfile(ARCHIVE URLS "https://sourceforge.net/projects/qwt/files/qwt/6.1.3/qwt-6.1.3.zip" FILENAME "qwt-6.1.3.zip" SHA512 8f249e23d50f71d14fca37776ea40d8d6931db14d9602e03a343bfb7a9bf55502202103135b77f583c3890a7924220e8a142a01c448dbde311860d89a3b10fc8 ) -vcpkg_extract_source_archive(${ARCHIVE}) -if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/build-shared-lib.patch" - QUIET - ) -else() - vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/build-static-lib.patch" - QUIET - ) -endif() +vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH + PATCHES fix-dynamic-static.patch +) set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") -vcpkg_configure_qmake(SOURCE_PATH ${SOURCE_PATH}) +vcpkg_configure_qmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + CONFIG+=${VCPKG_LIBRARY_LINKAGE} +) vcpkg_build_qmake( RELEASE_TARGETS sub-src-release_ordered diff --git a/ports/ragel/CONTROL b/ports/ragel/CONTROL index 112128a5216..1e23db11751 100644 --- a/ports/ragel/CONTROL +++ b/ports/ragel/CONTROL @@ -1,4 +1,4 @@ Source: ragel -Version: 6.10-1 +Version: 6.10-2 Homepage: https://www.colm.net/files/ragel Description: Ragel State Machine Compiler diff --git a/ports/ragel/portfile.cmake b/ports/ragel/portfile.cmake index 00082e4bde6..820ded5df2d 100644 --- a/ports/ragel/portfile.cmake +++ b/ports/ragel/portfile.cmake @@ -19,6 +19,7 @@ vcpkg_apply_patches( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/re2/CONTROL b/ports/re2/CONTROL index 4bf7106e7d4..d8ff925d80f 100644 --- a/ports/re2/CONTROL +++ b/ports/re2/CONTROL @@ -1,4 +1,4 @@ Source: re2 -Version: 2019-05-07-1 +Version: 2019-05-07-2 Homepage: https://github.com/google/re2 Description: RE2 is a fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python. It is a C++ library. diff --git a/ports/re2/portfile.cmake b/ports/re2/portfile.cmake index ef2c9e842f8..690889c70f6 100644 --- a/ports/re2/portfile.cmake +++ b/ports/re2/portfile.cmake @@ -10,6 +10,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DRE2_BUILD_TESTING=OFF ) diff --git a/ports/recast/CONTROL b/ports/recast/CONTROL index e19df38c8f6..3726b99d501 100644 --- a/ports/recast/CONTROL +++ b/ports/recast/CONTROL @@ -1,4 +1,4 @@ Source: recast -Version: 1.5.1-2 +Version: 1.5.1-3 Homepage: https://github.com/recastnavigation/recastnavigation Description: Navigation-mesh Toolset for Games diff --git a/ports/recast/portfile.cmake b/ports/recast/portfile.cmake index a544971d825..a84d06e3c07 100644 --- a/ports/recast/portfile.cmake +++ b/ports/recast/portfile.cmake @@ -14,6 +14,7 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/restinio/CONTROL b/ports/restinio/CONTROL index a7c81a55f84..fc536c2fe46 100644 --- a/ports/restinio/CONTROL +++ b/ports/restinio/CONTROL @@ -1,4 +1,4 @@ Source: restinio -Version: 0.5.1-1 +Version: 0.5.1.1 Description: A header-only C++14 library that gives you an embedded HTTP/Websocket server targeted primarily for asynchronous processing of HTTP-requests. Build-Depends: asio, fmt, http-parser diff --git a/ports/restinio/portfile.cmake b/ports/restinio/portfile.cmake index 5ae3cc2e2a1..fa329a9bd89 100644 --- a/ports/restinio/portfile.cmake +++ b/ports/restinio/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_bitbucket( OUT_SOURCE_PATH SOURCE_PATH REPO sobjectizerteam/restinio - REF v.0.5.1 - SHA512 e8d1f9ac6dcb87012a656ba9f80412db93280b436199013ed36aa31398f0c0e65b634e2e714b9709afae717e2bc432891d5125f4af01b0d3a0ce79169de40870 + REF v.0.5.1.1 + SHA512 f5eedd53f4459936d4b32a4243c703a350a611bfc7b0c17c2bb047944cc054f8a93f9fd4904f76d601eb2ce0c9b078c33a6a545b5698ddaf63c3f5327dabd5f6 ) vcpkg_configure_cmake( diff --git a/ports/riffcpp/CONTROL b/ports/riffcpp/CONTROL new file mode 100644 index 00000000000..3667dd78666 --- /dev/null +++ b/ports/riffcpp/CONTROL @@ -0,0 +1,4 @@ +Source: riffcpp +Version: 2.1.0 +Homepage: https://github.com/libdmusic/riffcpp +Description: Simple library for reading RIFF files diff --git a/ports/riffcpp/portfile.cmake b/ports/riffcpp/portfile.cmake new file mode 100644 index 00000000000..85b623cb829 --- /dev/null +++ b/ports/riffcpp/portfile.cmake @@ -0,0 +1,26 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO libdmusic/riffcpp + REF v2.2.1 + SHA512 646a98e6f6cd3995081a6242a866effab2968e20b2700248e3d19036bed426236e3844ad09d4b542e023f5f280d74575c47abe5e5e94ce0d77536f4f0a33b8c1 + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DRIFFCPP_INSTALL_EXAMPLE=OFF +) + +vcpkg_install_cmake() +vcpkg_fixup_cmake_targets() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) + +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/riffcpp) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/riffcpp/LICENSE ${CURRENT_PACKAGES_DIR}/share/riffcpp/copyright) +vcpkg_test_cmake(PACKAGE_NAME riffcpp) \ No newline at end of file diff --git a/ports/sdl1/CONTROL b/ports/sdl1/CONTROL index ce37bc05d08..59606dcb039 100644 --- a/ports/sdl1/CONTROL +++ b/ports/sdl1/CONTROL @@ -1,3 +1,3 @@ Source: sdl1 -Version: 1.2.15-5 +Version: 1.2.15-6 Description: Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. diff --git a/ports/sdl1/SDL.vcxproj b/ports/sdl1/SDL_dynamic.vcxproj similarity index 100% rename from ports/sdl1/SDL.vcxproj rename to ports/sdl1/SDL_dynamic.vcxproj diff --git a/ports/sdl1/SDL_static.vcxproj b/ports/sdl1/SDL_static.vcxproj new file mode 100644 index 00000000000..c435662ab1e --- /dev/null +++ b/ports/sdl1/SDL_static.vcxproj @@ -0,0 +1,354 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + SDL + + + + StaticLibrary + v141 + false + + + StaticLibrary + v141 + false + + + StaticLibrary + v141 + false + + + StaticLibrary + v141 + false + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>15.0.27924.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/SDL.tlb + + + Disabled + $(ProjectDir)\..\..\include;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;_DEBUG;_WINDOWS;_WIN32_WINNT=0x0400;%(PreprocessorDefinitions) + MultiThreadedDebug + false + + .\Debug/SDL.pch + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + /MACHINE:I386 %(AdditionalOptions) + winmm.lib;dxguid.lib;%(AdditionalDependencies) + .\Debug/SDL.dll + true + false + true + .\Debug/SDL.pdb + Windows + false + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/SDL.tlb + + + Disabled + $(ProjectDir)\..\..\include;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;_DEBUG;_WINDOWS;_WIN32_WINNT=0x0400;%(PreprocessorDefinitions) + MultiThreadedDebug + false + + .\Debug/SDL.pch + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;dxguid.lib;%(AdditionalDependencies) + .\Debug/SDL.dll + true + false + true + .\Debug/SDL.pdb + Windows + MachineX64 + false + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/SDL.tlb + + + OnlyExplicitInline + false + $(ProjectDir)\..\..\include;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0400;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + + .\Release/SDL.pch + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + /MACHINE:I386 %(AdditionalOptions) + winmm.lib;dxguid.lib;%(AdditionalDependencies) + .\Release/SDL.dll + true + false + .\Release/SDL.pdb + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/SDL.tlb + + + OnlyExplicitInline + false + $(ProjectDir)\..\..\include;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0400;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + + .\Release/SDL.pch + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;dxguid.lib;%(AdditionalDependencies) + .\Release/SDL.dll + true + false + .\Release/SDL.pdb + Windows + MachineX64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ports/sdl1/SDLmain.vcxproj b/ports/sdl1/SDLmain_dynamic.vcxproj similarity index 100% rename from ports/sdl1/SDLmain.vcxproj rename to ports/sdl1/SDLmain_dynamic.vcxproj diff --git a/ports/sdl1/SDLmain_static.vcxproj b/ports/sdl1/SDLmain_static.vcxproj new file mode 100644 index 00000000000..3f3b6ca0106 --- /dev/null +++ b/ports/sdl1/SDLmain_static.vcxproj @@ -0,0 +1,215 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release_NoSTDIO + Win32 + + + Release_NoSTDIO + x64 + + + Release + Win32 + + + Release + x64 + + + + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + + + + StaticLibrary + v141 + false + + + StaticLibrary + v141 + false + + + StaticLibrary + v141 + false + + + StaticLibrary + v141 + false + + + StaticLibrary + v141 + false + + + StaticLibrary + v141 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>15.0.27924.0 + + + .\Release\ + .\Release\ + + + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + .\Release_NOSTDIO\ + .\Release_NOSTDIO\ + + + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + .\Debug\ + .\Debug\ + + + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + OnlyExplicitInline + ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreaded + true + + .\Release/SDLmain.pch + Level3 + Default + + + + + X64 + + + OnlyExplicitInline + ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreaded + true + + .\Release/SDLmain.pch + Level3 + Default + + + + + OnlyExplicitInline + ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_WINDOWS;NO_STDIO_REDIRECT;%(PreprocessorDefinitions) + true + MultiThreaded + true + + .\Release_NOSTDIO/SDLmain.pch + Level3 + Default + + + + + X64 + + + OnlyExplicitInline + ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_WINDOWS;NO_STDIO_REDIRECT;%(PreprocessorDefinitions) + true + MultiThreaded + true + + .\Release_NOSTDIO/SDLmain.pch + Level3 + Default + + + + + Disabled + ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebug + + .\Debug/SDLmain.pch + Level3 + OldStyle + Default + + + + + X64 + + + Disabled + ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebug + + .\Debug/SDLmain.pch + Level3 + OldStyle + Default + + + + + + + + + \ No newline at end of file diff --git a/ports/sdl1/portfile.cmake b/ports/sdl1/portfile.cmake index 2cbdfc42c8d..4e8d512df81 100644 --- a/ports/sdl1/portfile.cmake +++ b/ports/sdl1/portfile.cmake @@ -9,18 +9,16 @@ vcpkg_from_github( PATCHES export-symbols-only-in-shared-build.patch ) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/SDL1_2017.sln DESTINATION ${SOURCE_PATH}/VisualC/ ) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/SDL.vcxproj DESTINATION ${SOURCE_PATH}/VisualC/SDL ) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/SDLmain.vcxproj DESTINATION ${SOURCE_PATH}/VisualC/SDLmain ) - configure_file(${SOURCE_PATH}/include/SDL_config.h.default ${SOURCE_PATH}/include/SDL_config.h COPYONLY) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/SDL1_2017.sln DESTINATION ${SOURCE_PATH}/VisualC/ ) + if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/static-build.patch - ) + file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/SDL_static.vcxproj DESTINATION ${SOURCE_PATH}/VisualC/SDL RENAME SDL.vcxproj) + file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/SDLmain_static.vcxproj DESTINATION ${SOURCE_PATH}/VisualC/SDLmain RENAME SDLmain.vcxproj) +else() + file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/SDL_dynamic.vcxproj DESTINATION ${SOURCE_PATH}/VisualC/SDL RENAME SDL.vcxproj) + file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/SDLmain_dynamic.vcxproj DESTINATION ${SOURCE_PATH}/VisualC/SDLmain RENAME SDLmain.vcxproj) endif() # This text file gets copied as a library, and included as one in the package diff --git a/ports/sdl1/static-build.patch b/ports/sdl1/static-build.patch deleted file mode 100644 index 89bc39ddce7..00000000000 --- a/ports/sdl1/static-build.patch +++ /dev/null @@ -1,74 +0,0 @@ ---- a/VisualC/SDL/SDL.vcxproj Sun Mar 31 11:28:40 2019 -+++ b/VisualC/SDL/SDL.vcxproj Sun Mar 31 19:00:00 2019 -@@ -26,3 +26,3 @@ - -- DynamicLibrary -+ StaticLibrary - v141 -@@ -31,3 +31,3 @@ - -- DynamicLibrary -+ StaticLibrary - v141 -@@ -36,3 +36,3 @@ - -- DynamicLibrary -+ StaticLibrary - v141 -@@ -41,3 +41,3 @@ - -- DynamicLibrary -+ StaticLibrary - v141 -@@ -100,3 +100,3 @@ - _CRT_SECURE_NO_DEPRECATE;_DEBUG;_WINDOWS;_WIN32_WINNT=0x0400;%(PreprocessorDefinitions) -- MultiThreadedDLL -+ MultiThreadedDebug - false -@@ -137,3 +137,3 @@ - _CRT_SECURE_NO_DEPRECATE;_DEBUG;_WINDOWS;_WIN32_WINNT=0x0400;%(PreprocessorDefinitions) -- MultiThreadedDLL -+ MultiThreadedDebug - false -@@ -176,3 +176,3 @@ - true -- MultiThreadedDLL -+ MultiThreaded - false -@@ -213,3 +213,3 @@ - true -- MultiThreadedDLL -+ MultiThreaded - false ---- a/VisualC/SDLmain/SDLmain.vcxproj Sun Mar 31 11:28:40 2019 -+++ b/VisualC/SDLmain/SDLmain.vcxproj Sun Mar 31 19:00:00 2019 -@@ -123,3 +123,3 @@ - true -- MultiThreadedDLL -+ MultiThreaded - true -@@ -140,3 +140,3 @@ - true -- MultiThreadedDLL -+ MultiThreaded - true -@@ -154,3 +154,3 @@ - true -- MultiThreadedDLL -+ MultiThreaded - true -@@ -171,3 +171,3 @@ - true -- MultiThreadedDLL -+ MultiThreaded - true -@@ -184,3 +184,3 @@ - _CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) -- MultiThreadedDLL -+ MultiThreadedDebug - -@@ -200,3 +200,3 @@ - _CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) -- MultiThreadedDLL -+ MultiThreadedDebug - diff --git a/ports/sdl2-gfx/CONTROL b/ports/sdl2-gfx/CONTROL index 96a4d2776f5..8b4af0e61d4 100644 --- a/ports/sdl2-gfx/CONTROL +++ b/ports/sdl2-gfx/CONTROL @@ -1,4 +1,4 @@ Source: sdl2-gfx -Version: 1.0.4-1 +Version: 1.0.4-2 Build-Depends: sdl2 Description: Graphics primitives (line, circle, rectangle etc.) with AA support, rotozoomer and other drawing related support functions wrapped up in a C based add-on library for the Simple Direct Media (SDL) cross-platform API layer. diff --git a/ports/sdl2-gfx/portfile.cmake b/ports/sdl2-gfx/portfile.cmake index 9cc6a6ca8a4..ce83fd21e49 100644 --- a/ports/sdl2-gfx/portfile.cmake +++ b/ports/sdl2-gfx/portfile.cmake @@ -18,6 +18,7 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS_DEBUG -DSDL_GFX_SKIP_HEADERS=1 ) diff --git a/ports/septag-sx/CONTROL b/ports/septag-sx/CONTROL index a9748b910e5..ee9917e667d 100644 --- a/ports/septag-sx/CONTROL +++ b/ports/septag-sx/CONTROL @@ -1,3 +1,3 @@ Source: septag-sx -Version: 2019-05-07-1 +Version: 2019-05-07-2 Description: Portable base library for C programmers, designed for performance and simplicity. diff --git a/ports/septag-sx/portfile.cmake b/ports/septag-sx/portfile.cmake index d7754513423..4fb87a250e5 100644 --- a/ports/septag-sx/portfile.cmake +++ b/ports/septag-sx/portfile.cmake @@ -16,6 +16,7 @@ string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SX_SHARED_LIB) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DSX_BUILD_TESTS=OFF -DSX_SHARED_LIB=${SX_SHARED_LIB} diff --git a/ports/sfml/CONTROL b/ports/sfml/CONTROL index d23645a3017..606095d8823 100644 --- a/ports/sfml/CONTROL +++ b/ports/sfml/CONTROL @@ -1,5 +1,5 @@ Source: sfml -Version: 2.5.1-1 +Version: 2.5.1-2 Homepage: https://github.com/sfml/sfml Description: Simple and fast multimedia library Build-Depends: freetype, libflac, libogg, libvorbis, openal-soft, stb diff --git a/ports/sfml/portfile.cmake b/ports/sfml/portfile.cmake index a25c5628bdc..a4c0d89c426 100644 --- a/ports/sfml/portfile.cmake +++ b/ports/sfml/portfile.cmake @@ -21,6 +21,7 @@ endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DSFML_BUILD_FRAMEWORKS=OFF -DSFML_USE_SYSTEM_DEPS=ON diff --git a/ports/shaderc/CONTROL b/ports/shaderc/CONTROL index 044fdd4105d..0878b17bec4 100644 --- a/ports/shaderc/CONTROL +++ b/ports/shaderc/CONTROL @@ -1,5 +1,5 @@ Source: shaderc -Version: 2019-06-26 +Version: 2019-06-26-1 Homepage: https://github.com/google/shaderc Description: A collection of tools, libraries and tests for shader compilation. Build-Depends: glslang, spirv-tools \ No newline at end of file diff --git a/ports/shaderc/portfile.cmake b/ports/shaderc/portfile.cmake index fbdc1e4dd16..2978422965c 100644 --- a/ports/shaderc/portfile.cmake +++ b/ports/shaderc/portfile.cmake @@ -32,6 +32,7 @@ vcpkg_add_to_path(PREPEND "${PYTHON3_EXE_PATH}") vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DSHADERC_SKIP_TESTS=true ${OPTIONS} -Dglslang_SOURCE_DIR=${CURRENT_INSTALLED_DIR}/include -Dspirv-tools_SOURCE_DIR=${CURRENT_INSTALLED_DIR}/include OPTIONS_DEBUG -DSUFFIX_D=true OPTIONS_RELEASE -DSUFFIX_D=false diff --git a/ports/signalrclient/CONTROL b/ports/signalrclient/CONTROL index e64b920baec..85e4427d5ba 100644 --- a/ports/signalrclient/CONTROL +++ b/ports/signalrclient/CONTROL @@ -1,5 +1,5 @@ Source: signalrclient -Version: 1.0.0-beta1-6 +Version: 1.0.0-beta1-7 Build-Depends: cpprestsdk, openssl Homepage: https://github.com/aspnet/SignalR-Client-Cpp Description: C++ client for SignalR. diff --git a/ports/signalrclient/portfile.cmake b/ports/signalrclient/portfile.cmake index e3b6e7c4d6e..39f1992b86d 100644 --- a/ports/signalrclient/portfile.cmake +++ b/ports/signalrclient/portfile.cmake @@ -13,6 +13,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS_DEBUG -DCPPREST_SO=${CURRENT_INSTALLED_DIR}/debug/lib/cpprest_2_10d.lib OPTIONS_RELEASE diff --git a/ports/simdjson/CONTROL b/ports/simdjson/CONTROL index 8c71eeee505..df8c5deba92 100644 --- a/ports/simdjson/CONTROL +++ b/ports/simdjson/CONTROL @@ -1,3 +1,4 @@ Source: simdjson -Version: 2019-03-09 +Version: 2019-08-05 Description: A extremely fast JSON library that can parse gigabytes of JSON per second +Homepage: https://github.com/lemire/simdjson diff --git a/ports/simdjson/portfile.cmake b/ports/simdjson/portfile.cmake index f6b2f347aaf..a5eea7b6829 100644 --- a/ports/simdjson/portfile.cmake +++ b/ports/simdjson/portfile.cmake @@ -10,8 +10,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lemire/simdjson - REF d2fa086198b77df44e7fa48b25200e118fa81eb0 - SHA512 fe92b65e44502381d286b6a7c949055d185e56e7c244a5ab3086b2fe7da76ce81a966daa2d8459794ff0a911b426b1c77e1fc9ef0d616e20868621b1bb30cf67 + REF d9a0e2b8f441c20ad46276fdb8ce24f2aebdc07b + SHA512 05523c59b95485b93646370ac1ef9f80a72351a5bfe76797c5bbbf249bedd81b962dad19040a7eaac80744aaec18be9bec1120da44a9a1e4328e68b3d671bdaf HEAD_REF master ) @@ -22,6 +22,8 @@ vcpkg_configure_cmake( PREFER_NINJA OPTIONS -DSIMDJSON_BUILD_STATIC=${SIMDJSON_BUILD_STATIC} + OPTIONS_DEBUG + -DSIMDJSON_SANITIZE=ON ) vcpkg_install_cmake() @@ -38,4 +40,4 @@ file(REMOVE_RECURSE configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) # CMake integration test -#vcpkg_test_cmake(PACKAGE_NAME ${PORT}) +vcpkg_test_cmake(PACKAGE_NAME ${PORT}) diff --git a/ports/so5extra/CONTROL b/ports/so5extra/CONTROL index 22abf134cb7..fbe4a1e16df 100644 --- a/ports/so5extra/CONTROL +++ b/ports/so5extra/CONTROL @@ -1,4 +1,4 @@ Source: so5extra -Version: 1.3.1 +Version: 1.3.1-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 d660fbbca85..71e1cb443ee 100644 --- a/ports/so5extra/portfile.cmake +++ b/ports/so5extra/portfile.cmake @@ -12,6 +12,7 @@ vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DSO5EXTRA_INSTALL=ON ) diff --git a/ports/sol2/portfile.cmake b/ports/sol2/portfile.cmake index ee89b9f546d..a055d18b12c 100644 --- a/ports/sol2/portfile.cmake +++ b/ports/sol2/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ThePhD/sol2 - REF 5a4d7dca7f77e65aed15c0fb8f8acf1570677335 - SHA512 5fc88a000d7a8379c3c8d8ee2dc3371514c4a58dcc3340b700565278ec69b7be0f108d599e3fe3b3ca347ef7c5b25ac01d83b1a988ac0189c8517b6ae66e96d6 + REF 57990845726e17fba11a39cfcb1fc0127a7ea638 + SHA512 3894610a08f7a47c43fc14e2abe750fc41ce7ea90106a6f0290d1ae2bbcc829d340f2c211426686c061a42a77effec1f1c898f19153e9f904e5fab416c7b6399 HEAD_REF develop ) diff --git a/ports/spaceland/CONTROL b/ports/spaceland/CONTROL index 4f885e6ebc3..97b5a9156e7 100644 --- a/ports/spaceland/CONTROL +++ b/ports/spaceland/CONTROL @@ -1,4 +1,4 @@ Source: spaceland -Version: 7.8.2-2 +Version: 7.8.2-3 Description: Spaceland Lib (sl) is a suite for geometric computation, specifically adapted to OpenGL. Build-Depends: zlib diff --git a/ports/spaceland/portfile.cmake b/ports/spaceland/portfile.cmake index d90ceafd7eb..def38d6d154 100644 --- a/ports/spaceland/portfile.cmake +++ b/ports/spaceland/portfile.cmake @@ -14,6 +14,7 @@ vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA DISABLE_PARALLEL_CONFIGURE OPTIONS -DSL_TEST=OFF diff --git a/ports/speexdsp/CONTROL b/ports/speexdsp/CONTROL index d96eb11c1d7..793281d419c 100644 --- a/ports/speexdsp/CONTROL +++ b/ports/speexdsp/CONTROL @@ -1,5 +1,5 @@ Source: speexdsp -Version: 1.2rc3-2 +Version: 1.2rc3-3 Homepage: https://ftp.osuosl.org/pub/xiph/releases/speex/ Description: A patent-free, Open Source/Free Software DSP library. Build-Depends: diff --git a/ports/speexdsp/portfile.cmake b/ports/speexdsp/portfile.cmake index 72bc313d7f5..0cc6ac71cba 100644 --- a/ports/speexdsp/portfile.cmake +++ b/ports/speexdsp/portfile.cmake @@ -16,6 +16,7 @@ endif() vcpkg_configure_cmake( SOURCE_PATH ${CMAKE_PATH} + PREFER_NINJA OPTIONS -DSOURCE_PATH=${SOURCE_PATH} -DUSE_SSE=${USE_SSE} ) diff --git a/ports/sqlpp11-connector-mysql/CONTROL b/ports/sqlpp11-connector-mysql/CONTROL index e5627513765..78817eae768 100644 --- a/ports/sqlpp11-connector-mysql/CONTROL +++ b/ports/sqlpp11-connector-mysql/CONTROL @@ -1,4 +1,4 @@ Source: sqlpp11-connector-mysql -Version: 0.25-1 +Version: 0.25-2 Description: A C++ wrapper for MySQL meant to be used in combination with sqlpp11. Build-Depends: date, libmariadb, sqlpp11 diff --git a/ports/sqlpp11-connector-mysql/portfile.cmake b/ports/sqlpp11-connector-mysql/portfile.cmake index fbaaebaf1c6..9f93058a4a6 100644 --- a/ports/sqlpp11-connector-mysql/portfile.cmake +++ b/ports/sqlpp11-connector-mysql/portfile.cmake @@ -13,6 +13,7 @@ vcpkg_from_github( # Use sqlpp11-connector-mysql's own build process, skipping tests vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DENABLE_TESTS:BOOL=OFF -DDATE_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include diff --git a/ports/sqlpp11-connector-sqlite3/CONTROL b/ports/sqlpp11-connector-sqlite3/CONTROL index 25e680eda84..564a9a9a4de 100644 --- a/ports/sqlpp11-connector-sqlite3/CONTROL +++ b/ports/sqlpp11-connector-sqlite3/CONTROL @@ -1,4 +1,4 @@ Source: sqlpp11-connector-sqlite3 -Version: 0.29-1 +Version: 0.29-2 Description: A C++ wrapper for sqlite3 meant to be used in combination with sqlpp11. Build-Depends: date, sqlite3, sqlpp11 diff --git a/ports/sqlpp11-connector-sqlite3/portfile.cmake b/ports/sqlpp11-connector-sqlite3/portfile.cmake index 735912a863b..6587df313eb 100644 --- a/ports/sqlpp11-connector-sqlite3/portfile.cmake +++ b/ports/sqlpp11-connector-sqlite3/portfile.cmake @@ -13,6 +13,7 @@ vcpkg_from_github( # Use sqlpp11-connector-sqlite3's own build process, skipping tests vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DENABLE_TESTS:BOOL=OFF -DSQLPP11_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include diff --git a/ports/sqlpp11/CONTROL b/ports/sqlpp11/CONTROL index 282598dc526..b371f0a8c6c 100644 --- a/ports/sqlpp11/CONTROL +++ b/ports/sqlpp11/CONTROL @@ -1,4 +1,4 @@ Source: sqlpp11 -Version: 0.58 +Version: 0.58-1 Description: A type safe embedded domain specific language for SQL queries and results in C++. Build-Depends: date diff --git a/ports/sqlpp11/portfile.cmake b/ports/sqlpp11/portfile.cmake index a11d563d9c3..7fe915213c2 100644 --- a/ports/sqlpp11/portfile.cmake +++ b/ports/sqlpp11/portfile.cmake @@ -12,6 +12,7 @@ vcpkg_from_github( # Use sqlpp11's own build process, skipping tests vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DENABLE_TESTS:BOOL=OFF ) diff --git a/ports/stlab/CONTROL b/ports/stlab/CONTROL index 01651f59ba2..6a289c53192 100644 --- a/ports/stlab/CONTROL +++ b/ports/stlab/CONTROL @@ -1,5 +1,5 @@ Source: stlab -Version: 1.4.1 +Version: 1.4.1-1 Description: stlab is the ongoing work of what was Adobe’s Software Technology Lab. The Concurrency library provides futures and channels, high level constructs for implementing algorithms that eases the use of multiple CPU cores while minimizing contention. This library solves several problems of the C++11 and C++17 TS futures. diff --git a/ports/stlab/portfile.cmake b/ports/stlab/portfile.cmake index 7c8925d93fb..2bcb7d1028f 100644 --- a/ports/stlab/portfile.cmake +++ b/ports/stlab/portfile.cmake @@ -11,6 +11,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DBUILD_TESTING=OFF ) diff --git a/ports/stormlib/CMakeLists.txt b/ports/stormlib/CMakeLists.txt new file mode 100644 index 00000000000..6b0e2a66cd5 --- /dev/null +++ b/ports/stormlib/CMakeLists.txt @@ -0,0 +1,279 @@ +cmake_minimum_required(VERSION 3.9) +project(stormlib) + +set(SRC_FILES + stormlib_dll/StormLib.def + src/adpcm/adpcm.cpp + src/huffman/huff.cpp + src/jenkins/lookup3.c + src/lzma/C/LzFind.c + src/lzma/C/LzmaDec.c + src/lzma/C/LzmaEnc.c + src/pklib/explode.c + src/pklib/implode.c + src/sparse/sparse.cpp + src/FileStream.cpp + src/SBaseCommon.cpp + src/SBaseDumpData.cpp + src/SBaseFileTable.cpp + src/SBaseSubTypes.cpp + src/SCompression.cpp + src/SFileAddFile.cpp + src/SFileAttributes.cpp + src/SFileCompactArchive.cpp + src/SFileCreateArchive.cpp + src/SFileExtractFile.cpp + src/SFileFindFile.cpp + src/SFileGetFileInfo.cpp + src/SFileListFile.cpp + src/SFileOpenArchive.cpp + src/SFileOpenFileEx.cpp + src/SFilePatchArchives.cpp + src/SFileReadFile.cpp + src/SFileVerify.cpp + src/libtomcrypt/src/pk/rsa/rsa_verify_simple.c + src/libtomcrypt/src/misc/crypt_libc.c +) + +if(MSVC) + # This file is used to create a DLL on windows + # Use BUILD_SHARED_LIBS to create StormLib.dll + set(STORM_DEF_FILES + stormlib_dll/StormLib.def + ) +endif() + +set(TOMCRYPT_FILES + src/libtomcrypt/src/hashes/hash_memory.c + src/libtomcrypt/src/hashes/md5.c + src/libtomcrypt/src/hashes/sha1.c + src/libtomcrypt/src/math/ltm_desc.c + src/libtomcrypt/src/math/multi.c + src/libtomcrypt/src/math/rand_prime.c + src/libtomcrypt/src/misc/base64_decode.c + src/libtomcrypt/src/misc/crypt_argchk.c + src/libtomcrypt/src/misc/crypt_find_hash.c + src/libtomcrypt/src/misc/crypt_find_prng.c + src/libtomcrypt/src/misc/crypt_hash_descriptor.c + src/libtomcrypt/src/misc/crypt_hash_is_valid.c + src/libtomcrypt/src/misc/crypt_ltc_mp_descriptor.c + src/libtomcrypt/src/misc/crypt_prng_descriptor.c + src/libtomcrypt/src/misc/crypt_prng_is_valid.c + src/libtomcrypt/src/misc/crypt_register_hash.c + src/libtomcrypt/src/misc/crypt_register_prng.c + src/libtomcrypt/src/misc/zeromem.c + src/libtomcrypt/src/pk/asn1/der_decode_bit_string.c + src/libtomcrypt/src/pk/asn1/der_decode_boolean.c + src/libtomcrypt/src/pk/asn1/der_decode_choice.c + src/libtomcrypt/src/pk/asn1/der_decode_ia5_string.c + src/libtomcrypt/src/pk/asn1/der_decode_integer.c + src/libtomcrypt/src/pk/asn1/der_decode_object_identifier.c + src/libtomcrypt/src/pk/asn1/der_decode_octet_string.c + src/libtomcrypt/src/pk/asn1/der_decode_printable_string.c + src/libtomcrypt/src/pk/asn1/der_decode_sequence_ex.c + src/libtomcrypt/src/pk/asn1/der_decode_sequence_flexi.c + src/libtomcrypt/src/pk/asn1/der_decode_sequence_multi.c + src/libtomcrypt/src/pk/asn1/der_decode_short_integer.c + src/libtomcrypt/src/pk/asn1/der_decode_utctime.c + src/libtomcrypt/src/pk/asn1/der_decode_utf8_string.c + src/libtomcrypt/src/pk/asn1/der_encode_bit_string.c + src/libtomcrypt/src/pk/asn1/der_encode_boolean.c + src/libtomcrypt/src/pk/asn1/der_encode_ia5_string.c + src/libtomcrypt/src/pk/asn1/der_encode_integer.c + src/libtomcrypt/src/pk/asn1/der_encode_object_identifier.c + src/libtomcrypt/src/pk/asn1/der_encode_octet_string.c + src/libtomcrypt/src/pk/asn1/der_encode_printable_string.c + src/libtomcrypt/src/pk/asn1/der_encode_sequence_ex.c + src/libtomcrypt/src/pk/asn1/der_encode_sequence_multi.c + src/libtomcrypt/src/pk/asn1/der_encode_set.c + src/libtomcrypt/src/pk/asn1/der_encode_setof.c + src/libtomcrypt/src/pk/asn1/der_encode_short_integer.c + src/libtomcrypt/src/pk/asn1/der_encode_utctime.c + src/libtomcrypt/src/pk/asn1/der_encode_utf8_string.c + src/libtomcrypt/src/pk/asn1/der_length_bit_string.c + src/libtomcrypt/src/pk/asn1/der_length_boolean.c + src/libtomcrypt/src/pk/asn1/der_length_ia5_string.c + src/libtomcrypt/src/pk/asn1/der_length_integer.c + src/libtomcrypt/src/pk/asn1/der_length_object_identifier.c + src/libtomcrypt/src/pk/asn1/der_length_octet_string.c + src/libtomcrypt/src/pk/asn1/der_length_printable_string.c + src/libtomcrypt/src/pk/asn1/der_length_sequence.c + src/libtomcrypt/src/pk/asn1/der_length_utctime.c + src/libtomcrypt/src/pk/asn1/der_sequence_free.c + src/libtomcrypt/src/pk/asn1/der_length_utf8_string.c + src/libtomcrypt/src/pk/asn1/der_length_short_integer.c + src/libtomcrypt/src/pk/ecc/ltc_ecc_map.c + src/libtomcrypt/src/pk/ecc/ltc_ecc_mul2add.c + src/libtomcrypt/src/pk/ecc/ltc_ecc_mulmod.c + src/libtomcrypt/src/pk/ecc/ltc_ecc_points.c + src/libtomcrypt/src/pk/ecc/ltc_ecc_projective_add_point.c + src/libtomcrypt/src/pk/ecc/ltc_ecc_projective_dbl_point.c + src/libtomcrypt/src/pk/pkcs1/pkcs_1_mgf1.c + src/libtomcrypt/src/pk/pkcs1/pkcs_1_oaep_decode.c + src/libtomcrypt/src/pk/pkcs1/pkcs_1_pss_decode.c + src/libtomcrypt/src/pk/pkcs1/pkcs_1_pss_encode.c + src/libtomcrypt/src/pk/pkcs1/pkcs_1_v1_5_decode.c + src/libtomcrypt/src/pk/pkcs1/pkcs_1_v1_5_encode.c + src/libtomcrypt/src/pk/rsa/rsa_exptmod.c + src/libtomcrypt/src/pk/rsa/rsa_free.c + src/libtomcrypt/src/pk/rsa/rsa_import.c + src/libtomcrypt/src/pk/rsa/rsa_make_key.c + src/libtomcrypt/src/pk/rsa/rsa_sign_hash.c + src/libtomcrypt/src/pk/rsa/rsa_verify_hash.c +) + +set(TOMMATH_FILES + src/libtommath/bncore.c + src/libtommath/bn_fast_mp_invmod.c + src/libtommath/bn_fast_mp_montgomery_reduce.c + src/libtommath/bn_fast_s_mp_mul_digs.c + src/libtommath/bn_fast_s_mp_mul_high_digs.c + src/libtommath/bn_fast_s_mp_sqr.c + src/libtommath/bn_mp_2expt.c + src/libtommath/bn_mp_abs.c + src/libtommath/bn_mp_add.c + src/libtommath/bn_mp_addmod.c + src/libtommath/bn_mp_add_d.c + src/libtommath/bn_mp_and.c + src/libtommath/bn_mp_clamp.c + src/libtommath/bn_mp_clear.c + src/libtommath/bn_mp_clear_multi.c + src/libtommath/bn_mp_cmp.c + src/libtommath/bn_mp_cmp_d.c + src/libtommath/bn_mp_cmp_mag.c + src/libtommath/bn_mp_cnt_lsb.c + src/libtommath/bn_mp_copy.c + src/libtommath/bn_mp_count_bits.c + src/libtommath/bn_mp_div.c + src/libtommath/bn_mp_div_2.c + src/libtommath/bn_mp_div_2d.c + src/libtommath/bn_mp_div_3.c + src/libtommath/bn_mp_div_d.c + src/libtommath/bn_mp_dr_is_modulus.c + src/libtommath/bn_mp_dr_reduce.c + src/libtommath/bn_mp_dr_setup.c + src/libtommath/bn_mp_exch.c + src/libtommath/bn_mp_exptmod.c + src/libtommath/bn_mp_exptmod_fast.c + src/libtommath/bn_mp_expt_d.c + src/libtommath/bn_mp_exteuclid.c + src/libtommath/bn_mp_fread.c + src/libtommath/bn_mp_fwrite.c + src/libtommath/bn_mp_gcd.c + src/libtommath/bn_mp_get_int.c + src/libtommath/bn_mp_grow.c + src/libtommath/bn_mp_init.c + src/libtommath/bn_mp_init_copy.c + src/libtommath/bn_mp_init_multi.c + src/libtommath/bn_mp_init_set.c + src/libtommath/bn_mp_init_set_int.c + src/libtommath/bn_mp_init_size.c + src/libtommath/bn_mp_invmod.c + src/libtommath/bn_mp_invmod_slow.c + src/libtommath/bn_mp_is_square.c + src/libtommath/bn_mp_jacobi.c + src/libtommath/bn_mp_karatsuba_mul.c + src/libtommath/bn_mp_karatsuba_sqr.c + src/libtommath/bn_mp_lcm.c + src/libtommath/bn_mp_lshd.c + src/libtommath/bn_mp_mod.c + src/libtommath/bn_mp_mod_2d.c + src/libtommath/bn_mp_mod_d.c + src/libtommath/bn_mp_montgomery_calc_normalization.c + src/libtommath/bn_mp_montgomery_reduce.c + src/libtommath/bn_mp_montgomery_setup.c + src/libtommath/bn_mp_mul.c + src/libtommath/bn_mp_mulmod.c + src/libtommath/bn_mp_mul_2.c + src/libtommath/bn_mp_mul_2d.c + src/libtommath/bn_mp_mul_d.c + src/libtommath/bn_mp_neg.c + src/libtommath/bn_mp_n_root.c + src/libtommath/bn_mp_or.c + src/libtommath/bn_mp_prime_fermat.c + src/libtommath/bn_mp_prime_is_divisible.c + src/libtommath/bn_mp_prime_is_prime.c + src/libtommath/bn_mp_prime_miller_rabin.c + src/libtommath/bn_mp_prime_next_prime.c + src/libtommath/bn_mp_prime_rabin_miller_trials.c + src/libtommath/bn_mp_prime_random_ex.c + src/libtommath/bn_mp_radix_size.c + src/libtommath/bn_mp_radix_smap.c + src/libtommath/bn_mp_rand.c + src/libtommath/bn_mp_read_radix.c + src/libtommath/bn_mp_read_signed_bin.c + src/libtommath/bn_mp_read_unsigned_bin.c + src/libtommath/bn_mp_reduce.c + src/libtommath/bn_mp_reduce_2k.c + src/libtommath/bn_mp_reduce_2k_l.c + src/libtommath/bn_mp_reduce_2k_setup.c + src/libtommath/bn_mp_reduce_2k_setup_l.c + src/libtommath/bn_mp_reduce_is_2k.c + src/libtommath/bn_mp_reduce_is_2k_l.c + src/libtommath/bn_mp_reduce_setup.c + src/libtommath/bn_mp_rshd.c + src/libtommath/bn_mp_set.c + src/libtommath/bn_mp_set_int.c + src/libtommath/bn_mp_shrink.c + src/libtommath/bn_mp_signed_bin_size.c + src/libtommath/bn_mp_sqr.c + src/libtommath/bn_mp_sqrmod.c + src/libtommath/bn_mp_sqrt.c + src/libtommath/bn_mp_sub.c + src/libtommath/bn_mp_submod.c + src/libtommath/bn_mp_sub_d.c + src/libtommath/bn_mp_toom_mul.c + src/libtommath/bn_mp_toom_sqr.c + src/libtommath/bn_mp_toradix.c + src/libtommath/bn_mp_toradix_n.c + src/libtommath/bn_mp_to_signed_bin.c + src/libtommath/bn_mp_to_signed_bin_n.c + src/libtommath/bn_mp_to_unsigned_bin.c + src/libtommath/bn_mp_to_unsigned_bin_n.c + src/libtommath/bn_mp_unsigned_bin_size.c + src/libtommath/bn_mp_xor.c + src/libtommath/bn_mp_zero.c + src/libtommath/bn_prime_tab.c + src/libtommath/bn_reverse.c + src/libtommath/bn_s_mp_add.c + src/libtommath/bn_s_mp_exptmod.c + src/libtommath/bn_s_mp_mul_digs.c + src/libtommath/bn_s_mp_mul_high_digs.c + src/libtommath/bn_s_mp_sqr.c + src/libtommath/bn_s_mp_sub.c +) + +find_package(ZLIB REQUIRED) +find_package(BZip2 REQUIRED) + +if(WIN32) + set(LINK_LIBS wininet) +endif() + +list(APPEND LINK_LIBS ZLIB::ZLIB BZip2::BZip2) + +if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") + message(STATUS "Using FreeBSD port") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DO_LARGEFILE=0 -Dstat64=stat -Dlstat64=lstat -Dlseek64=lseek -Doff64_t=off_t -Dfstat64=fstat -Dftruncate64=ftruncate") +endif() + +add_library(stormlib ${LIB_TYPE} ${SRC_FILES} ${TOMCRYPT_FILES} ${TOMMATH_FILES} ${STORM_DEF_FILES}) +add_definitions(-D__SYS_ZLIB -D__SYS_BZLIB) + +target_link_libraries(stormlib PRIVATE ${LINK_LIBS}) + +target_compile_definitions(stormlib PRIVATE _7ZIP_ST BZ_STRICT_ANSI) + +if(WIN32) + target_compile_definitions(stormlib PRIVATE UNICODE _UNICODE) +endif() + +set_target_properties(stormlib PROPERTIES PUBLIC_HEADER "src/StormLib.h;src/StormPort.h") + +install(TARGETS stormlib EXPORT stormlibConfig + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib +) + +install(EXPORT stormlibConfig NAMESPACE stormlib:: DESTINATION share/stormlib) \ No newline at end of file diff --git a/ports/stormlib/CONTROL b/ports/stormlib/CONTROL index 348e096167e..beb6fd3c12f 100644 --- a/ports/stormlib/CONTROL +++ b/ports/stormlib/CONTROL @@ -1,4 +1,4 @@ Source: stormlib -Version: 9.22 +Version: 2019-05-10 Build-Depends: zlib, bzip2 Description: StormLib is a library for opening and manipulating Blizzard MPQ files diff --git a/ports/stormlib/disable-building-tests.patch b/ports/stormlib/disable-building-tests.patch deleted file mode 100644 index fe0d7f70c6a..00000000000 --- a/ports/stormlib/disable-building-tests.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index f5211b1..4025ea1 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -358,10 +358,4 @@ install(TARGETS ${LIBRARY_NAME} - - INCLUDE(CPack) - --if(STORM_BUILD_TESTS) -- target_link_libraries(storm_test ${LIBRARY_NAME}) -- install(TARGETS storm_test DESTINATION bin) --endif() - --add_executable(storm_test ${SRC_FILES} ${TOMCRYPT_FILES} ${TOMMATH_FILES} ${ZLIB_BZIP2_FILES} ${TEST_SRC_FILES}) --install(TARGETS storm_test RUNTIME DESTINATION bin) diff --git a/ports/stormlib/portfile.cmake b/ports/stormlib/portfile.cmake index 82e0aedf9f8..d0e9e36a491 100644 --- a/ports/stormlib/portfile.cmake +++ b/ports/stormlib/portfile.cmake @@ -3,15 +3,14 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ladislav-zezula/StormLib - REF v9.22 - SHA512 e08571fca21be2e853d390b8feda32001df810b8f4b60d36822a9de2a877f2be9d3dadacfeec181a2eb80e00b8fed66d0dc9a0d8d9e043e2959478a41ed4d13a + REF 2f0e0e69e6b3739d7c450ac3d38816aee45ac3c2 + SHA512 54cbe4270963944edf3d75b845047add2b004e0d95b20b75a4c4790c2a12a41bf19cc4f55aaeaec697a0a913827e11cfabde2123b2b13730556310dd89eef1e9 HEAD_REF master ) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/disable-building-tests.patch +file(COPY + ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt + DESTINATION ${SOURCE_PATH} ) vcpkg_configure_cmake( @@ -20,5 +19,7 @@ vcpkg_configure_cmake( ) vcpkg_install_cmake() + file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/stormlib RENAME copyright) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +vcpkg_fixup_cmake_targets() \ No newline at end of file diff --git a/ports/string-theory/CONTROL b/ports/string-theory/CONTROL index 538b4a9895b..ec053695c5b 100644 --- a/ports/string-theory/CONTROL +++ b/ports/string-theory/CONTROL @@ -1,4 +1,4 @@ Source: string-theory -Version: 2.1-1 +Version: 2.2 Homepage: https://github.com/zrax/string_theory Description: Flexible C++11 string library with type-safe formatting. diff --git a/ports/string-theory/portfile.cmake b/ports/string-theory/portfile.cmake index 002eae1b1ec..f8f9b216ff8 100644 --- a/ports/string-theory/portfile.cmake +++ b/ports/string-theory/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zrax/string_theory - REF 2.1 - SHA512 c20f481ba1bd3f1add2d7ee085db7dfa387e3675df5551e64bf294a96f4902551635e83faf2580fb0d6a55fd5ed1c906510d6cb39580a07234e5638e6c747fe0 + REF 2.2 + SHA512 84b0eb645fdb302f233c162afbcea1b1b201546a60d81448a86437fe599c4184d7abe3d6ea8bd1743bdffab75bcd4e4ab296ce1fffb7da8ae6aab880d0bbda2d HEAD_REF master ) diff --git a/ports/stxxl/0001-fix-visual-studio.patch b/ports/stxxl/0001-fix-visual-studio.patch new file mode 100644 index 00000000000..3506c51abfd --- /dev/null +++ b/ports/stxxl/0001-fix-visual-studio.patch @@ -0,0 +1,272 @@ +diff --git a/include/stxxl/bits/algo/ksort.h b/include/stxxl/bits/algo/ksort.h +index 33ec8cf..4079a57 100644 +--- a/include/stxxl/bits/algo/ksort.h ++++ b/include/stxxl/bits/algo/ksort.h +@@ -299,11 +299,7 @@ create_runs( + template +-struct run_cursor2_cmp : public std::binary_function< +- run_cursor2, +- run_cursor2, +- bool +- > ++struct run_cursor2_cmp + { + typedef run_cursor2 cursor_type; + KeyExtractor keyobj; +@@ -327,7 +323,7 @@ private: + }; + + template +-class key_comparison : public std::binary_function ++class key_comparison + { + KeyExtractor ke; + +diff --git a/include/stxxl/bits/algo/sort_helper.h b/include/stxxl/bits/algo/sort_helper.h +index 524e40d..69234c4 100644 +--- a/include/stxxl/bits/algo/sort_helper.h ++++ b/include/stxxl/bits/algo/sort_helper.h +@@ -51,7 +51,6 @@ struct trigger_entry + + template + struct trigger_entry_cmp +- : public std::binary_function + { + typedef TriggerEntryType trigger_entry_type; + ValueCmp cmp; +@@ -67,11 +66,6 @@ template + struct run_cursor2_cmp +- : public std::binary_function< +- run_cursor2, +- run_cursor2, +- bool +- > + { + typedef BlockType block_type; + typedef PrefetcherType prefetcher_type; +diff --git a/include/stxxl/bits/compat/unique_ptr.h b/include/stxxl/bits/compat/unique_ptr.h +index 9df12ff..7110246 100644 +--- a/include/stxxl/bits/compat/unique_ptr.h ++++ b/include/stxxl/bits/compat/unique_ptr.h +@@ -22,12 +22,7 @@ STXXL_BEGIN_NAMESPACE + + template + struct compat_unique_ptr { +-#if __cplusplus >= 201103L && ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100) >= 40400) + typedef std::unique_ptr result; +-#else +- // auto_ptr is inherently broken and is deprecated by unique_ptr in c++0x +- typedef std::auto_ptr result; +-#endif + }; + + STXXL_END_NAMESPACE +diff --git a/include/stxxl/bits/containers/btree/leaf.h b/include/stxxl/bits/containers/btree/leaf.h +index d7c619f..c6b2fcc 100644 +--- a/include/stxxl/bits/containers/btree/leaf.h ++++ b/include/stxxl/bits/containers/btree/leaf.h +@@ -66,7 +66,7 @@ public: + typedef node_cache leaf_cache_type; + + public: +- struct value_compare : public std::binary_function ++ struct value_compare + { + key_compare comp; + +diff --git a/include/stxxl/bits/containers/btree/node.h b/include/stxxl/bits/containers/btree/node.h +index 13dec7b..a4c47d8 100644 +--- a/include/stxxl/bits/containers/btree/node.h ++++ b/include/stxxl/bits/containers/btree/node.h +@@ -71,7 +71,7 @@ public: + typedef node_cache node_cache_type; + + private: +- struct value_compare : public std::binary_function ++ struct value_compare + { + key_compare comp; + +diff --git a/include/stxxl/bits/containers/hash_map/hash_map.h b/include/stxxl/bits/containers/hash_map/hash_map.h +index 0759bd2..ecf19cd 100644 +--- a/include/stxxl/bits/containers/hash_map/hash_map.h ++++ b/include/stxxl/bits/containers/hash_map/hash_map.h +@@ -1258,10 +1258,7 @@ protected: + * lexicographically by Note: the hash-value has already + * been computed. + */ +- struct Cmp : public std::binary_function< +- std::pair, +- std::pair, bool +- > ++ struct Cmp + { + self_type& map_; + Cmp(self_type& map) : map_(map) { } +@@ -1520,7 +1517,7 @@ protected: + + public: + //! Construct an equality predicate from the comparison operator +- struct equal_to : public std::binary_function ++ struct equal_to + { + //! reference to hash_map + const self_type& m_map; +diff --git a/include/stxxl/bits/io/wbtl_file.h b/include/stxxl/bits/io/wbtl_file.h +index 933a216..30828a0 100644 +--- a/include/stxxl/bits/io/wbtl_file.h ++++ b/include/stxxl/bits/io/wbtl_file.h +@@ -65,7 +65,7 @@ class wbtl_file : public disk_queued_file + size_type curpos; + request_ptr backend_request; + +- struct FirstFit : public std::binary_function ++ struct FirstFit + { + bool operator () ( + const place& entry, +diff --git a/include/stxxl/bits/mng/block_alloc.h b/include/stxxl/bits/mng/block_alloc.h +index 19ade8b..887f0e6 100644 +--- a/include/stxxl/bits/mng/block_alloc.h ++++ b/include/stxxl/bits/mng/block_alloc.h +@@ -138,7 +138,7 @@ private: + perm[i] = i; + + stxxl::random_number rnd; +- std::random_shuffle(perm.begin(), perm.end(), rnd _STXXL_FORCE_SEQUENTIAL); ++ std::shuffle(perm.begin(), perm.end(), std::mt19937(std::random_device()())); + } + + public: +diff --git a/include/stxxl/bits/mng/block_alloc_interleaved.h b/include/stxxl/bits/mng/block_alloc_interleaved.h +index a82ee34..5aba23a 100644 +--- a/include/stxxl/bits/mng/block_alloc_interleaved.h ++++ b/include/stxxl/bits/mng/block_alloc_interleaved.h +@@ -93,7 +93,7 @@ struct interleaved_RC : public interleaved_striping + perms[i][j] = j; + + random_number rnd; +- std::random_shuffle(perms[i].begin(), perms[i].end(), rnd _STXXL_FORCE_SEQUENTIAL); ++ std::shuffle(perms[i].begin(), perms[i].end(), std::mt19937(std::random_device()())); + } + } + +diff --git a/include/stxxl/bits/mng/disk_allocator.h b/include/stxxl/bits/mng/disk_allocator.h +index 59ad085..c1e0f83 100644 +--- a/include/stxxl/bits/mng/disk_allocator.h ++++ b/include/stxxl/bits/mng/disk_allocator.h +@@ -44,7 +44,7 @@ class disk_allocator : private noncopyable + { + typedef std::pair place; + +- struct first_fit : public std::binary_function ++ struct first_fit + { + bool operator () ( + const place& entry, +@@ -189,7 +189,7 @@ void disk_allocator::new_blocks(BID* begin, BID* end) + + sortseq::iterator space; + space = std::find_if(free_space.begin(), free_space.end(), +- bind2nd(first_fit(), requested_size) _STXXL_FORCE_SEQUENTIAL); ++ std::bind(first_fit(), std::placeholders::_1, requested_size) _STXXL_FORCE_SEQUENTIAL); + + if (space == free_space.end() && requested_size == BlockSize) + { +@@ -207,7 +207,7 @@ void disk_allocator::new_blocks(BID* begin, BID* end) + grow_file(BlockSize); + + space = std::find_if(free_space.begin(), free_space.end(), +- bind2nd(first_fit(), requested_size) _STXXL_FORCE_SEQUENTIAL); ++ std::bind(first_fit(), std::placeholders::_1, requested_size) _STXXL_FORCE_SEQUENTIAL); + } + + if (space != free_space.end()) +diff --git a/include/stxxl/bits/parallel.h b/include/stxxl/bits/parallel.h +index d973861..c858d87 100644 +--- a/include/stxxl/bits/parallel.h ++++ b/include/stxxl/bits/parallel.h +@@ -121,7 +121,6 @@ using __gnu_parallel::random_shuffle; + #elif STXXL_PARALLEL + + using std::sort; +-using std::random_shuffle; + + #else + +diff --git a/include/stxxl/bits/parallel/base.h b/include/stxxl/bits/parallel/base.h +index 141d515..7dae74f 100644 +--- a/include/stxxl/bits/parallel/base.h ++++ b/include/stxxl/bits/parallel/base.h +@@ -33,7 +33,6 @@ namespace parallel { + */ + template + class binary_negate +- : public std::binary_function + { + protected: + Predicate pred; +@@ -80,7 +79,7 @@ static inline void decode2(lcas_t x, int& a, int& b) + * Constructs predicate for equality from strict weak ordering predicate + */ + template +-class equal_from_less : public std::binary_function ++class equal_from_less + { + private: + Comparator& comp; +@@ -126,7 +125,7 @@ median_of_three_iterators(RandomAccessIterator a, RandomAccessIterator b, + + /** Similar to std::equal_to, but allows two different types. */ + template +-struct equal_to : std::binary_function ++struct equal_to + { + bool operator () (const T1& t1, const T2& t2) const + { +@@ -136,7 +135,7 @@ struct equal_to : std::binary_function + + /** Similar to std::less, but allows two different types. */ + template +-struct less : std::binary_function ++struct less + { + bool operator () (const T1& t1, const T2& t2) const + { +diff --git a/include/stxxl/bits/parallel/multiseq_selection.h b/include/stxxl/bits/parallel/multiseq_selection.h +index 57e7599..f41d9aa 100644 +--- a/include/stxxl/bits/parallel/multiseq_selection.h ++++ b/include/stxxl/bits/parallel/multiseq_selection.h +@@ -35,7 +35,6 @@ namespace parallel { + //! Compare a pair of types lexcigraphically, ascending. + template + class lexicographic +- : public std::binary_function, std::pair, bool> + { + protected: + Comparator& m_comp; +@@ -60,7 +59,6 @@ public: + //! Compare a pair of types lexcigraphically, descending. + template + class lexicographic_rev +- : public std::binary_function, std::pair, bool> + { + protected: + Comparator& m_comp; +diff --git a/lib/io/wbtl_file.cpp b/lib/io/wbtl_file.cpp +index 310d76a..6d52e2e 100644 +--- a/lib/io/wbtl_file.cpp ++++ b/lib/io/wbtl_file.cpp +@@ -304,7 +304,7 @@ wbtl_file::offset_type wbtl_file::get_next_write_block() + // mapping_lock has to be aquired by caller + sortseq::iterator space = + std::find_if(free_space.begin(), free_space.end(), +- bind2nd(FirstFit(), write_block_size) _STXXL_FORCE_SEQUENTIAL); ++ std::bind(FirstFit(), std::placeholders::_1, write_block_size) _STXXL_FORCE_SEQUENTIAL); + + if (space != free_space.end()) + { diff --git a/ports/stxxl/CONTROL b/ports/stxxl/CONTROL index 847a310670c..42609d34f35 100644 --- a/ports/stxxl/CONTROL +++ b/ports/stxxl/CONTROL @@ -1,3 +1,3 @@ Source: stxxl -Version: 2018-11-15-1 +Version: 2018-11-15-2 Description: Standard Template Library for Extra Large Data Sets diff --git a/ports/stxxl/portfile.cmake b/ports/stxxl/portfile.cmake index 41665c4cd07..01d072d0929 100644 --- a/ports/stxxl/portfile.cmake +++ b/ports/stxxl/portfile.cmake @@ -11,10 +11,12 @@ vcpkg_from_github( PATCHES # This patch can be removed when stxxl/stxxl/#95 is accepted fix-include-dir.patch + 0001-fix-visual-studio.patch ) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DBUILD_STATIC_LIBS=ON -DBUILD_EXAMPLES=OFF @@ -31,7 +33,7 @@ vcpkg_configure_cmake( OPTIONS_DEBUG -DSTXXL_DEBUG_ASSERTIONS=ON OPTIONS_RELEASE - -DSTXXL_DEBUG_ASSERTIONS=OFF + -DSTXXL_DEBUG_ASSERTIONS=OFF ) vcpkg_install_cmake() diff --git a/ports/sundials/CONTROL b/ports/sundials/CONTROL index dc6955d40df..101325d3790 100644 --- a/ports/sundials/CONTROL +++ b/ports/sundials/CONTROL @@ -1,4 +1,4 @@ Source: sundials -Version: 3.1.1 +Version: 3.1.1-1 Homepage: https://computation.llnl.gov/projects/sundials Description: SUNDIALS (SUite of Nonlinear and DIfferential/ALgebraic equation Solvers) diff --git a/ports/sundials/portfile.cmake b/ports/sundials/portfile.cmake index 6798f027274..da4d9c4a25c 100644 --- a/ports/sundials/portfile.cmake +++ b/ports/sundials/portfile.cmake @@ -18,6 +18,7 @@ vcpkg_apply_patches( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DEXAMPLES_ENABLE=OFF ) diff --git a/ports/szip/CONTROL b/ports/szip/CONTROL index ac60f1a9d00..8f1fedbc647 100644 --- a/ports/szip/CONTROL +++ b/ports/szip/CONTROL @@ -1,4 +1,4 @@ Source: szip -Version: 2.1.1-4 +Version: 2.1.1-5 Homepage: https://support.hdfgroup.org/ftp/lib-external/szip Description: Szip compression software, providing lossless compression of scientific data diff --git a/ports/szip/portfile.cmake b/ports/szip/portfile.cmake index 047abf39247..cffb1693c63 100644 --- a/ports/szip/portfile.cmake +++ b/ports/szip/portfile.cmake @@ -17,6 +17,7 @@ vcpkg_extract_source_archive_ex( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DSZIP_INSTALL_DATA_DIR=share/szip/data -DSZIP_INSTALL_CMAKE_DIR=share/szip diff --git a/ports/thrift/CONTROL b/ports/thrift/CONTROL index 2ee3ef03e70..cfff0ac7e90 100644 --- a/ports/thrift/CONTROL +++ b/ports/thrift/CONTROL @@ -1,5 +1,5 @@ Source: thrift -Version: 2019-05-07-2 +Version: 2019-05-07-3 Build-Depends: zlib, libevent, openssl, boost-range, boost-smart-ptr, boost-date-time, boost-locale, boost-scope-exit Homepage: https://github.com/apache/thrift Description: Apache Thrift is a software project spanning a variety of programming languages and use cases. Our goal is to make reliable, performant communication and data serialization across languages as efficient and seamless as possible. diff --git a/ports/thrift/portfile.cmake b/ports/thrift/portfile.cmake index c7fd84003a2..5c5a76e9f20 100644 --- a/ports/thrift/portfile.cmake +++ b/ports/thrift/portfile.cmake @@ -1,5 +1,10 @@ include(vcpkg_common_functions) +# We currently insist on static only because: +# - Thrift doesn't yet support building as a DLL on Windows, +# - x64-linux only builds static anyway. +# From https://github.com/apache/thrift/blob/master/CHANGES.md +# it looks like it will be supported in v0.13. vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_find_acquire_program(FLEX) @@ -13,11 +18,15 @@ vcpkg_from_github( HEAD_REF master ) +# note we specify values for WITH_STATIC_LIB and WITH_SHARED_LIB because even though +# they're marked as deprecated, Thrift incorrectly hard-codes a value for BUILD_SHARED_LIBS. vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA NO_CHARSET_FLAG OPTIONS + -DWITH_SHARED_LIB=off + -DWITH_STATIC_LIB=on -DWITH_STDTHREADS=ON -DBUILD_TESTING=off -DBUILD_JAVA=off @@ -38,14 +47,23 @@ file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/th # Move CMake config files to the right place vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/thrift) -file(GLOB COMPILER "${CURRENT_PACKAGES_DIR}/bin/thrift*") +file(GLOB COMPILER "${CURRENT_PACKAGES_DIR}/bin/thrift" "${CURRENT_PACKAGES_DIR}/bin/thrift.exe") if(COMPILER) file(COPY ${COMPILER} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/thrift) file(REMOVE ${COMPILER}) vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/thrift) endif() +file(GLOB COMPILERD "${CURRENT_PACKAGES_DIR}/debug/bin/thrift" "${CURRENT_PACKAGES_DIR}/debug/bin/thrift.exe") +if(COMPILERD) + file(REMOVE ${COMPILERD}) +endif() + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) + +if ("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) +endif() + vcpkg_copy_pdbs() diff --git a/ports/tinycthread/CONTROL b/ports/tinycthread/CONTROL new file mode 100644 index 00000000000..da87db1411c --- /dev/null +++ b/ports/tinycthread/CONTROL @@ -0,0 +1,4 @@ +Source: tinycthread +Version: 2019-08-06 +Description: Small, portable implementation of the C11 threads API +Homepage: https://tinycthread.github.io/ diff --git a/ports/tinycthread/portfile.cmake b/ports/tinycthread/portfile.cmake new file mode 100644 index 00000000000..e521ffb004e --- /dev/null +++ b/ports/tinycthread/portfile.cmake @@ -0,0 +1,29 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO tinycthread/tinycthread + REF 6957fc8383d6c7db25b60b8c849b29caab1caaee + SHA512 d8b1ad73676f90b236bef06464cfd34996e7b6676ef28cf011cfff86d63e9d6322f7b00ca15290b3f87ed40e704d5325f676440d0223a7f8716d3392a5d1345d + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DTINYCTHREAD_DISABLE_TESTS=OFF + -DTINYCTHREAD_INSTALL=ON +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +file(STRINGS ${SOURCE_PATH}/README.txt SOURCE_LINES) +list(SUBLIST SOURCE_LINES 70 120 SOURCE_LINES) +list(JOIN SOURCE_LINES "\n" _contents) +file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright "${_contents}") diff --git a/ports/tinyexif/CONTROL b/ports/tinyexif/CONTROL index 24350d8be91..7d2da6da045 100644 --- a/ports/tinyexif/CONTROL +++ b/ports/tinyexif/CONTROL @@ -1,5 +1,5 @@ Source: tinyexif -Version: 1.0.2-5 +Version: 1.0.2-6 Build-Depends: tinyxml2 Homepage: https://github.com/cdcseacave/TinyEXIF Description: tiny ISO-compliant C++ EXIF and XMP parsing library for JPEG images diff --git a/ports/tinyexif/portfile.cmake b/ports/tinyexif/portfile.cmake index b6e48938440..b1940ad9446 100644 --- a/ports/tinyexif/portfile.cmake +++ b/ports/tinyexif/portfile.cmake @@ -20,7 +20,7 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/tinyexif) +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/TinyEXIF) vcpkg_copy_pdbs() diff --git a/ports/tinynpy/CONTROL b/ports/tinynpy/CONTROL new file mode 100644 index 00000000000..ccef53ad8e7 --- /dev/null +++ b/ports/tinynpy/CONTROL @@ -0,0 +1,4 @@ +Source: tinynpy +Version: 1.0.0-2 +Build-Depends: zlib +Description: tiny C++ loader/exporter of python numpy array NPY/NPZ files diff --git a/ports/tinynpy/portfile.cmake b/ports/tinynpy/portfile.cmake new file mode 100644 index 00000000000..7daf6f7a3e1 --- /dev/null +++ b/ports/tinynpy/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO cdcseacave/TinyNPY + REF 721a498ebff5ba537a136c9df330158f5c85c00c + SHA512 c22382306ed7c33b147a93093cfb1217504e6dee8172b1684c0519e3b95bb3ac7ed48de7c6b6759db5187ce85301880702e28e08f149f369dbc630e5b646a06a + HEAD_REF master +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} + -DBUILD_DEMO=OFF +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/TinyNPY") + +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/tinynpy RENAME copyright) diff --git a/ports/tinyxml2/CONTROL b/ports/tinyxml2/CONTROL index 5a33ae078a7..c0016a412f0 100644 --- a/ports/tinyxml2/CONTROL +++ b/ports/tinyxml2/CONTROL @@ -1,5 +1,5 @@ Source: tinyxml2 -Version: 7.0.1-1 +Version: 7.0.1-2 Homepage: https://github.com/leethomason/tinyxml2 Description: A simple, small, efficient, C++ XML parser diff --git a/ports/tinyxml2/portfile.cmake b/ports/tinyxml2/portfile.cmake index 7d4ceaff1ed..b98e45a5a45 100644 --- a/ports/tinyxml2/portfile.cmake +++ b/ports/tinyxml2/portfile.cmake @@ -10,6 +10,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/tsl-hopscotch-map/CONTROL b/ports/tsl-hopscotch-map/CONTROL index 5fe5d726aea..0f2b82e3601 100644 --- a/ports/tsl-hopscotch-map/CONTROL +++ b/ports/tsl-hopscotch-map/CONTROL @@ -1,3 +1,3 @@ Source: tsl-hopscotch-map -Version: 2.2.1 +Version: 2.2.1-1 Description: C++ implementation of a fast hash map and hash set using hopscotch hashing diff --git a/ports/tsl-hopscotch-map/portfile.cmake b/ports/tsl-hopscotch-map/portfile.cmake index c96df35c6d7..00998338a07 100644 --- a/ports/tsl-hopscotch-map/portfile.cmake +++ b/ports/tsl-hopscotch-map/portfile.cmake @@ -9,6 +9,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/tsl-ordered-map/CONTROL b/ports/tsl-ordered-map/CONTROL index bb2b75a9d94..2170432d227 100644 --- a/ports/tsl-ordered-map/CONTROL +++ b/ports/tsl-ordered-map/CONTROL @@ -1,3 +1,3 @@ Source: tsl-ordered-map -Version: 0.8.1 +Version: 0.8.1-1 Description: C++ hash map and hash set which preserve the order of insertion diff --git a/ports/tsl-ordered-map/portfile.cmake b/ports/tsl-ordered-map/portfile.cmake index 19940d2707b..9f4fe996b12 100644 --- a/ports/tsl-ordered-map/portfile.cmake +++ b/ports/tsl-ordered-map/portfile.cmake @@ -9,6 +9,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/tsl-sparse-map/CONTROL b/ports/tsl-sparse-map/CONTROL index 627d5bea1ca..5563868572d 100644 --- a/ports/tsl-sparse-map/CONTROL +++ b/ports/tsl-sparse-map/CONTROL @@ -1,3 +1,3 @@ Source: tsl-sparse-map -Version: 0.6.1 +Version: 0.6.1-1 Description: C++ implementation of a memory efficient hash map and hash set diff --git a/ports/tsl-sparse-map/portfile.cmake b/ports/tsl-sparse-map/portfile.cmake index 07d1f30488b..44a366d878a 100644 --- a/ports/tsl-sparse-map/portfile.cmake +++ b/ports/tsl-sparse-map/portfile.cmake @@ -9,6 +9,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/usd/CONTROL b/ports/usd/CONTROL index e04784de4d9..d14831d543b 100644 --- a/ports/usd/CONTROL +++ b/ports/usd/CONTROL @@ -1,4 +1,4 @@ Source: usd -Version: 0.8.4-1 +Version: 0.8.4-2 Build-Depends: boost-assign, boost-crc, boost-date-time, boost-filesystem, boost-format, boost-multi-index, boost-program-options, boost-regex, boost-system, boost-vmd, tbb, zlib Description: Universal Scene Description (USD) is an efficient, scalable system for authoring, reading, and streaming time-sampled scene description for interchange between graphics applications. diff --git a/ports/usd/portfile.cmake b/ports/usd/portfile.cmake index cada7b4e1f7..76b1473be7a 100644 --- a/ports/usd/portfile.cmake +++ b/ports/usd/portfile.cmake @@ -17,6 +17,7 @@ vcpkg_add_to_path("${PYTHON2_DIR}") vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DPXR_BUILD_ALEMBIC_PLUGIN:BOOL=OFF -DPXR_BUILD_EMBREE_PLUGIN:BOOL=OFF diff --git a/ports/vtk/CONTROL b/ports/vtk/CONTROL index 7b07132d25f..c44c7788064 100644 --- a/ports/vtk/CONTROL +++ b/ports/vtk/CONTROL @@ -1,5 +1,5 @@ Source: vtk -Version: 8.2.0-4 +Version: 8.2.0-5 Description: Software system for 3D computer graphics, image processing, and visualization Homepage: https://github.com/Kitware/VTK Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5, libjpeg-turbo, proj4, lz4, libtheora, atlmfc (windows), eigen3, double-conversion, pugixml, libharu, sqlite3, netcdf-c @@ -14,7 +14,7 @@ Build-Depends: qt5 Feature: mpi Description: MPI functionality for VTK -Build-Depends: msmpi, hdf5[parallel] +Build-Depends: mpi, hdf5[parallel] Feature: python Description: Python functionality for VTK diff --git a/ports/xalan-c/0001-ALLOW_RTCc_IN_STL.patch b/ports/xalan-c/0001-ALLOW_RTCc_IN_STL.patch deleted file mode 100644 index a01096b0da8..00000000000 --- a/ports/xalan-c/0001-ALLOW_RTCc_IN_STL.patch +++ /dev/null @@ -1,65 +0,0 @@ -diff --git a/c/Projects/Win32/VC10/AllInOne/AllInOne.vcxproj b/c/Projects/Win32/VC10/AllInOne/AllInOne.vcxproj -index 5a9d6a0..a0d12e8 100644 ---- a/c/Projects/Win32/VC10/AllInOne/AllInOne.vcxproj -+++ b/c/Projects/Win32/VC10/AllInOne/AllInOne.vcxproj -@@ -159,7 +159,7 @@ - - Disabled - $(XERCESCROOT)\include;$(XERCESCROOT)\src;..\..\..\..\src\;$(OutDir)Nls\Include;%(AdditionalIncludeDirectories) -- XALAN_BUILD_DLL;XALAN_INMEM_MSG_LOADER;%(PreprocessorDefinitions) -+ _ALLOW_RTCc_IN_STL;XALAN_BUILD_DLL;XALAN_INMEM_MSG_LOADER;%(PreprocessorDefinitions) - true - true - EnableFastChecks -@@ -197,7 +197,7 @@ - - Disabled - $(XERCESCROOT)\include;$(XERCESCROOT)\src;..\..\..\..\src\;$(OutDir)Nls\Include;%(AdditionalIncludeDirectories) -- XALAN_BUILD_DLL;XALAN_INMEM_MSG_LOADER;%(PreprocessorDefinitions) -+ _ALLOW_RTCc_IN_STL;XALAN_BUILD_DLL;XALAN_INMEM_MSG_LOADER;%(PreprocessorDefinitions) - true - true - EnableFastChecks -diff --git a/c/Projects/Win32/VC10/Utils/MsgCreator/MsgCreator.vcxproj b/c/Projects/Win32/VC10/Utils/MsgCreator/MsgCreator.vcxproj -index 27958b5..9f7767b 100644 ---- a/c/Projects/Win32/VC10/Utils/MsgCreator/MsgCreator.vcxproj -+++ b/c/Projects/Win32/VC10/Utils/MsgCreator/MsgCreator.vcxproj -@@ -159,6 +159,7 @@ - - Disabled - $(XERCESCROOT)\include;$(XERCESCROOT)\src;..\..\..\..\..\src;%(AdditionalIncludeDirectories) -+ _ALLOW_RTCc_IN_STL;%(PreprocessorDefinitions) - true - true - EnableFastChecks -@@ -191,7 +192,7 @@ - - Disabled - $(XERCESCROOT)\include;$(XERCESCROOT)\src;..\..\..\..\..\src;%(AdditionalIncludeDirectories) -- %(PreprocessorDefinitions) -+ _ALLOW_RTCc_IN_STL;%(PreprocessorDefinitions) - true - true - EnableFastChecks -diff --git a/c/Projects/Win32/VC10/Utils/XalanMsgLib/XalanMsgLib.vcxproj b/c/Projects/Win32/VC10/Utils/XalanMsgLib/XalanMsgLib.vcxproj -index facbbc1..53b83a8 100644 ---- a/c/Projects/Win32/VC10/Utils/XalanMsgLib/XalanMsgLib.vcxproj -+++ b/c/Projects/Win32/VC10/Utils/XalanMsgLib/XalanMsgLib.vcxproj -@@ -144,7 +144,7 @@ - Disabled - false - $(XERCESCROOT)\include;$(XERCESCROOT)\src;..\..\..\..\..\src;$(OutDir)Nls\Include;%(AdditionalIncludeDirectories) -- XALAN_XALANMSGLIB_BUILD_DLL;%(PreprocessorDefinitions) -+ _ALLOW_RTCc_IN_STL;XALAN_XALANMSGLIB_BUILD_DLL;%(PreprocessorDefinitions) - true - EnableFastChecks - true -@@ -170,7 +170,7 @@ - Disabled - false - $(XERCESCROOT)\include;$(XERCESCROOT)\src;..\..\..\..\..\src;$(OutDir)Nls\Include;%(AdditionalIncludeDirectories) -- XALAN_XALANMSGLIB_BUILD_DLL;%(PreprocessorDefinitions) -+ _ALLOW_RTCc_IN_STL;XALAN_XALANMSGLIB_BUILD_DLL;%(PreprocessorDefinitions) - true - EnableFastChecks - true diff --git a/ports/xalan-c/0002-no-mfc.patch b/ports/xalan-c/0002-no-mfc.patch deleted file mode 100644 index 3935251f59c..00000000000 --- a/ports/xalan-c/0002-no-mfc.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -urN a/c/Projects/Win32/Res/AllInOne/AllInOne.rc b/c/Projects/Win32/Res/AllInOne/AllInOne.rc ---- a/c/Projects/Win32/Res/AllInOne/AllInOne.rc 2012-03-19 16:18:11.000000000 +0000 -+++ b/c/Projects/Win32/Res/AllInOne/AllInOne.rc 2018-09-07 16:08:59.871434376 +0100 -@@ -7,7 +7,7 @@ - // - // Generated from the TEXTINCLUDE 2 resource. - // --#include "afxres.h" -+#include "windows.h" - - - ///////////////////////////////////////////////////////////////////////////// -@@ -75,7 +75,7 @@ - - 2 TEXTINCLUDE - BEGIN -- "#include ""afxres.h""\r\n" -+ "#include ""windows.h""\r\n" - "\r\n" - "\0" - END diff --git a/ports/xalan-c/0003-char16_t.patch b/ports/xalan-c/0003-char16_t.patch deleted file mode 100644 index e8ed83bb0f6..00000000000 --- a/ports/xalan-c/0003-char16_t.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff -urN a/c/src/xalanc/PlatformSupport/DirectoryEnumerator.hpp b/c/src/xalanc/PlatformSupport/DirectoryEnumerator.hpp ---- a/c/src/xalanc/PlatformSupport/DirectoryEnumerator.hpp 2012-03-19 16:18:10.000000000 +0000 -+++ b/c/src/xalanc/PlatformSupport/DirectoryEnumerator.hpp 2018-09-07 16:08:39.207316486 +0100 -@@ -84,7 +84,7 @@ - const XalanDOMChar* - getName() const - { -- return name; -+ return const_cast(reinterpret_cast(&name[0])); - } - - /** -@@ -261,7 +261,7 @@ - #pragma warning(disable: 4244) - theHandleType theSearchHandle = - _wfindfirst( -- const_cast(theConversionFunction(theFullSearchSpec)), -+ reinterpret_cast(const_cast(theConversionFunction(theFullSearchSpec))), - &theFindData); - #pragma warning(pop) - -diff -urN a/c/src/xalanc/PlatformSupport/DOMStringHelper.cpp b/c/src/xalanc/PlatformSupport/DOMStringHelper.cpp ---- a/c/src/xalanc/PlatformSupport/DOMStringHelper.cpp 2012-03-19 16:18:10.000000000 +0000 -+++ b/c/src/xalanc/PlatformSupport/DOMStringHelper.cpp 2018-09-07 16:08:39.207316486 +0100 -@@ -868,7 +868,7 @@ - const XalanDOMChar* theRHS) - { - #if defined(XALAN_USE_WINDOWS_COLLATION) -- return _wcscoll_l(theLHS, theRHS, s_locale); -+ return _wcscoll_l(reinterpret_cast(theLHS), reinterpret_cast(theRHS), s_locale); - #else - return doCollationCompare( - theLHS, -diff -urN a/c/src/xalanc/PlatformSupport/XalanFileOutputStream.cpp b/c/src/xalanc/PlatformSupport/XalanFileOutputStream.cpp ---- a/c/src/xalanc/PlatformSupport/XalanFileOutputStream.cpp 2012-03-19 16:18:10.000000000 +0000 -+++ b/c/src/xalanc/PlatformSupport/XalanFileOutputStream.cpp 2018-09-07 16:08:39.207316486 +0100 -@@ -123,7 +123,7 @@ - - #if defined(XALAN_WINDOWS) - HandleType theFileHandle = CreateFileW( -- theFileName.c_str(), -+ reinterpret_cast(theFileName.c_str()), - GENERIC_WRITE, - 0, - 0, diff --git a/ports/xalan-c/0004-macosx-dyld-fallback.patch b/ports/xalan-c/0004-macosx-dyld-fallback.patch deleted file mode 100644 index db087169850..00000000000 --- a/ports/xalan-c/0004-macosx-dyld-fallback.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN a/c/Makefile.incl.in b/c/Makefile.incl.in ---- a/c/Makefile.incl.in 2012-10-14 21:54:01.000000000 +0100 -+++ b/c/Makefile.incl.in 2018-09-07 16:08:15.559182228 +0100 -@@ -598,7 +598,7 @@ - MAKE_SHARED = ${CXX} $(CXXFLAGS) -D${PLATFORM} -dynamiclib -prebind -seg1addr 0x38000000 -compatibility_version 1 -current_version $(LIB_MAJOR_DOT_VER) -install_name ${LINK_NAME} ${LDFLAGS} - LINK = ${CXX} $(CXXFLAGS) ${PLATFORM_COMPILE_OPTIONS} ${LDFLAGS} - -- export DYLD_LIBRARY_PATH := $(XERCESCROOT)/lib:$(ICULIB_LOC):$(DYLD_LIBRARY_PATH) -+ export DYLD_FALLBACK_LIBRARY_PATH := $(XERCESCROOT)/lib:$(ICULIB_LOC):$(DYLD_FALLBACK_LIBRARY_PATH) - LOC_LIB = ${LOC_LIBNAME}.${LIB_MAJOR_VER}.${LIB_MINOR_VER}$(SHLIBSUFFIX) - LOC_SONAME = ${LOC_LIBNAME}.${LIB_MAJOR_VER}${SHLIBSUFFIX} - MAKE_SHARED_LOC= ${CXX} $(CXXFLAGS) -D${PLATFORM} -dynamiclib -prebind -seg1addr 0x40000000 -compatibility_version 1 -current_version $(LIB_MAJOR_DOT_VER) -install_name ${LOC_LIBNAME}${SHLIBSUFFIX} ${LDFLAGS} diff --git a/ports/xalan-c/0005-fix-ftbfs-ld-as-needed.patch b/ports/xalan-c/0005-fix-ftbfs-ld-as-needed.patch deleted file mode 100644 index 43487721406..00000000000 --- a/ports/xalan-c/0005-fix-ftbfs-ld-as-needed.patch +++ /dev/null @@ -1,186 +0,0 @@ -diff -urN a/c/samples/Makefile.in b/c/samples/Makefile.in ---- a/c/samples/Makefile.in 2012-03-19 16:18:12.000000000 +0000 -+++ b/c/samples/Makefile.in 2018-09-07 16:07:59.063089005 +0100 -@@ -88,7 +88,7 @@ - - $(XSL_LIB_DIR)/mod_xslt$(SHLIBSUFFIX) : $(XSL_OBJ_DIR)/mod_xslt.o - $(MAKE_SHARED) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/ApacheModuleXSLT/%.c - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) -I/usr/include/apache/ $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -96,7 +96,7 @@ - - $(XSL_BIN_DIR)/CompileStylesheet: $(XSL_OBJ_DIR)/CompileStylesheet.o - $(LINK) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/CompileStylesheet/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -104,7 +104,7 @@ - - $(XSL_BIN_DIR)/DocumentBuilder: $(XSL_OBJ_DIR)/DocumentBuilder.o - $(LINK) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/DocumentBuilder/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -112,7 +112,7 @@ - - $(XSL_BIN_DIR)/EntityResolver: $(XSL_OBJ_DIR)/EntityResolver.o - $(LINK) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/EntityResolver/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -120,7 +120,7 @@ - - $(XSL_BIN_DIR)/ExternalFunction: $(XSL_OBJ_DIR)/ExternalFunction.o - $(LINK) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/ExternalFunction/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -128,7 +128,7 @@ - - $(XSL_BIN_DIR)/ParsedSourceWrappers: $(XSL_OBJ_DIR)/ParsedSourceWrappers.o - $(LINK) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/ParsedSourceWrappers/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -136,7 +136,7 @@ - - $(XSL_BIN_DIR)/SerializeNodeSet: $(XSL_OBJ_DIR)/SerializeNodeSet.o - $(LINK) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/SerializeNodeSet/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -144,7 +144,7 @@ - - $(XSL_BIN_DIR)/SimpleTransform: $(XSL_OBJ_DIR)/SimpleTransform.o - $(LINK) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/SimpleTransform/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -152,7 +152,7 @@ - - $(XSL_BIN_DIR)/SimpleXPathAPI: $(XSL_OBJ_DIR)/SimpleXPathAPI.o - $(LINK) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/SimpleXPathAPI/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -160,7 +160,7 @@ - - $(XSL_BIN_DIR)/SimpleXPathCAPI: $(XSL_OBJ_DIR)/SimpleXPathCAPI.o - $(LINK) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/SimpleXPathCAPI/%.c - $(CC4) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -168,7 +168,7 @@ - - $(XSL_BIN_DIR)/StreamTransform: $(XSL_OBJ_DIR)/StreamTransform.o - $(LINK) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/StreamTransform/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -176,7 +176,7 @@ - - $(XSL_BIN_DIR)/TraceListen: $(XSL_OBJ_DIR)/TraceListen.o - $(LINK) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/TraceListen/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -184,7 +184,7 @@ - - $(XSL_BIN_DIR)/TransformToXercesDOM: $(XSL_OBJ_DIR)/TransformToXercesDOM.o - $(LINK) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/TransformToXercesDOM/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -192,7 +192,7 @@ - - $(XSL_BIN_DIR)/UseStylesheetParam: $(XSL_OBJ_DIR)/UseStylesheetParam.o - $(LINK) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/UseStylesheetParam/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -200,7 +200,7 @@ - - $(XSL_BIN_DIR)/XalanTransform: $(XSL_OBJ_DIR)/XalanTransform.o - $(LINK) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/XalanTransform/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -208,7 +208,7 @@ - - $(XSL_BIN_DIR)/XalanTransformerCallback: $(XSL_OBJ_DIR)/XalanTransformerCallback.o - $(LINK) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/XalanTransformerCallback/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -216,7 +216,7 @@ - - $(XSL_BIN_DIR)/ThreadSafe: $(XSL_OBJ_DIR)/ThreadSafe.o - $(LINK) $(XSL_BUILD_OPTIONS) $(PLATFORM_LIB_LINK_OPTIONS) \ -- $(EXTRA_LINK_OPTIONS) $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ $(EXTRA_LINK_OPTIONS) $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - $(XSL_OBJ_DIR)/%.o:$(SAMPLES_DIR)/ThreadSafe/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -diff -urN a/c/Tests/Makefile.in b/c/Tests/Makefile.in ---- a/c/Tests/Makefile.in 2012-03-19 16:18:12.000000000 +0000 -+++ b/c/Tests/Makefile.in 2018-09-07 16:07:59.063089005 +0100 -@@ -62,7 +62,7 @@ - - $(XSL_BIN_DIR)/ThreadTest: ${XSL_OBJ_DIR}/ThreadTest.o - ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \ -- ${EXTRA_LINK_OPTIONS} $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ ${EXTRA_LINK_OPTIONS} $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - ${XSL_OBJ_DIR}/%.o:$(TESTS_DIR)/Threads/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -70,7 +70,7 @@ - - $(XSL_BIN_DIR)/Conf: ${XSL_OBJ_DIR}/conf.o - ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \ -- ${EXTRA_LINK_OPTIONS} $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ ${EXTRA_LINK_OPTIONS} $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - ${XSL_OBJ_DIR}/%.o:$(TESTS_DIR)/Conf/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< - -@@ -92,7 +92,7 @@ - - $(XSL_BIN_DIR)/Perf: $(PERF_OBJECTS) - ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \ -- ${EXTRA_LINK_OPTIONS} $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) -+ ${EXTRA_LINK_OPTIONS} $^ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) -o $@ $(OTHER_LINK_PARAMETERS) - - ${XSL_OBJ_DIR}/%.o:$(TESTS_DIR)/Performance/%.cpp - $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< diff --git a/ports/xalan-c/0006-fix-testxslt-segfault.patch b/ports/xalan-c/0006-fix-testxslt-segfault.patch deleted file mode 100644 index b8f9b09aba1..00000000000 --- a/ports/xalan-c/0006-fix-testxslt-segfault.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN a/c/src/xalanc/PlatformSupport/XalanLocator.hpp b/c/src/xalanc/PlatformSupport/XalanLocator.hpp ---- a/c/src/xalanc/PlatformSupport/XalanLocator.hpp 2012-09-27 07:59:33.000000000 +0100 -+++ b/c/src/xalanc/PlatformSupport/XalanLocator.hpp 2018-09-07 16:07:11.070819930 +0100 -@@ -91,7 +91,7 @@ - const XalanDOMChar* theAlternateId = getEmptyPtr()) - { - return theLocator == 0 ? theAlternateId : (theLocator->getSystemId() ? -- theLocator->getPublicId() : theAlternateId); -+ theLocator->getSystemId() : theAlternateId); - } - - /** diff --git a/ports/xalan-c/0007-fix-readme-typos.patch b/ports/xalan-c/0007-fix-readme-typos.patch deleted file mode 100644 index e97d1674975..00000000000 --- a/ports/xalan-c/0007-fix-readme-typos.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -urN a/c/README b/c/README ---- a/c/README 2012-10-13 05:52:45.000000000 +0100 -+++ b/c/README 2018-09-07 16:06:24.602562653 +0100 -@@ -3,7 +3,7 @@ - - Project Description: - The Apache Xalan C/C++ Project provides a library and a -- comand line program to transform XML documents using a -+ command line program to transform XML documents using a - stylesheet that conforms to XSLT 1.0 standards. - - The source package contains all the code to create the library, -@@ -84,7 +84,7 @@ - XalanMessages_1_11.exp - Windows DLL export definitions - XalanMessages_1_11.lib - Windows DLL library definitions - XalanMessages_1_11D.exp - Windows DLL export definitions -- XalanMessages_1_11D.lib - Windows DLL library defnitions -+ XalanMessages_1_11D.lib - Windows DLL library definitions - - SUPPORTED PLATFORMS: - - This is only a partial list diff --git a/ports/xalan-c/CONTROL b/ports/xalan-c/CONTROL index 06ab8967de1..6a6ead6ad63 100644 --- a/ports/xalan-c/CONTROL +++ b/ports/xalan-c/CONTROL @@ -1,5 +1,5 @@ Source: xalan-c -Version: 1.11-5 -Homepage: https://www-us.apache.org/dist/xalan/xalan-c/ +Version: 1.11-7 +Homepage: https://github.com/apache/xalan-c Description: Xalan is an XSLT processor for transforming XML documents into HTML, text, or other XML document types Build-Depends: xerces-c diff --git a/ports/xalan-c/fix-missing-dll-error.patch b/ports/xalan-c/fix-missing-dll-error.patch new file mode 100644 index 00000000000..db49a2be67d --- /dev/null +++ b/ports/xalan-c/fix-missing-dll-error.patch @@ -0,0 +1,48 @@ +diff --git a/src/xalanc/Utils/CMakeLists.txt b/src/xalanc/Utils/CMakeLists.txt +index dc39ad0..2d78685 100644 +--- a/src/xalanc/Utils/CMakeLists.txt ++++ b/src/xalanc/Utils/CMakeLists.txt +@@ -40,6 +40,13 @@ set(SUPPORTMSGINDEX "${GEN_SUPPORTDIR}/LocalMsgIndex.hpp") + add_custom_target(locale ALL) + set_target_properties(locale PROPERTIES FOLDER "Message Library") + ++# workaround for case of missing xerces-c dll ++if(EXISTS ${XercesC_INCLUDE_DIR}/../bin) ++ set(MsgCreator_WD $/../bin) ++else() ++ set(MsgCreator_WD "${XSL_NLS_GEN_DIR}") ++endif() ++ + if(msgloader STREQUAL "inmemory") + add_custom_command( + OUTPUT "${GENMSGINDEX}" +@@ -48,7 +55,8 @@ if(msgloader STREQUAL "inmemory") + "${XLIFF_FILE_NAME}" + -TYPE inmem + -LOCALE ${LOCALE} +- WORKING_DIRECTORY "${XSL_NLS_GEN_DIR}" ++ -OUTDIR "${XSL_NLS_GEN_DIR}" ++ WORKING_DIRECTORY "${MsgCreator_WD}" + COMMENT "Generating inmemory locale message data" + DEPENDS MsgCreator "${XLIFF_FILE_NAME}") + +@@ -92,7 +100,8 @@ if(msgloader STREQUAL "icu") + "${XLIFF_FILE_NAME}" + -TYPE icu + -LOCALE ${LOCALE} +- WORKING_DIRECTORY "${XSL_NLS_GEN_DIR}" ++ -OUTDIR "${XSL_NLS_GEN_DIR}" ++ WORKING_DIRECTORY "${MsgCreator_WD}" + COMMENT "Generating ICU locale message data" + DEPENDS MsgCreator "${XLIFF_FILE_NAME}") + +@@ -141,7 +150,8 @@ if(msgloader STREQUAL "nls") + "${XLIFF_FILE_NAME}" + -TYPE nls + -LOCALE ${LOCALE} +- WORKING_DIRECTORY "${XSL_NLS_GEN_DIR}" ++ -OUTDIR "${XSL_NLS_GEN_DIR}" ++ WORKING_DIRECTORY "${MsgCreator_WD}" + COMMENT "Generating nls locale message data" + DEPENDS MsgCreator "${XLIFF_FILE_NAME}") + diff --git a/ports/xalan-c/fix-win-deprecated-err.patch b/ports/xalan-c/fix-win-deprecated-err.patch new file mode 100644 index 00000000000..1484f4e2764 --- /dev/null +++ b/ports/xalan-c/fix-win-deprecated-err.patch @@ -0,0 +1,15 @@ +diff --git a/src/xalanc/Utils/MsgCreator/CMakeLists.txt b/src/xalanc/Utils/MsgCreator/CMakeLists.txt +index 20215d4..dc74c1b 100644 +--- a/src/xalanc/Utils/MsgCreator/CMakeLists.txt ++++ b/src/xalanc/Utils/MsgCreator/CMakeLists.txt +@@ -37,6 +37,10 @@ set(msgcreator_headers + NLSHandler.hpp + SAX2Handler.hpp) + ++if(MSVC) ++ add_definitions(-D_CRT_SECURE_NO_WARNINGS=1) ++endif() ++ + add_executable(MsgCreator ${msgcreator_sources} ${msgcreator_headers}) + target_include_directories(MsgCreator PUBLIC + $ diff --git a/ports/xalan-c/portfile.cmake b/ports/xalan-c/portfile.cmake index 52e8b34fa77..0460c746430 100644 --- a/ports/xalan-c/portfile.cmake +++ b/ports/xalan-c/portfile.cmake @@ -1,81 +1,42 @@ include(vcpkg_common_functions) -string(LENGTH "${CURRENT_BUILDTREES_DIR}" BUILDTREES_PATH_LENGTH) -if(BUILDTREES_PATH_LENGTH GREATER 37 AND CMAKE_HOST_WIN32) - message(WARNING "${PORT}'s buildsystem uses very long paths and may fail on your system.\n" - "We recommend moving vcpkg to a short path such as 'C:\\src\\vcpkg' or using the subst command." - ) -endif() - -vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY ONLY_DYNAMIC_CRT) - -set(XALANC_VERSION 1.11) - -vcpkg_download_distfile(ARCHIVE - URLS "http://www-us.apache.org/dist/xalan/xalan-c/sources/xalan_c-${XALANC_VERSION}-src.zip" - FILENAME "xalan_c-${XALANC_VERSION}-src.zip" - SHA512 2e79a2c8f755c9660ffc94b26b6bd4b140685e05a88d8e5abb19a2f271383a3f2f398b173ef403f65dc33af75206214bd21ac012c39b4c0051b3a9f61f642fe6 -) - -vcpkg_download_distfile(XALAN_PATCH8 - URLS "https://github.com/rleigh-codelibre/vcpkg-patches/raw/ca09d69280469ce8f787c67b48f86e46a463ef5d/xalan-c/0008-remove-unary-binary-function.patch" - FILENAME "0008-remove-unary-binary-function.patch" - SHA512 059d9a39b29125ae770369e4c44ab7804ae16d4ff5c90e35f25b7990dc987161bf1187ceb2dcbab181ffb72490a9d9f45e30ab5928644734e7627cb74b03e201 -) - -vcpkg_download_distfile(XALAN_PATCH9 - URLS "https://raw.githubusercontent.com/rleigh-codelibre/vcpkg-patches/ca09d69280469ce8f787c67b48f86e46a463ef5d/xalan-c/0009-remove-select-workaround.patch" - FILENAME "0009-remove-select-workaround.patch" - SHA512 73730736cd1f1809ebcc35562017402d606cbfd5a64665d104a21d89d679ab3274f6f5685ab63305c57fffab74e62084c0e18c76d19eb5f9c2e36be6679fd4d3 -) - -vcpkg_extract_source_archive_ex( +vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH - ARCHIVE ${ARCHIVE} - REF ${XALANC_VERSION} + REPO apache/xalan-c + REF 177da75646a80fae2c22a315c0d987a5eadba143 + SHA512 e0f095b7031394c39c8e0fdca1f820c4222466f8c6e9df7bc40a21f9ca0e9291b7b6cdfb0a2d67db275ae97d7a7cdd447637102639e74716f0fb23a946b30ebe PATCHES - 0001-ALLOW_RTCc_IN_STL.patch - 0002-no-mfc.patch - 0003-char16_t.patch - 0004-macosx-dyld-fallback.patch - 0005-fix-ftbfs-ld-as-needed.patch - 0006-fix-testxslt-segfault.patch - 0007-fix-readme-typos.patch - ${XALAN_PATCH8} - ${XALAN_PATCH9} + fix-win-deprecated-err.patch + fix-missing-dll-error.patch ) -if (VCPKG_TARGET_ARCHITECTURE MATCHES "x86") -elseif (VCPKG_TARGET_ARCHITECTURE MATCHES "x64") -else() - message(FATAL_ERROR "Unsupported architecture: ${VCPKG_TARGET_ARCHITECTURE}") -endif() - -set(ENV{CL} "$ENV{CL} \"/I${CURRENT_INSTALLED_DIR}/include\"") -set(ENV{PATH} "$ENV{PATH};${CURRENT_INSTALLED_DIR}/bin;${CURRENT_INSTALLED_DIR}/debug/bin") - -vcpkg_install_msbuild( +vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - PROJECT_SUBPATH c/projects/Win32/VC10/AllInOne/AllInOne.vcxproj - OPTIONS_RELEASE /p:XERCESCROOT=${CURRENT_INSTALLED_DIR} - OPTIONS_DEBUG /p:XERCESCROOT=${CURRENT_INSTALLED_DIR}/debug - LICENSE_SUBPATH c/LICENSE - SKIP_CLEAN + PREFER_NINJA ) -file(COPY ${SOURCE_PATH}/c/src/xalanc DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN *.hpp) +vcpkg_install_cmake() -# LocalMsgIndex.hpp and LocalMsgData.hpp are here -file(GLOB NLS_INCLUDES "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/c/Build/*/VC10/Release/Nls/Include/*.hpp") -if(NOT NLS_INCLUDES) - message(FATAL_ERROR "Could not locate LocalMsgIndex.hpp") +if(EXISTS ${CURRENT_PACKAGES_DIR}/cmake) + vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/xalan-c) +else() + vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/XalanC TARGET_PATH share/xalan-c) endif() -file(COPY ${NLS_INCLUDES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/xalanc/PlatformSupport) -vcpkg_clean_msbuild() +# cleanup +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/debug/include + ${CURRENT_PACKAGES_DIR}/debug/share +) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xalanc/NLS) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xalanc/util/MsgLoaders/ICU/resources) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xalanc/TestXSLT) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xalanc/XalanExe) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xalanc/XPathCAPI) +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) +else() + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/Xalan.exe ${CURRENT_PACKAGES_DIR}/debug/bin/Xalan.exe) +endif() + +# Handle copyright +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/xalan-c) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/xalan-c/LICENSE ${CURRENT_PACKAGES_DIR}/share/xalan-c/copyright) + +vcpkg_copy_pdbs() diff --git a/ports/xerces-c/no-symlinks-in-static-build.patch b/ports/xerces-c/no-symlinks-in-static-build.patch new file mode 100644 index 00000000000..34bd732d3c8 --- /dev/null +++ b/ports/xerces-c/no-symlinks-in-static-build.patch @@ -0,0 +1,31 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index c29aa25..3106d77 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -1285,15 +1285,17 @@ if(MSVC) + set_target_properties(xerces-c PROPERTIES RUNTIME_OUTPUT_NAME "xerces-c_${INTERFACE_VERSION_U}") + set_target_properties(xerces-c PROPERTIES DEBUG_POSTFIX "D") + elseif(UNIX) +- # For strict libtool compatibility on Unix. It's a horrible hack to +- # set the version in the filename, and create the symlink at install +- # time. Note: could be dropped when the SONAME is updated and +- # libtool compatibility is no longer required. +- set_target_properties(xerces-c PROPERTIES OUTPUT_NAME "xerces-c-${INTERFACE_VERSION_D}") +- file(GENERATE +- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/InstallLibrarySymlink.cmake" +- CONTENT "execute_process(COMMAND ln -sf \"$\" \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_LIBDIR}/libxerces-c.so\")") +- install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/InstallLibrarySymlink.cmake") ++ if(BUILD_SHARED_LIBS) ++ # For strict libtool compatibility on Unix. It's a horrible hack to ++ # set the version in the filename, and create the symlink at install ++ # time. Note: could be dropped when the SONAME is updated and ++ # libtool compatibility is no longer required. ++ set_target_properties(xerces-c PROPERTIES OUTPUT_NAME "xerces-c-${INTERFACE_VERSION_D}") ++ file(GENERATE ++ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/InstallLibrarySymlink.cmake" ++ CONTENT "execute_process(COMMAND ln -sf \"$\" \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_LIBDIR}/libxerces-c.so\")") ++ install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/InstallLibrarySymlink.cmake") ++ endif() + else() + # Not used for the common cases, though this would be the default if + # not for libtool compatibility. diff --git a/ports/xerces-c/portfile.cmake b/ports/xerces-c/portfile.cmake index 5f8fa4c11bd..0350d53ed2a 100644 --- a/ports/xerces-c/portfile.cmake +++ b/ports/xerces-c/portfile.cmake @@ -9,6 +9,7 @@ vcpkg_from_github( PATCHES disable-tests.patch remove-dll-export-macro.patch + no-symlinks-in-static-build.patch ) set(DISABLE_ICU ON) diff --git a/ports/xlnt/CONTROL b/ports/xlnt/CONTROL index 6433b748e7b..b3fbc842252 100644 --- a/ports/xlnt/CONTROL +++ b/ports/xlnt/CONTROL @@ -1,4 +1,4 @@ Source: xlnt -Version: 1.3.0-1 +Version: 1.3.0-2 Homepage: https://github.com/tfussell/xlnt Description: Cross-platform user-friendly xlsx library for C++14 diff --git a/ports/xlnt/portfile.cmake b/ports/xlnt/portfile.cmake index 29a0e22012f..1e1a9cb435a 100644 --- a/ports/xlnt/portfile.cmake +++ b/ports/xlnt/portfile.cmake @@ -16,6 +16,7 @@ endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DTESTS=OFF -DSAMPLES=OFF -DBENCHMARKS=OFF -DSTATIC=${STATIC} ) diff --git a/ports/yato/CONTROL b/ports/yato/CONTROL index f1951931501..65546494d0e 100644 --- a/ports/yato/CONTROL +++ b/ports/yato/CONTROL @@ -1,3 +1,3 @@ Source: yato -Version: 1.0-1 +Version: 1.0-2 Description: Modern C++14 containers and utilities, actors system, typesafe config diff --git a/ports/yato/portfile.cmake b/ports/yato/portfile.cmake index 44ee937820d..76a54ee1367 100644 --- a/ports/yato/portfile.cmake +++ b/ports/yato/portfile.cmake @@ -21,6 +21,7 @@ file(COPY "${SOURCE_PATH}/modules/config/yato" vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DYATO_BUILD_TESTS:BOOL=OFF -DYATO_BUILD_ACTORS:BOOL=ON diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index b0e4f98a544..09d77b07db2 100644 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -249,7 +249,7 @@ buildDir="$vcpkgRootDir/toolsrc/build.rel" rm -rf "$buildDir" mkdir -p "$buildDir" -(cd "$buildDir" && CXX=$CXX "$cmakeExe" .. -DCMAKE_BUILD_TYPE=Release -G "Ninja" "-DCMAKE_MAKE_PROGRAM=$ninjaExe" "-DDEFINE_DISABLE_METRICS=$vcpkgDisableMetrics" "-DVCPKG_ALLOW_APPLE_CLANG=$vcpkgAllowAppleClang") || exit 1 +(cd "$buildDir" && CXX=$CXX "$cmakeExe" .. -DCMAKE_BUILD_TYPE=Release -G "Ninja" "-DCMAKE_MAKE_PROGRAM=$ninjaExe" "-DBUILD_TESTING=OFF" "-DDEFINE_DISABLE_METRICS=$vcpkgDisableMetrics" "-DVCPKG_ALLOW_APPLE_CLANG=$vcpkgAllowAppleClang") || exit 1 (cd "$buildDir" && "$cmakeExe" --build .) || exit 1 rm -rf "$vcpkgRootDir/vcpkg" diff --git a/toolsrc/CMakeLists.txt b/toolsrc/CMakeLists.txt index 5bfae1511c7..7a41874a68f 100644 --- a/toolsrc/CMakeLists.txt +++ b/toolsrc/CMakeLists.txt @@ -2,11 +2,17 @@ cmake_minimum_required(VERSION 3.3) project(vcpkg C CXX) -enable_testing() - +OPTION(BUILD_TESTING "Option for enabling testing" ON) +OPTION(VCPKG_BUILD_BENCHMARKING "Option for enabling benchmarking" OFF) OPTION(DEFINE_DISABLE_METRICS "Option for disabling metrics" OFF) OPTION(VCPKG_ALLOW_APPLE_CLANG "Option for allowing apple clang" OFF) +if (DEFINE_DISABLE_METRICS) + set(DISABLE_METRICS_VALUE "1") +else() + set(DISABLE_METRICS_VALUE "0") +endif() + if(CMAKE_COMPILER_IS_GNUXX OR CMAKE_CXX_COMPILER_ID MATCHES "GNU") set(GCC 1) elseif(CMAKE_CXX_COMPILER_ID MATCHES "AppleClang") @@ -27,46 +33,12 @@ else() message(FATAL_ERROR "Unknown compiler: ${CMAKE_CXX_COMPILER_ID}") endif() -if(GCC OR CLANG) - add_compile_options(-std=c++1z) - if(WERROR) - add_compile_options(-Wall -Wno-unknown-pragmas -Werror) - endif() -endif() - -file(GLOB_RECURSE VCPKGLIB_SOURCES src/vcpkg/*.cpp) -file(GLOB_RECURSE VCPKGTEST_SOURCES src/vcpkg-test/*.cpp) - -if (DEFINE_DISABLE_METRICS) - set(DISABLE_METRICS_VALUE "1") -else() - set(DISABLE_METRICS_VALUE "0") -endif() - -add_library(vcpkglib OBJECT ${VCPKGLIB_SOURCES}) -add_executable(vcpkg src/vcpkg.cpp $) -add_executable(vcpkg-test - EXCLUDE_FROM_ALL - ${VCPKGTEST_SOURCES} - $) - -foreach(TARGET_NAME vcpkglib vcpkg vcpkg-test) - target_compile_definitions(${TARGET_NAME} PRIVATE -DDISABLE_METRICS=${DISABLE_METRICS_VALUE}) - target_include_directories(${TARGET_NAME} PRIVATE include) -endforeach() - set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) -target_link_libraries(vcpkg PRIVATE Threads::Threads) -target_link_libraries(vcpkg-test PRIVATE Threads::Threads) -foreach(TEST_NAME - arguments chrono dependencies files - paragraph plan specifier statusparagraphs - strings supports update -) - add_test(${TEST_NAME} vcpkg-test [${TEST_NAME}]) -endforeach() +add_definitions(-DDISABLE_METRICS=${DISABLE_METRICS_VALUE}) +include_directories(include) +link_libraries(Threads::Threads) if(CLANG) include(CheckCXXSourceCompiles) @@ -80,11 +52,36 @@ if(CLANG) endif() if(GCC OR (CLANG AND USES_LIBSTDCXX)) - target_link_libraries(vcpkg PRIVATE stdc++fs) - target_link_libraries(vcpkg-test PRIVATE stdc++fs) + link_libraries(stdc++fs) elseif(CLANG) - target_link_libraries(vcpkg PRIVATE c++fs) - target_link_libraries(vcpkg-test PRIVATE c++fs) + link_libraries(c++fs) +endif() + +if(GCC OR CLANG) + add_compile_options(-std=c++1z) + if(WERROR) + add_compile_options(-Wall -Wno-unknown-pragmas -Werror) + endif() +endif() + +file(GLOB_RECURSE VCPKGLIB_SOURCES src/vcpkg/*.cpp) + +add_library(vcpkglib OBJECT ${VCPKGLIB_SOURCES}) +add_executable(vcpkg src/vcpkg.cpp $) + +if (BUILD_TESTING) + file(GLOB_RECURSE VCPKGTEST_SOURCES src/vcpkg-test/*.cpp) + + enable_testing() + add_executable(vcpkg-test + ${VCPKGTEST_SOURCES} + $) + + add_test(NAME default COMMAND vcpkg-test [${TEST_NAME}]) + + if (VCPKG_BUILD_BENCHMARKING) + target_compile_options(vcpkg-test PRIVATE -DCATCH_CONFIG_ENABLE_BENCHMARKING) + endif() endif() if(MSVC) diff --git a/toolsrc/include/pch.h b/toolsrc/include/pch.h index 15ec25e766b..ce2a7c9c53c 100644 --- a/toolsrc/include/pch.h +++ b/toolsrc/include/pch.h @@ -1,14 +1,6 @@ #pragma once -#if defined(_MSC_VER) && _MSC_VER < 1911 -// [[nodiscard]] is not recognized before VS 2017 version 15.3 -#pragma warning(disable : 5030) -#endif - -#if defined(__GNUC__) && __GNUC__ < 7 -// [[nodiscard]] is not recognized before GCC version 7 -#pragma GCC diagnostic ignored "-Wattributes" -#endif +#include #if defined(_WIN32) #define NOMINMAX @@ -38,8 +30,8 @@ #include #include #define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING -#include #include +#include #include #include #include diff --git a/toolsrc/include/vcpkg-test/util.h b/toolsrc/include/vcpkg-test/util.h index fa650abc850..8a458a3e597 100644 --- a/toolsrc/include/vcpkg-test/util.h +++ b/toolsrc/include/vcpkg-test/util.h @@ -1,42 +1,68 @@ +#include +#include + #include #include #include -namespace vcpkg::Test { +#define CHECK_EC(ec) \ + do \ + { \ + if (ec) \ + { \ + FAIL(ec.message()); \ + } \ + } while (0) -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"); - -vcpkg::PackageSpec unsafe_pspec(std::string name, vcpkg::Triplet t = vcpkg::Triplet::X86_WINDOWS); - -template -T&& unwrap(vcpkg::ExpectedT&& p) +namespace vcpkg::Test { - REQUIRE(p.has_value()); - return std::move(*p.get()); -} - -template -T&& unwrap(vcpkg::Optional&& opt) -{ - REQUIRE(opt.has_value()); - return std::move(*opt.get()); -} - -extern const bool SYMLINKS_ALLOWED; - -extern const fs::path TEMPORARY_DIRECTORY; - -void create_symlink(const fs::path& file, const fs::path& target, std::error_code& ec); - -void create_directory_symlink(const fs::path& file, const fs::path& target, std::error_code& ec); - + 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"); + + vcpkg::PackageSpec unsafe_pspec(std::string name, vcpkg::Triplet t = vcpkg::Triplet::X86_WINDOWS); + + template + T&& unwrap(vcpkg::ExpectedT&& p) + { + REQUIRE(p.has_value()); + return std::move(*p.get()); + } + + template + T&& unwrap(vcpkg::Optional&& opt) + { + REQUIRE(opt.has_value()); + return std::move(*opt.get()); + } + + struct AllowSymlinks + { + enum Tag : bool + { + No = false, + Yes = true, + } tag; + + constexpr AllowSymlinks(Tag tag) noexcept : tag(tag) {} + + constexpr explicit AllowSymlinks(bool b) noexcept : tag(b ? Yes : No) {} + + constexpr operator bool() const noexcept { return tag == Yes; } + }; + + AllowSymlinks can_create_symlinks() noexcept; + + const fs::path& base_temporary_directory() noexcept; + + void create_symlink(const fs::path& file, const fs::path& target, std::error_code& ec); + + void create_directory_symlink(const fs::path& file, const fs::path& target, std::error_code& ec); } diff --git a/toolsrc/include/vcpkg/base/files.h b/toolsrc/include/vcpkg/base/files.h index a5e04db2513..19e4f78fd57 100644 --- a/toolsrc/include/vcpkg/base/files.h +++ b/toolsrc/include/vcpkg/base/files.h @@ -10,47 +10,125 @@ namespace fs namespace stdfs = std::experimental::filesystem; using stdfs::copy_options; - using stdfs::file_status; - using stdfs::file_type; using stdfs::path; using stdfs::perms; using stdfs::u8path; +#if defined(_WIN32) + enum class file_type + { + none = 0, + not_found = -1, + regular = 1, + directory = 2, + symlink = 3, + block = 4, + character = 5, + fifo = 6, + socket = 7, + unknown = 8, + // also stands for a junction + directory_symlink = 42 + }; + + struct file_status + { + explicit file_status(file_type type = file_type::none, perms permissions = perms::unknown) noexcept + : m_type(type), m_permissions(permissions) + { + } + + file_type type() const noexcept { return m_type; } + void type(file_type type) noexcept { m_type = type; } + + perms permissions() const noexcept { return m_permissions; } + void permissions(perms perm) noexcept { m_permissions = perm; } + + private: + file_type m_type; + perms m_permissions; + }; + +#else + + using stdfs::file_status; + using stdfs::file_type; + +#endif + /* std::experimental::filesystem's file_status and file_type are broken in the presence of symlinks -- a symlink is treated as the object it points to for `symlink_status` and `symlink_type` */ - using stdfs::status; - // we want to poison ADL with these niebloids namespace detail { + struct status_t + { + file_status operator()(const path& p, std::error_code& ec) const noexcept; + file_status operator()(vcpkg::LineInfo li, const path& p) const noexcept; + file_status operator()(const path& p) const; + }; struct symlink_status_t { file_status operator()(const path& p, std::error_code& ec) const noexcept; - file_status operator()(const path& p, vcpkg::LineInfo li) const noexcept; + file_status operator()(vcpkg::LineInfo li, const path& p) const noexcept; }; struct is_symlink_t { - inline bool operator()(file_status s) const { return stdfs::is_symlink(s); } + bool operator()(file_status s) const + { +#if defined(_WIN32) + return s.type() == file_type::directory_symlink || s.type() == file_type::symlink; +#else + return stdfs::is_symlink(s); +#endif + } }; struct is_regular_file_t { - inline bool operator()(file_status s) const { return stdfs::is_regular_file(s); } + inline bool operator()(file_status s) const + { +#if defined(_WIN32) + return s.type() == file_type::regular; +#else + return stdfs::is_regular_file(s); +#endif + } }; struct is_directory_t { - inline bool operator()(file_status s) const { return stdfs::is_directory(s); } + inline bool operator()(file_status s) const + { +#if defined(_WIN32) + return s.type() == file_type::directory; +#else + return stdfs::is_directory(s); +#endif + } + }; + struct exists_t + { + inline bool operator()(file_status s) const + { +#if defined(_WIN32) + return s.type() != file_type::not_found && s.type() != file_type::none; +#else + return stdfs::exists(s); +#endif + } }; } + constexpr detail::status_t status{}; constexpr detail::symlink_status_t symlink_status{}; constexpr detail::is_symlink_t is_symlink{}; constexpr detail::is_regular_file_t is_regular_file{}; constexpr detail::is_directory_t is_directory{}; + constexpr detail::exists_t exists{}; } /* @@ -59,12 +137,14 @@ namespace fs Therefore, put `symlink_status` in the global namespace, so that they get our symlink_status. - We also want to poison the ADL on is_regular_file and is_directory, because + We also want to poison the ADL on the other functions, because we don't want people calling these functions on paths */ +using fs::exists; using fs::is_directory; using fs::is_regular_file; using fs::is_symlink; +using fs::status; using fs::symlink_status; namespace vcpkg::Files @@ -92,9 +172,13 @@ namespace vcpkg::Files bool remove(const fs::path& path, LineInfo linfo); virtual bool remove(const fs::path& path, std::error_code& ec) = 0; - virtual std::uintmax_t remove_all(const fs::path& path, std::error_code& ec, fs::path& failure_point) = 0; - std::uintmax_t remove_all(const fs::path& path, LineInfo li); - virtual bool exists(const fs::path& path) const = 0; + virtual void remove_all(const fs::path& path, std::error_code& ec, fs::path& failure_point) = 0; + void remove_all(const fs::path& path, LineInfo li); + bool exists(const fs::path& path, std::error_code& ec) const; + bool exists(LineInfo li, const fs::path& path) const; + // this should probably not exist, but would require a pass through of + // existing code to fix + bool exists(const fs::path& path) const; virtual bool is_directory(const fs::path& path) const = 0; virtual bool is_regular_file(const fs::path& path) const = 0; virtual bool is_empty(const fs::path& path) const = 0; diff --git a/toolsrc/include/vcpkg/base/strings.h b/toolsrc/include/vcpkg/base/strings.h index d7de9b0b235..dde4e9693fd 100644 --- a/toolsrc/include/vcpkg/base/strings.h +++ b/toolsrc/include/vcpkg/base/strings.h @@ -185,8 +185,6 @@ namespace vcpkg::Strings bool contains(StringView haystack, StringView needle); - // base 32 encoding, since base64 encoding requires lowercase letters, - // which are not distinct from uppercase letters on macOS or Windows filesystems. - // follows RFC 4648 + // base 32 encoding, following IETC RFC 4648 std::string b32_encode(std::uint64_t x) noexcept; } diff --git a/toolsrc/include/vcpkg/base/util.h b/toolsrc/include/vcpkg/base/util.h index e629ef0b211..90c947aa9d2 100644 --- a/toolsrc/include/vcpkg/base/util.h +++ b/toolsrc/include/vcpkg/base/util.h @@ -3,19 +3,19 @@ #include #include #include +#include #include #include #include -#include namespace vcpkg::Util { - template + template constexpr std::add_const_t& as_const(T& t) noexcept { return t; } - template + template void as_const(const T&&) = delete; template diff --git a/toolsrc/include/vcpkg/base/work_queue.h b/toolsrc/include/vcpkg/base/work_queue.h index 70142e110c3..a60613a3c90 100644 --- a/toolsrc/include/vcpkg/base/work_queue.h +++ b/toolsrc/include/vcpkg/base/work_queue.h @@ -1,108 +1,46 @@ #pragma once +#include + #include #include -#include +#include namespace vcpkg { - template - struct WorkQueue; - - namespace detail - { - // for SFINAE purposes, keep out of the class - template - auto call_moved_action(Action& action, - const WorkQueue& work_queue, - ThreadLocalData& tld) -> decltype(static_cast(std::move(action)(tld, work_queue))) - { - std::move(action)(tld, work_queue); - } - - template - auto call_moved_action(Action& action, const WorkQueue&, ThreadLocalData& tld) - -> decltype(static_cast(std::move(action)(tld))) - { - std::move(action)(tld); - } - } - - template + template struct WorkQueue { - template - WorkQueue(std::uint16_t num_threads, LineInfo li, const F& tld_init) noexcept - { - m_line_info = li; - - set_unjoined_workers(num_threads); - m_threads.reserve(num_threads); - for (std::size_t i = 0; i < num_threads; ++i) - { - m_threads.push_back(std::thread(Worker{this, tld_init()})); - } - } - - WorkQueue(WorkQueue const&) = delete; - WorkQueue(WorkQueue&&) = delete; + WorkQueue(LineInfo li) : m_line_info(li) {} + WorkQueue(const WorkQueue&) = delete; ~WorkQueue() { - auto lck = std::unique_lock(m_mutex); - if (!is_joined(m_state)) + auto lck = std::unique_lock(m_mutex, std::try_to_lock); + /* + if we don't own the lock, there isn't much we can do + it is likely a spurious failure + */ + if (lck && m_running_workers != 0) { - Checks::exit_with_message(m_line_info, "Failed to call join() on a WorkQueue that was destroyed"); + Checks::exit_with_message( + m_line_info, "Internal error -- outstanding workers (%u) at destruct point", m_running_workers); } } - // should only be called once; anything else is an error - void run(LineInfo li) + template + void run_and_join(unsigned num_threads, const F& tld_init) noexcept { - // this should _not_ be locked before `run()` is called; however, we - // want to terminate if someone screws up, rather than cause UB - auto lck = std::unique_lock(m_mutex); + if (m_actions.empty()) return; - if (m_state != State::BeforeRun) + std::vector threads; + threads.reserve(num_threads); + for (unsigned i = 0; i < num_threads; ++i) { - Checks::exit_with_message(li, "Attempted to run() twice"); + threads.emplace_back(Worker{this, tld_init()}); } - m_state = State::Running; - } - - // runs all remaining tasks, and blocks on their finishing - // if this is called in an existing task, _will block forever_ - // DO NOT DO THAT - // thread-unsafe - void join(LineInfo li) - { - { - auto lck = std::unique_lock(m_mutex); - if (is_joined(m_state)) - { - Checks::exit_with_message(li, "Attempted to call join() more than once"); - } - else if (m_state == State::Terminated) - { - m_state = State::TerminatedJoined; - } - else - { - m_state = State::Joined; - } - } - - while (unjoined_workers()) - { - if (!running_workers()) - { - m_cv.notify_one(); - } - } - - // wait for all threads to join - for (auto& thrd : m_threads) + for (auto& thrd : threads) { thrd.join(); } @@ -111,18 +49,12 @@ namespace vcpkg // useful in the case of errors // doesn't stop any existing running tasks // returns immediately, so that one can call this in a task - void terminate() const + void cancel() const { { - auto lck = std::unique_lock(m_mutex); - if (is_joined(m_state)) - { - m_state = State::TerminatedJoined; - } - else - { - m_state = State::Terminated; - } + auto lck = std::lock_guard(m_mutex); + m_cancelled = true; + m_actions.clear(); } m_cv.notify_all(); } @@ -130,15 +62,16 @@ namespace vcpkg void enqueue_action(Action a) const { { - auto lck = std::unique_lock(m_mutex); - m_actions.push_back(std::move(a)); + auto lck = std::lock_guard(m_mutex); + if (m_cancelled) return; - if (m_state == State::BeforeRun) return; + m_actions.push_back(std::move(a)); } m_cv.notify_one(); } private: + template struct Worker { const WorkQueue* work_queue; @@ -146,85 +79,62 @@ namespace vcpkg void operator()() { - // unlocked when waiting, or when in the action - // locked otherwise auto lck = std::unique_lock(work_queue->m_mutex); - - work_queue->m_cv.wait(lck, [&] { return work_queue->m_state != State::BeforeRun; }); - - work_queue->increment_running_workers(); for (;;) { - const auto state = work_queue->m_state; + const auto& w = *work_queue; + work_queue->m_cv.wait(lck, [&w] { + if (w.m_cancelled) + return true; + else if (!w.m_actions.empty()) + return true; + else if (w.m_running_workers == 0) + return true; + else + return false; + }); - if (is_terminated(state)) + if (work_queue->m_cancelled || work_queue->m_actions.empty()) { + /* + if we've been cancelled, or if the work queue is empty + and there are no other workers, we want to return + immediately; we don't check for the latter condition + since if we're at this point, then either the queue + is not empty, or there are no other workers, or both. + We can't have an empty queue, and other workers, or + we would still be in the wait. + */ break; } - if (work_queue->m_actions.empty()) - { - if (state == State::Running || work_queue->running_workers() > 1) - { - work_queue->decrement_running_workers(); - work_queue->m_cv.wait(lck); - work_queue->increment_running_workers(); - continue; - } + ++work_queue->m_running_workers; - // the queue is joining, and we are the only worker running - // no more work! - break; - } - - Action action = std::move(work_queue->m_actions.back()); + auto action = std::move(work_queue->m_actions.back()); work_queue->m_actions.pop_back(); lck.unlock(); work_queue->m_cv.notify_one(); - detail::call_moved_action(action, *work_queue, tld); + std::move(action)(tld, *work_queue); lck.lock(); - } - work_queue->decrement_running_workers(); - work_queue->decrement_unjoined_workers(); + const auto after = --work_queue->m_running_workers; + if (work_queue->m_actions.empty() && after == 0) + { + work_queue->m_cv.notify_all(); + return; + } + } } }; - enum class State : std::int16_t - { - // can only exist upon construction - BeforeRun = -1, - - Running, - Joined, - Terminated, - TerminatedJoined, - }; - - static bool is_terminated(State st) { return st == State::Terminated || st == State::TerminatedJoined; } - - static bool is_joined(State st) { return st == State::Joined || st == State::TerminatedJoined; } - mutable std::mutex m_mutex{}; // these are all under m_mutex - mutable State m_state = State::BeforeRun; + mutable bool m_cancelled = false; mutable std::vector m_actions{}; mutable std::condition_variable m_cv{}; + mutable unsigned long m_running_workers = 0; - mutable std::atomic m_workers; - // = unjoined_workers << 16 | running_workers - - void set_unjoined_workers(std::uint16_t threads) { m_workers = std::uint32_t(threads) << 16; } - void decrement_unjoined_workers() const { m_workers -= 1 << 16; } - - std::uint16_t unjoined_workers() const { return std::uint16_t(m_workers >> 16); } - - void increment_running_workers() const { ++m_workers; } - void decrement_running_workers() const { --m_workers; } - std::uint16_t running_workers() const { return std::uint16_t(m_workers); } - - std::vector m_threads{}; LineInfo m_line_info; }; } diff --git a/toolsrc/include/vcpkg/binaryparagraph.h b/toolsrc/include/vcpkg/binaryparagraph.h index d75e4abb1dc..a68fcfb368c 100644 --- a/toolsrc/include/vcpkg/binaryparagraph.h +++ b/toolsrc/include/vcpkg/binaryparagraph.h @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include @@ -20,7 +21,7 @@ namespace vcpkg struct BinaryParagraph { BinaryParagraph(); - explicit BinaryParagraph(std::unordered_map fields); + explicit BinaryParagraph(Parse::RawParagraph fields); BinaryParagraph(const SourceParagraph& spgh, const Triplet& triplet, const std::string& abi_tag); BinaryParagraph(const SourceParagraph& spgh, const FeatureParagraph& fpgh, const Triplet& triplet); diff --git a/toolsrc/include/vcpkg/build.h b/toolsrc/include/vcpkg/build.h index 2d5e18a43a7..c393d989b3e 100644 --- a/toolsrc/include/vcpkg/build.h +++ b/toolsrc/include/vcpkg/build.h @@ -126,8 +126,8 @@ namespace vcpkg::Build /// Runs the triplet file in a "capture" mode to create a PreBuildInfo /// static PreBuildInfo from_triplet_file(const VcpkgPaths& paths, - const Triplet& triplet, - Optional port = nullopt); + const Triplet& triplet, + Optional port = nullopt); std::string triplet_abi_tag; std::string target_architecture; diff --git a/toolsrc/include/vcpkg/dependencies.h b/toolsrc/include/vcpkg/dependencies.h index 9641580268b..e9018b1b892 100644 --- a/toolsrc/include/vcpkg/dependencies.h +++ b/toolsrc/include/vcpkg/dependencies.h @@ -145,7 +145,7 @@ namespace vcpkg::Dependencies struct PathsPortFileProvider : Util::ResourceBase, PortFileProvider { - explicit PathsPortFileProvider(const vcpkg::VcpkgPaths& paths, + explicit PathsPortFileProvider(const vcpkg::VcpkgPaths& paths, const std::vector* ports_dirs_paths); Optional get_control_file(const std::string& src_name) const override; std::vector load_all_control_files() const override; @@ -186,9 +186,10 @@ namespace vcpkg::Dependencies std::vector create_export_plan(const std::vector& specs, const StatusParagraphs& status_db); - std::vector create_feature_install_plan(const std::unordered_map& map, - const std::vector& specs, - const StatusParagraphs& status_db); + std::vector create_feature_install_plan( + const std::unordered_map& map, + const std::vector& specs, + const StatusParagraphs& status_db); /// Figure out which actions are required to install features specifications in `specs`. /// Contains the ports of the current environment. @@ -199,7 +200,7 @@ namespace vcpkg::Dependencies const StatusParagraphs& status_db, const CreateInstallPlanOptions& options = {}); - void print_plan(const std::vector& action_plan, + void print_plan(const std::vector& action_plan, const bool is_recursive = true, const fs::path& default_ports_dir = ""); } diff --git a/toolsrc/include/vcpkg/logicexpression.h b/toolsrc/include/vcpkg/logicexpression.h new file mode 100644 index 00000000000..8795971b9de --- /dev/null +++ b/toolsrc/include/vcpkg/logicexpression.h @@ -0,0 +1,10 @@ +#pragma once + +#include + +namespace vcpkg +{ + // Evaluate simple vcpkg logic expressions. An identifier in the expression is considered 'true' + // if it is a substring of the evaluation_context (typically the name of the triplet) + bool evaluate_expression(const std::string& expression, const std::string& evaluation_context); +} \ No newline at end of file diff --git a/toolsrc/include/vcpkg/paragraphs.h b/toolsrc/include/vcpkg/paragraphs.h index 56f09387aad..7e2410aefd5 100644 --- a/toolsrc/include/vcpkg/paragraphs.h +++ b/toolsrc/include/vcpkg/paragraphs.h @@ -12,7 +12,6 @@ namespace vcpkg::Paragraphs Expected get_single_paragraph(const Files::Filesystem& fs, const fs::path& control_path); Expected> get_paragraphs(const Files::Filesystem& fs, const fs::path& control_path); - Expected parse_single_paragraph(const std::string& str); Expected> parse_paragraphs(const std::string& str); Parse::ParseExpected try_load_port(const Files::Filesystem& fs, const fs::path& control_path); diff --git a/toolsrc/include/vcpkg/pragmas.h b/toolsrc/include/vcpkg/pragmas.h new file mode 100644 index 00000000000..fa1039bce0d --- /dev/null +++ b/toolsrc/include/vcpkg/pragmas.h @@ -0,0 +1,11 @@ +#pragma once + +#if defined(_MSC_VER) && _MSC_VER < 1911 +// [[nodiscard]] is not recognized before VS 2017 version 15.3 +#pragma warning(disable : 5030) +#endif + +#if defined(__GNUC__) && __GNUC__ < 7 +// [[nodiscard]] is not recognized before GCC version 7 +#pragma GCC diagnostic ignored "-Wattributes" +#endif diff --git a/toolsrc/include/vcpkg/sourceparagraph.h b/toolsrc/include/vcpkg/sourceparagraph.h index 9fbd83475d8..95347770aa2 100644 --- a/toolsrc/include/vcpkg/sourceparagraph.h +++ b/toolsrc/include/vcpkg/sourceparagraph.h @@ -23,8 +23,7 @@ namespace vcpkg std::vector filter_dependencies(const std::vector& deps, const Triplet& t); std::vector filter_dependencies_to_specs(const std::vector& deps, const Triplet& t); - std::vector filter_dependencies_to_features(const std::vector& deps, - const Triplet& t); + std::vector filter_dependencies_to_features(const std::vector& deps, const Triplet& t); // zlib[uwp] becomes Dependency{"zlib", "uwp"} std::vector expand_qualified_dependencies(const std::vector& depends); @@ -71,7 +70,8 @@ namespace vcpkg }; /// - /// Full metadata of a package: core and other features. As well as the location the SourceControlFile was loaded from. + /// Full metadata of a package: core and other features. As well as the location the SourceControlFile was loaded + /// from. /// struct SourceControlFileLocation { diff --git a/toolsrc/include/vcpkg/statusparagraph.h b/toolsrc/include/vcpkg/statusparagraph.h index e79c946ccdd..6e832fe2f4f 100644 --- a/toolsrc/include/vcpkg/statusparagraph.h +++ b/toolsrc/include/vcpkg/statusparagraph.h @@ -30,7 +30,7 @@ namespace vcpkg struct StatusParagraph { StatusParagraph() noexcept; - explicit StatusParagraph(std::unordered_map&& fields); + explicit StatusParagraph(Parse::RawParagraph&& fields); bool is_installed() const { return want == Want::INSTALL && state == InstallState::INSTALLED; } diff --git a/toolsrc/include/vcpkg/vcpkgpaths.h b/toolsrc/include/vcpkg/vcpkgpaths.h index ce442858bd3..8107b8201f3 100644 --- a/toolsrc/include/vcpkg/vcpkgpaths.h +++ b/toolsrc/include/vcpkg/vcpkgpaths.h @@ -55,7 +55,7 @@ namespace vcpkg fs::path package_dir(const PackageSpec& spec) const; fs::path build_info_file_path(const PackageSpec& spec) const; fs::path listfile_path(const BinaryParagraph& pgh) const; - + bool is_valid_triplet(const Triplet& t) const; const std::vector& get_available_triplets() const; const fs::path get_triplet_file_path(const Triplet& triplet) const; diff --git a/toolsrc/src/vcpkg-test/files.cpp b/toolsrc/src/vcpkg-test/files.cpp index 9e14cec0c30..a2faf455cd3 100644 --- a/toolsrc/src/vcpkg-test/files.cpp +++ b/toolsrc/src/vcpkg-test/files.cpp @@ -9,29 +9,63 @@ #include -using vcpkg::Test::SYMLINKS_ALLOWED; -using vcpkg::Test::TEMPORARY_DIRECTORY; +using vcpkg::Test::AllowSymlinks; +using vcpkg::Test::base_temporary_directory; +using vcpkg::Test::can_create_symlinks; + +#define CHECK_EC_ON_FILE(file, ec) \ + do \ + { \ + if (ec) \ + { \ + FAIL(file << ": " << ec.message()); \ + } \ + } while (0) namespace { - using uid = std::uniform_int_distribution; + using uid_t = std::uniform_int_distribution; + using urbg_t = std::mt19937_64; - std::mt19937_64 get_urbg(std::uint64_t index) + urbg_t get_urbg(std::uint64_t index) { // smallest prime > 2**63 - 1 - return std::mt19937_64{index + 9223372036854775837ULL}; + return urbg_t{index + 9223372036854775837ULL}; } - std::string get_random_filename(std::mt19937_64& urbg) { return vcpkg::Strings::b32_encode(uid{}(urbg)); } + std::string get_random_filename(urbg_t& urbg) { return vcpkg::Strings::b32_encode(uid_t{}(urbg)); } - void create_directory_tree(std::mt19937_64& urbg, + struct MaxDepth + { + std::uint64_t i; + explicit MaxDepth(std::uint64_t i) : i(i) {} + operator uint64_t() const { return i; } + }; + + struct Width + { + std::uint64_t i; + explicit Width(std::uint64_t i) : i(i) {} + operator uint64_t() const { return i; } + }; + + struct CurrentDepth + { + std::uint64_t i; + explicit CurrentDepth(std::uint64_t i) : i(i) {} + operator uint64_t() const { return i; } + CurrentDepth incremented() const { return CurrentDepth{i + 1}; } + }; + + void create_directory_tree(urbg_t& urbg, vcpkg::Files::Filesystem& fs, - std::uint64_t depth, - const fs::path& base) + const fs::path& base, + MaxDepth max_depth, + AllowSymlinks allow_symlinks = AllowSymlinks::Yes, + Width width = Width{5}, + CurrentDepth current_depth = CurrentDepth{0}) { std::random_device rd; - constexpr std::uint64_t max_depth = 5; - constexpr std::uint64_t width = 5; // we want ~70% of our "files" to be directories, and then a third // each of the remaining ~30% to be regular files, directory symlinks, @@ -42,18 +76,24 @@ namespace constexpr std::uint64_t regular_symlink_tag = 8; constexpr std::uint64_t directory_symlink_tag = 9; + allow_symlinks = AllowSymlinks{allow_symlinks && can_create_symlinks()}; + // if we're at the max depth, we only want to build non-directories std::uint64_t file_type; - if (depth < max_depth) + if (current_depth >= max_depth) { - file_type = uid{directory_min_tag, regular_symlink_tag}(urbg); + file_type = uid_t{regular_file_tag, directory_symlink_tag}(urbg); + } + else if (current_depth < 2) + { + file_type = directory_min_tag; } else { - file_type = uid{regular_file_tag, regular_symlink_tag}(urbg); + file_type = uid_t{directory_min_tag, regular_symlink_tag}(urbg); } - if (!SYMLINKS_ALLOWED && file_type > regular_file_tag) + if (!allow_symlinks && file_type > regular_file_tag) { file_type = regular_file_tag; } @@ -62,14 +102,20 @@ namespace if (file_type <= directory_max_tag) { fs.create_directory(base, ec); - if (ec) { - INFO("File that failed: " << base); - REQUIRE_FALSE(ec); + if (ec) + { + CHECK_EC_ON_FILE(base, ec); } for (int i = 0; i < width; ++i) { - create_directory_tree(urbg, fs, depth + 1, base / get_random_filename(urbg)); + create_directory_tree(urbg, + fs, + base / get_random_filename(urbg), + max_depth, + allow_symlinks, + width, + current_depth.incremented()); } } else if (file_type == regular_file_tag) @@ -80,19 +126,34 @@ namespace else if (file_type == regular_symlink_tag) { // regular symlink - fs.write_contents(base, "", ec); - REQUIRE_FALSE(ec); auto base_link = base; - base_link.replace_filename(base.filename().u8string() + "-link"); - vcpkg::Test::create_symlink(base, base_link, ec); + base_link.replace_filename(base.filename().u8string() + "-orig"); + fs.write_contents(base_link, "", ec); + CHECK_EC_ON_FILE(base_link, ec); + vcpkg::Test::create_symlink(base_link, base, ec); } else // type == directory_symlink_tag { // directory symlink - vcpkg::Test::create_directory_symlink(base / "..", base, ec); + auto parent = base; + parent.remove_filename(); + vcpkg::Test::create_directory_symlink(parent, base, ec); } - REQUIRE_FALSE(ec); + CHECK_EC_ON_FILE(base, ec); + REQUIRE(fs::exists(fs.symlink_status(base, ec))); + CHECK_EC_ON_FILE(base, ec); + } + + vcpkg::Files::Filesystem& setup(urbg_t& urbg) + { + auto& fs = vcpkg::Files::get_real_filesystem(); + + std::error_code ec; + fs.create_directory(base_temporary_directory(), ec); + CHECK_EC_ON_FILE(base_temporary_directory(), ec); + + return fs; } } @@ -100,22 +161,83 @@ TEST_CASE ("remove all", "[files]") { auto urbg = get_urbg(0); - fs::path temp_dir = TEMPORARY_DIRECTORY / get_random_filename(urbg); - - auto& fs = vcpkg::Files::get_real_filesystem(); - - std::error_code ec; - fs.create_directory(TEMPORARY_DIRECTORY, ec); - - REQUIRE_FALSE(ec); + auto& fs = setup(urbg); + fs::path temp_dir = base_temporary_directory() / get_random_filename(urbg); INFO("temp dir is: " << temp_dir); - create_directory_tree(urbg, fs, 0, temp_dir); + create_directory_tree(urbg, fs, temp_dir, MaxDepth{5}); + std::error_code ec; fs::path fp; fs.remove_all(temp_dir, ec, fp); - REQUIRE_FALSE(ec); + CHECK_EC_ON_FILE(fp, ec); - REQUIRE_FALSE(fs.exists(temp_dir)); + REQUIRE_FALSE(fs.exists(temp_dir, ec)); + CHECK_EC_ON_FILE(temp_dir, ec); } + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) +TEST_CASE ("remove all -- benchmarks", "[files][!benchmark]") +{ + auto urbg = get_urbg(1); + auto& fs = setup(urbg); + + struct + { + urbg_t& urbg; + vcpkg::Files::Filesystem& fs; + + void operator()(Catch::Benchmark::Chronometer& meter, MaxDepth max_depth, AllowSymlinks allow_symlinks) const + { + std::vector temp_dirs; + temp_dirs.resize(meter.runs()); + + std::generate(begin(temp_dirs), end(temp_dirs), [&] { + fs::path temp_dir = base_temporary_directory() / get_random_filename(urbg); + create_directory_tree(urbg, fs, temp_dir, max_depth, allow_symlinks); + return temp_dir; + }); + + meter.measure([&](int run) { + std::error_code ec; + fs::path fp; + const auto& temp_dir = temp_dirs[run]; + + fs.remove_all(temp_dir, ec, fp); + CHECK_EC_ON_FILE(fp, ec); + }); + + for (const auto& dir : temp_dirs) + { + std::error_code ec; + REQUIRE_FALSE(fs.exists(dir, ec)); + CHECK_EC_ON_FILE(dir, ec); + } + } + } do_benchmark = {urbg, fs}; + + BENCHMARK_ADVANCED("small directory, no symlinks")(Catch::Benchmark::Chronometer meter) + { + do_benchmark(meter, MaxDepth{2}, AllowSymlinks::No); + }; + + BENCHMARK_ADVANCED("large directory, no symlinks")(Catch::Benchmark::Chronometer meter) + { + do_benchmark(meter, MaxDepth{5}, AllowSymlinks::No); + }; + + if (can_create_symlinks()) + { + BENCHMARK_ADVANCED("small directory, symlinks")(Catch::Benchmark::Chronometer meter) + { + do_benchmark(meter, MaxDepth{2}, AllowSymlinks::Yes); + }; + + BENCHMARK_ADVANCED("large directory, symlinks")(Catch::Benchmark::Chronometer meter) + { + do_benchmark(meter, MaxDepth{5}, AllowSymlinks::Yes); + }; + } +} +#endif diff --git a/toolsrc/src/vcpkg-test/util.cpp b/toolsrc/src/vcpkg-test/util.cpp index a80ab36a0f8..384954b4e75 100644 --- a/toolsrc/src/vcpkg-test/util.cpp +++ b/toolsrc/src/vcpkg-test/util.cpp @@ -74,14 +74,15 @@ namespace vcpkg::Test return m_ret.value_or_exit(VCPKG_LINE_INFO); } - static bool system_allows_symlinks() + static AllowSymlinks internal_can_create_symlinks() noexcept { -#if defined(_WIN32) - if (!__cpp_lib_filesystem) - { - return false; - } - +#if FILESYSTEM_SYMLINK == FILESYSTEM_SYMLINK_NONE + return AllowSymlinks::No; +#elif FILESYSTEM_SYMLINK == FILESYSTEM_SYMLINK_UNIX + return AllowSymlinks::Yes; +#elif !defined(_WIN32) // FILESYSTEM_SYMLINK == FILESYSTEM_SYMLINK_STD + return AllowSymlinks::Yes; +#else HKEY key; bool allow_symlinks = true; @@ -96,13 +97,14 @@ namespace vcpkg::Test if (status == ERROR_SUCCESS) RegCloseKey(key); - return allow_symlinks; -#else - return true; + return allow_symlinks ? AllowSymlinks::Yes : AllowSymlinks::No; #endif } + const static AllowSymlinks CAN_CREATE_SYMLINKS = internal_can_create_symlinks(); - static fs::path internal_temporary_directory() + AllowSymlinks can_create_symlinks() noexcept { return CAN_CREATE_SYMLINKS; } + + static fs::path internal_base_temporary_directory() { #if defined(_WIN32) wchar_t* tmp = static_cast(std::calloc(32'767, 2)); @@ -122,18 +124,19 @@ namespace vcpkg::Test #endif } - const bool SYMLINKS_ALLOWED = system_allows_symlinks(); - const fs::path TEMPORARY_DIRECTORY = internal_temporary_directory(); + const static fs::path BASE_TEMPORARY_DIRECTORY = internal_base_temporary_directory(); -#if FILESYSTEM_SYMLINK == FILSYSTEM_SYMLINK_NONE - constexpr inline char no_filesystem_message[] = + const fs::path& base_temporary_directory() noexcept { return BASE_TEMPORARY_DIRECTORY; } + +#if FILESYSTEM_SYMLINK == FILESYSTEM_SYMLINK_NONE + constexpr char no_filesystem_message[] = " doesn't exist; on windows, we don't attempt to use the win32 calls to create symlinks"; #endif void create_symlink(const fs::path& target, const fs::path& file, std::error_code& ec) { #if FILESYSTEM_SYMLINK == FILESYSTEM_SYMLINK_STD - if (SYMLINKS_ALLOWED) + if (can_create_symlinks()) { std::filesystem::path targetp = target.native(); std::filesystem::path filep = file.native(); @@ -157,12 +160,12 @@ namespace vcpkg::Test void create_directory_symlink(const fs::path& target, const fs::path& file, std::error_code& ec) { #if FILESYSTEM_SYMLINK == FILESYSTEM_SYMLINK_STD - if (SYMLINKS_ALLOWED) + if (can_create_symlinks()) { std::filesystem::path targetp = target.native(); std::filesystem::path filep = file.native(); - std::filesystem::create_symlink(targetp, filep); + std::filesystem::create_directory_symlink(targetp, filep); } else { diff --git a/toolsrc/src/vcpkg.cpp b/toolsrc/src/vcpkg.cpp index 46ec8c013cd..3fdbd0d3e98 100644 --- a/toolsrc/src/vcpkg.cpp +++ b/toolsrc/src/vcpkg.cpp @@ -125,12 +125,8 @@ static void inner(const VcpkgCmdArguments& args) auto default_vs_path = System::get_environment_variable("VCPKG_VISUAL_STUDIO_PATH").value_or(""); - - - const Expected expected_paths = VcpkgPaths::create(vcpkg_root_dir, - vcpkg_scripts_root_dir, - default_vs_path, - args.overlay_triplets.get()); + const Expected expected_paths = + VcpkgPaths::create(vcpkg_root_dir, vcpkg_scripts_root_dir, default_vs_path, args.overlay_triplets.get()); Checks::check_exit(VCPKG_LINE_INFO, !expected_paths.error(), "Error: Invalid vcpkg root directory %s: %s", @@ -143,7 +139,11 @@ static void inner(const VcpkgCmdArguments& args) #else const int exit_code = chdir(paths.root.c_str()); #endif - Checks::check_exit(VCPKG_LINE_INFO, exit_code == 0, "Changing the working directory to the vcpkg root directory failed. Did you incorrectly define the VCPKG_ROOT environment variable, or did you mistakenly create a file named .vcpkg-root somewhere?"); + Checks::check_exit( + VCPKG_LINE_INFO, + exit_code == 0, + "Changing the working directory to the vcpkg root directory failed. Did you incorrectly define the VCPKG_ROOT " + "environment variable, or did you mistakenly create a file named .vcpkg-root somewhere?"); if (args.command == "install" || args.command == "remove" || args.command == "export" || args.command == "update") { diff --git a/toolsrc/src/vcpkg/base/files.cpp b/toolsrc/src/vcpkg/base/files.cpp index 6c6945e44aa..4a0a52f06d4 100644 --- a/toolsrc/src/vcpkg/base/files.cpp +++ b/toolsrc/src/vcpkg/base/files.cpp @@ -23,29 +23,35 @@ namespace fs::detail { - file_status symlink_status_t::operator()(const path& p, std::error_code& ec) const noexcept + static file_status status_implementation(bool follow_symlinks, const path& p, std::error_code& ec) { #if defined(_WIN32) - static_cast(ec); - - /* - do not find the permissions of the file -- it's unnecessary for the - things that vcpkg does. - if one were to add support for this in the future, one should look - into GetFileSecurityW - */ - perms permissions = perms::unknown; - WIN32_FILE_ATTRIBUTE_DATA file_attributes; file_type ft = file_type::unknown; + perms permissions = perms::unknown; if (!GetFileAttributesExW(p.c_str(), GetFileExInfoStandard, &file_attributes)) { - ft = file_type::not_found; + const auto err = GetLastError(); + if (err == ERROR_FILE_NOT_FOUND || err == ERROR_PATH_NOT_FOUND) + { + ft = file_type::not_found; + } + else + { + ec.assign(err, std::system_category()); + } } - else if (file_attributes.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) + else if (!follow_symlinks && file_attributes.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) { - // check for reparse point -- if yes, then symlink - ft = file_type::symlink; + // this also gives junctions file_type::directory_symlink + if (file_attributes.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) + { + ft = file_type::directory_symlink; + } + else + { + ft = file_type::symlink; + } } else if (file_attributes.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { @@ -57,17 +63,60 @@ namespace fs::detail ft = file_type::regular; } + if (file_attributes.dwFileAttributes & FILE_ATTRIBUTE_READONLY) + { + constexpr auto all_write = perms::group_write | perms::owner_write | perms::others_write; + permissions = perms::all & ~all_write; + } + else if (ft != file_type::none && ft != file_type::none) + { + permissions = perms::all; + } + return file_status(ft, permissions); #else - return stdfs::symlink_status(p, ec); + auto result = symlink ? stdfs::symlink_status(p, ec) : stdfs::status(p, ec); + // libstdc++ doesn't correctly not-set ec on nonexistent paths + if (ec.value() == ENOENT) + { + ec.clear(); + result = file_status(file_type::not_found, perms::unknown); + } + return result; #endif } - file_status symlink_status_t::operator()(const path& p, vcpkg::LineInfo li) const noexcept + file_status status_t::operator()(const path& p, std::error_code& ec) const noexcept + { + return status_implementation(false, p, ec); + } + file_status status_t::operator()(vcpkg::LineInfo li, const path& p) const noexcept { std::error_code ec; - auto result = symlink_status(p, ec); + auto result = (*this)(p, ec); + if (ec) vcpkg::Checks::exit_with_message(li, "error getting status of path %s: %s", p.string(), ec.message()); + + return result; + } + file_status status_t::operator()(const path& p) const + { +#if defined(_WIN32) + return (*this)(VCPKG_LINE_INFO, p); +#else + return fs::stdfs::status(p); +#endif + } + + file_status symlink_status_t::operator()(const path& p, std::error_code& ec) const noexcept + { + return status_implementation(true, p, ec); + } + + file_status symlink_status_t::operator()(vcpkg::LineInfo li, const path& p) const noexcept + { + std::error_code ec; + auto result = (*this)(p, ec); if (ec) vcpkg::Checks::exit_with_message(li, "error getting status of path %s: %s", p.string(), ec.message()); return result; @@ -78,6 +127,48 @@ namespace vcpkg::Files { static const std::regex FILESYSTEM_INVALID_CHARACTERS_REGEX = std::regex(R"([\/:*?"<>|])"); + namespace + { + // does _not_ follow symlinks + void set_writeable(const fs::path& path, std::error_code& ec) noexcept + { +#if defined(_WIN32) + auto const file_name = path.c_str(); + WIN32_FILE_ATTRIBUTE_DATA attributes; + if (!GetFileAttributesExW(file_name, GetFileExInfoStandard, &attributes)) + { + ec.assign(GetLastError(), std::system_category()); + return; + } + + auto dw_attributes = attributes.dwFileAttributes; + dw_attributes &= ~FILE_ATTRIBUTE_READONLY; + if (!SetFileAttributesW(file_name, dw_attributes)) + { + ec.assign(GetLastError(), std::system_category()); + } +#else + struct stat s; + if (lstat(path.c_str(), &s)) + { + ec.assign(errno, std::system_category()); + return; + } + + auto mode = s.st_mode; + // if the file is a symlink, perms don't matter + if (!(mode & S_IFLNK)) + { + mode |= S_IWUSR; + if (chmod(path.c_str(), mode)) + { + ec.assign(errno, std::system_category()); + } + } +#endif + } + } + std::string Filesystem::read_contents(const fs::path& path, LineInfo linfo) const { auto maybe_contents = this->read_contents(path); @@ -110,6 +201,25 @@ namespace vcpkg::Files return r; } + bool Filesystem::exists(const fs::path& path, std::error_code& ec) const + { + return fs::exists(this->symlink_status(path, ec)); + } + + bool Filesystem::exists(LineInfo li, const fs::path& path) const + { + std::error_code ec; + auto result = this->exists(path, ec); + if (ec) Checks::exit_with_message(li, "error checking existence of file %s: %s", path.u8string(), ec.message()); + return result; + } + bool Filesystem::exists(const fs::path& path) const + { + std::error_code ec; + // drop this on the floor, for compatibility with existing code + return exists(path, ec); + } + void Filesystem::write_lines(const fs::path& path, const std::vector& lines, LineInfo linfo) { std::error_code ec; @@ -117,12 +227,12 @@ namespace vcpkg::Files if (ec) Checks::exit_with_message(linfo, "error writing lines: %s: %s", path.u8string(), ec.message()); } - std::uintmax_t Filesystem::remove_all(const fs::path& path, LineInfo li) + void Filesystem::remove_all(const fs::path& path, LineInfo li) { std::error_code ec; fs::path failure_point; - const auto result = this->remove_all(path, ec, failure_point); + this->remove_all(path, ec, failure_point); if (ec) { @@ -132,8 +242,6 @@ namespace vcpkg::Files failure_point.string(), ec.message()); } - - return result; } struct RealFilesystem final : Filesystem @@ -174,6 +282,9 @@ namespace vcpkg::Files std::string line; while (std::getline(file_stream, line)) { + // Remove the trailing \r to accomodate Windows line endings. + if ((!line.empty()) && (line.back() == '\r')) line.pop_back(); + output.push_back(line); } file_stream.close(); @@ -184,7 +295,7 @@ namespace vcpkg::Files const std::string& filename) const override { fs::path current_dir = starting_dir; - if (exists(current_dir / filename)) + if (exists(VCPKG_LINE_INFO, current_dir / filename)) { return current_dir; } @@ -209,7 +320,7 @@ namespace vcpkg::Files current_dir = std::move(parent); const fs::path candidate = current_dir / filename; - if (exists(candidate)) + if (exists(VCPKG_LINE_INFO, candidate)) { return current_dir; } @@ -327,89 +438,96 @@ namespace vcpkg::Files #endif } virtual bool remove(const fs::path& path, std::error_code& ec) override { return fs::stdfs::remove(path, ec); } - virtual std::uintmax_t remove_all(const fs::path& path, std::error_code& ec, fs::path& failure_point) override + virtual void remove_all(const fs::path& path, std::error_code& ec, fs::path& failure_point) override { /* - does not use the std::filesystem call since it is buggy, and can - have spurious errors before VS 2017 update 6, and on later versions - (as well as on macOS and Linux), this is just as fast and will have - fewer spurious errors due to locks. + does not use the std::experimental::filesystem call since this is + quite a bit faster, and also supports symlinks */ - /* - `remove` doesn't actually remove anything -- it simply moves the - files into a parent directory (which ends up being at `path`), - and then inserts `actually_remove{current_path}` into the work - queue. - */ struct remove { - struct tld + struct ErrorInfo : Util::ResourceBase { - const fs::path& tmp_directory; - std::uint64_t index; - - std::atomic& files_deleted; - - std::mutex& ec_mutex; - std::error_code& ec; - fs::path& failure_point; + std::error_code ec; + fs::path failure_point; }; - - struct actually_remove; - using queue = WorkQueue; - /* if `current_path` is a directory, first `remove`s all - elements of the directory, then calls remove. + elements of the directory, then removes current_path. - else, just calls remove. + else if `current_path` exists, removes current_path + + else does nothing */ - struct actually_remove + static void do_remove(const fs::path& current_path, ErrorInfo& err) { - fs::path current_path; + std::error_code ec; + const auto path_status = fs::symlink_status(current_path, ec); + if (check_ec(ec, current_path, err)) return; + if (!fs::exists(path_status)) return; - void operator()(tld& info, const queue& queue) const + const auto path_type = path_status.type(); + + if ((path_status.permissions() & fs::perms::owner_write) != fs::perms::owner_write) { - std::error_code ec; - const auto path_type = fs::symlink_status(current_path, ec).type(); + set_writeable(current_path, ec); + if (check_ec(ec, current_path, err)) return; + } - if (check_ec(ec, info, queue, current_path)) return; - - if (path_type == fs::file_type::directory) + if (path_type == fs::file_type::directory) + { + for (const auto& entry : fs::stdfs::directory_iterator(current_path)) { - for (const auto& entry : fs::stdfs::directory_iterator(current_path)) - { - remove{}(entry, info, queue); - } + do_remove(entry, err); + if (err.ec) return; } - - if (fs::stdfs::remove(current_path, ec)) +#if defined(_WIN32) + if (!RemoveDirectoryW(current_path.c_str())) { - info.files_deleted.fetch_add(1, std::memory_order_relaxed); + ec.assign(GetLastError(), std::system_category()); } - else +#else + if (rmdir(current_path.c_str())) { - check_ec(ec, info, queue, current_path); + ec.assign(errno, std::system_category()); + } +#endif + } +#if defined(_WIN32) + else if (path_type == fs::file_type::directory_symlink) + { + if (!RemoveDirectoryW(current_path.c_str())) + { + ec.assign(GetLastError(), std::system_category()); } } - }; + else + { + if (!DeleteFileW(current_path.c_str())) + { + ec.assign(GetLastError(), std::system_category()); + } + } +#else + else + { + if (unlink(current_path.c_str())) + { + ec.assign(errno, std::system_category()); + } + } +#endif - static bool check_ec(const std::error_code& ec, - tld& info, - const queue& queue, - const fs::path& failure_point) + check_ec(ec, current_path, err); + } + + static bool check_ec(const std::error_code& ec, const fs::path& current_path, ErrorInfo& err) { if (ec) { - queue.terminate(); - - auto lck = std::unique_lock(info.ec_mutex); - if (!info.ec) - { - info.ec = ec; - info.failure_point = failure_point; - } + err.ec = ec; + err.failure_point = current_path; return true; } @@ -418,55 +536,15 @@ namespace vcpkg::Files return false; } } - - void operator()(const fs::path& current_path, tld& info, const queue& queue) const - { - std::error_code ec; - - const auto tmp_name = Strings::b32_encode(info.index++); - const auto tmp_path = info.tmp_directory / tmp_name; - - fs::stdfs::rename(current_path, tmp_path, ec); - if (check_ec(ec, info, queue, current_path)) return; - - queue.enqueue_action(actually_remove{std::move(tmp_path)}); - } }; - const auto path_type = fs::symlink_status(path, ec).type(); - - std::atomic files_deleted{0}; - - if (path_type == fs::file_type::directory) - { - std::uint64_t index = 0; - std::mutex ec_mutex; - - auto const tld_gen = [&] { - index += static_cast(1) << 32; - return remove::tld{path, index, files_deleted, ec_mutex, ec, failure_point}; - }; - - remove::queue queue{4, VCPKG_LINE_INFO, tld_gen}; - - // note: we don't actually start the queue running until the - // `join()`. This allows us to rename all the top-level files in - // peace, so that we don't get collisions. - auto main_tld = tld_gen(); - for (const auto& entry : fs::stdfs::directory_iterator(path)) - { - remove{}(entry, main_tld, queue); - } - - queue.join(VCPKG_LINE_INFO); - } - /* we need to do backoff on the removal of the top level directory, - since we need to place all moved files into that top level - directory, and so we can only delete the directory after all the + so we can only delete the directory after all the lower levels have been deleted. */ + + remove::ErrorInfo err; for (int backoff = 0; backoff < 5; ++backoff) { if (backoff) @@ -476,16 +554,16 @@ namespace vcpkg::Files std::this_thread::sleep_for(backoff_time); } - if (fs::stdfs::remove(path, ec)) + remove::do_remove(path, err); + if (!err.ec) { - files_deleted.fetch_add(1, std::memory_order_relaxed); break; } } - return files_deleted; + ec = std::move(err.ec); + failure_point = std::move(err.failure_point); } - virtual bool exists(const fs::path& path) const override { return fs::stdfs::exists(path); } virtual bool is_directory(const fs::path& path) const override { return fs::stdfs::is_directory(path); } virtual bool is_regular_file(const fs::path& path) const override { return fs::stdfs::is_regular_file(path); } virtual bool is_empty(const fs::path& path) const override { return fs::stdfs::is_empty(path); } @@ -563,7 +641,7 @@ namespace vcpkg::Files for (auto&& ext : EXTS) { auto p = fs::u8path(base + ext.c_str()); - if (Util::find(ret, p) == ret.end() && this->exists(p)) + if (Util::find(ret, p) == ret.end() && this->exists(VCPKG_LINE_INFO, p)) { ret.push_back(p); Debug::print("Found path: ", p.u8string(), '\n'); diff --git a/toolsrc/src/vcpkg/binaryparagraph.cpp b/toolsrc/src/vcpkg/binaryparagraph.cpp index 9be2310c69a..ef194f9f34b 100644 --- a/toolsrc/src/vcpkg/binaryparagraph.cpp +++ b/toolsrc/src/vcpkg/binaryparagraph.cpp @@ -56,7 +56,7 @@ namespace vcpkg BinaryParagraph::BinaryParagraph() = default; - BinaryParagraph::BinaryParagraph(std::unordered_map fields) + BinaryParagraph::BinaryParagraph(Parse::RawParagraph fields) { using namespace vcpkg::Parse; diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index 69a313c1a2f..6f14f46f8c8 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -64,8 +64,7 @@ namespace vcpkg::Build::Command std::set features_as_set(full_spec.features.begin(), full_spec.features.end()); features_as_set.emplace("core"); - const Build::BuildPackageConfig build_config{ - scfl, spec.triplet(), build_package_options, features_as_set}; + const Build::BuildPackageConfig build_config{scfl, spec.triplet(), build_package_options, features_as_set}; const auto build_timer = Chrono::ElapsedTimer::create_started(); const auto result = Build::build_package(paths, build_config, status_db); @@ -304,19 +303,17 @@ namespace vcpkg::Build const std::set& feature_list, const Triplet& triplet) { - return Util::fmap_flatten( - feature_list, - [&](std::string const& feature) -> std::vector { - if (feature == "core") - { - return filter_dependencies_to_features(scf.core_paragraph->depends, triplet); - } + return Util::fmap_flatten(feature_list, [&](std::string const& feature) -> std::vector { + if (feature == "core") + { + return filter_dependencies_to_features(scf.core_paragraph->depends, triplet); + } - auto maybe_feature = scf.find_feature(feature); - Checks::check_exit(VCPKG_LINE_INFO, maybe_feature.has_value()); + auto maybe_feature = scf.find_feature(feature); + Checks::check_exit(VCPKG_LINE_INFO, maybe_feature.has_value()); - return filter_dependencies_to_features(maybe_feature.get()->depends, triplet); - }); + return filter_dependencies_to_features(maybe_feature.get()->depends, triplet); + }); } static std::vector get_dependency_names(const SourceControlFile& scf, @@ -324,10 +321,7 @@ namespace vcpkg::Build const Triplet& triplet) { return Util::fmap(get_dependencies(scf, feature_list, triplet), - [&](const Features& feat) { - return feat.name; - } - ); + [&](const Features& feat) { return feat.name; }); } static std::vector compute_required_feature_specs(const BuildPackageConfig& config, @@ -335,8 +329,7 @@ namespace vcpkg::Build { const Triplet& triplet = config.triplet; - const std::vector dep_strings = - get_dependency_names(config.scf, config.feature_list, triplet); + const std::vector dep_strings = get_dependency_names(config.scf, config.feature_list, triplet); auto dep_fspecs = FeatureSpec::from_strings_and_triplet(dep_strings, triplet); Util::sort_unique_erase(dep_fspecs); @@ -439,8 +432,7 @@ namespace vcpkg::Build { const Toolset& toolset = paths.get_toolset(pre_build_info); const fs::path& cmake_exe_path = paths.get_tool_exe(Tools::CMAKE); - std::vector variables = - get_cmake_vars(paths, config, triplet, toolset); + std::vector variables = get_cmake_vars(paths, config, triplet, toolset); const std::string cmd_launch_cmake = System::make_cmake_cmd(cmake_exe_path, paths.ports_cmake, variables); @@ -571,13 +563,10 @@ namespace vcpkg::Build const auto timer = Chrono::ElapsedTimer::create_started(); - std::string command = - make_build_cmd(paths, pre_build_info, config, triplet); - std::unordered_map env = - make_env_passthrough(pre_build_info); + std::string command = make_build_cmd(paths, pre_build_info, config, triplet); + std::unordered_map env = make_env_passthrough(pre_build_info); - const int return_code = - System::cmd_execute_clean(command, env); + const int return_code = System::cmd_execute_clean(command, env); const auto buildtimeus = timer.microseconds(); const auto spec_string = spec.to_string(); @@ -864,8 +853,7 @@ namespace vcpkg::Build AbiEntry{status_it->get()->package.spec.name(), status_it->get()->package.abi}); } - const auto pre_build_info = - PreBuildInfo::from_triplet_file(paths, triplet, config.scfl); + const auto pre_build_info = PreBuildInfo::from_triplet_file(paths, triplet, config.scfl); auto maybe_abi_tag_and_file = compute_abi_tag(paths, config, pre_build_info, dependency_abis); @@ -1021,7 +1009,7 @@ namespace vcpkg::Build Commands::Version::version()); } - static BuildInfo inner_create_buildinfo(std::unordered_map pgh) + static BuildInfo inner_create_buildinfo(Parse::RawParagraph pgh) { Parse::ParagraphParser parser(std::move(pgh)); @@ -1078,8 +1066,7 @@ namespace vcpkg::Build BuildInfo read_build_info(const Files::Filesystem& fs, const fs::path& filepath) { - const Expected> pghs = - Paragraphs::get_single_paragraph(fs, filepath); + const Expected pghs = Paragraphs::get_single_paragraph(fs, filepath); Checks::check_exit(VCPKG_LINE_INFO, pghs.get() != nullptr, "Invalid BUILD_INFO file for package"); return inner_create_buildinfo(*pghs.get()); } @@ -1098,14 +1085,11 @@ namespace vcpkg::Build if (port) { - args.emplace_back( - "CMAKE_ENV_OVERRIDES_FILE", - port.value_or_exit(VCPKG_LINE_INFO).source_location / "environment-overrides.cmake"); + args.emplace_back("CMAKE_ENV_OVERRIDES_FILE", + port.value_or_exit(VCPKG_LINE_INFO).source_location / "environment-overrides.cmake"); } - const auto cmd_launch_cmake = System::make_cmake_cmd(cmake_exe_path, - ports_cmake_script_path, - args); + const auto cmd_launch_cmake = System::make_cmake_cmd(cmake_exe_path, ports_cmake_script_path, args); const auto ec_data = System::cmd_execute_and_capture_output(cmd_launch_cmake); Checks::check_exit(VCPKG_LINE_INFO, ec_data.exit_code == 0, ec_data.output); @@ -1137,51 +1121,49 @@ namespace vcpkg::Build { switch (maybe_option->second) { - case VcpkgTripletVar::TARGET_ARCHITECTURE : - pre_build_info.target_architecture = variable_value; - break; - case VcpkgTripletVar::CMAKE_SYSTEM_NAME : - pre_build_info.cmake_system_name = variable_value; - break; - case VcpkgTripletVar::CMAKE_SYSTEM_VERSION : - pre_build_info.cmake_system_version = variable_value; - break; - case VcpkgTripletVar::PLATFORM_TOOLSET : - pre_build_info.platform_toolset = - variable_value.empty() ? nullopt : Optional{variable_value}; - break; - case VcpkgTripletVar::VISUAL_STUDIO_PATH : - pre_build_info.visual_studio_path = - variable_value.empty() ? nullopt : Optional{variable_value}; - break; - case VcpkgTripletVar::CHAINLOAD_TOOLCHAIN_FILE : - pre_build_info.external_toolchain_file = - variable_value.empty() ? nullopt : Optional{variable_value}; - break; - case VcpkgTripletVar::BUILD_TYPE : - if (variable_value.empty()) - pre_build_info.build_type = nullopt; - else if (Strings::case_insensitive_ascii_equals(variable_value, "debug")) - pre_build_info.build_type = ConfigurationType::DEBUG; - else if (Strings::case_insensitive_ascii_equals(variable_value, "release")) - pre_build_info.build_type = ConfigurationType::RELEASE; - else - Checks::exit_with_message( + case VcpkgTripletVar::TARGET_ARCHITECTURE: + pre_build_info.target_architecture = variable_value; + break; + case VcpkgTripletVar::CMAKE_SYSTEM_NAME: pre_build_info.cmake_system_name = variable_value; break; + case VcpkgTripletVar::CMAKE_SYSTEM_VERSION: + pre_build_info.cmake_system_version = variable_value; + break; + case VcpkgTripletVar::PLATFORM_TOOLSET: + pre_build_info.platform_toolset = + variable_value.empty() ? nullopt : Optional{variable_value}; + break; + case VcpkgTripletVar::VISUAL_STUDIO_PATH: + pre_build_info.visual_studio_path = + variable_value.empty() ? nullopt : Optional{variable_value}; + break; + case VcpkgTripletVar::CHAINLOAD_TOOLCHAIN_FILE: + pre_build_info.external_toolchain_file = + variable_value.empty() ? nullopt : Optional{variable_value}; + break; + case VcpkgTripletVar::BUILD_TYPE: + if (variable_value.empty()) + pre_build_info.build_type = nullopt; + else if (Strings::case_insensitive_ascii_equals(variable_value, "debug")) + pre_build_info.build_type = ConfigurationType::DEBUG; + else if (Strings::case_insensitive_ascii_equals(variable_value, "release")) + pre_build_info.build_type = ConfigurationType::RELEASE; + else + Checks::exit_with_message( VCPKG_LINE_INFO, "Unknown setting for VCPKG_BUILD_TYPE: %s", variable_value); - break; - case VcpkgTripletVar::ENV_PASSTHROUGH : - pre_build_info.passthrough_env_vars = Strings::split(variable_value, ";"); - break; - case VcpkgTripletVar::EXTERNAL_FILES : - pre_build_info.external_files = - get_external_file_hashes( - paths, - Util::fmap(Strings::split(variable_value, ";"), - [](const std::string& path) - { - return fs::path{path}; - })); - break; + break; + case VcpkgTripletVar::ENV_PASSTHROUGH : + pre_build_info.passthrough_env_vars = Strings::split(variable_value, ";"); + break; + case VcpkgTripletVar::EXTERNAL_FILES : + pre_build_info.external_files = + get_external_file_hashes( + paths, + Util::fmap(Strings::split(variable_value, ";"), + [](const std::string& path) + { + return fs::path{path}; + })); + break; } } else @@ -1190,8 +1172,7 @@ namespace vcpkg::Build } } - pre_build_info.triplet_abi_tag = - get_triplet_abi(paths, pre_build_info, triplet); + pre_build_info.triplet_abi_tag = get_triplet_abi(paths, pre_build_info, triplet); return pre_build_info; } diff --git a/toolsrc/src/vcpkg/commands.cache.cpp b/toolsrc/src/vcpkg/commands.cache.cpp index c321de3b571..4c49db0045a 100644 --- a/toolsrc/src/vcpkg/commands.cache.cpp +++ b/toolsrc/src/vcpkg/commands.cache.cpp @@ -14,7 +14,7 @@ namespace vcpkg::Commands::Cache std::vector output; for (auto&& path : paths.get_filesystem().get_files_non_recursive(paths.packages)) { - const Expected> pghs = + const Expected pghs = Paragraphs::get_single_paragraph(paths.get_filesystem(), path / "CONTROL"); if (const auto p = pghs.get()) { diff --git a/toolsrc/src/vcpkg/commands.ci.cpp b/toolsrc/src/vcpkg/commands.ci.cpp index b4290baab21..f0f162f5ce2 100644 --- a/toolsrc/src/vcpkg/commands.ci.cpp +++ b/toolsrc/src/vcpkg/commands.ci.cpp @@ -236,12 +236,7 @@ namespace vcpkg::Commands::CI { auto triplet = p->spec.triplet(); - const Build::BuildPackageConfig build_config{ - *scfl, - triplet, - build_options, - p->feature_list - }; + const Build::BuildPackageConfig build_config{*scfl, triplet, build_options, p->feature_list}; auto dependency_abis = Util::fmap(p->computed_dependencies, [&](const PackageSpec& spec) -> Build::AbiEntry { @@ -253,14 +248,7 @@ namespace vcpkg::Commands::CI return {spec.name(), it->second}; }); const auto& pre_build_info = pre_build_info_cache.get_lazy( - triplet, - [&]() { - return Build::PreBuildInfo::from_triplet_file( - paths, - triplet, - *scfl); - } - ); + triplet, [&]() { return Build::PreBuildInfo::from_triplet_file(paths, triplet, *scfl); }); auto maybe_tag_and_file = Build::compute_abi_tag(paths, build_config, pre_build_info, dependency_abis); @@ -362,7 +350,7 @@ namespace vcpkg::Commands::CI } StatusParagraphs status_db = database_load_check(paths); - + Dependencies::PathsPortFileProvider provider(paths, args.overlay_ports.get()); const Build::BuildPackageOptions install_plan_options = { diff --git a/toolsrc/src/vcpkg/commands.dependinfo.cpp b/toolsrc/src/vcpkg/commands.dependinfo.cpp index 8394e0166d1..7c04a5a2f3c 100644 --- a/toolsrc/src/vcpkg/commands.dependinfo.cpp +++ b/toolsrc/src/vcpkg/commands.dependinfo.cpp @@ -5,12 +5,12 @@ #include #include #include -#include #include +#include -#include #include #include +#include using vcpkg::Dependencies::PathsPortFileProvider; @@ -171,14 +171,14 @@ namespace vcpkg::Commands::DependInfo { if (requested_feature_name == "*") { - for (auto &&feature_paragraph : (*source_control_file)->feature_paragraphs) + for (auto&& feature_paragraph : (*source_control_file)->feature_paragraphs) { collected_features.insert(std::addressof(Util::as_const(*feature_paragraph))); } continue; } auto maybe_feature = (*source_control_file)->find_feature(requested_feature_name); - if (auto &&feature_paragraph = maybe_feature.get()) + if (auto&& feature_paragraph = maybe_feature.get()) { collected_features.insert(std::addressof(Util::as_const(*feature_paragraph))); } @@ -197,7 +197,8 @@ namespace vcpkg::Commands::DependInfo { for (const auto& dependency : feature_paragraph->depends) { - build_dependencies_list(packages_to_keep, dependency.depend.name, source_control_files, switches); + build_dependencies_list( + packages_to_keep, dependency.depend.name, source_control_files, switches); } } } @@ -214,9 +215,9 @@ namespace vcpkg::Commands::DependInfo // TODO: Optimize implementation, current implementation needs to load all ports from disk which is too slow. PathsPortFileProvider provider(paths, args.overlay_ports.get()); - auto source_control_files = Util::fmap(provider.load_all_control_files(), [](auto&& scfl) -> const SourceControlFile * { - return scfl->source_control_file.get(); - }); + auto source_control_files = + Util::fmap(provider.load_all_control_files(), + [](auto&& scfl) -> const SourceControlFile* { return scfl->source_control_file.get(); }); if (args.command_arguments.size() >= 1) { diff --git a/toolsrc/src/vcpkg/commands.import.cpp b/toolsrc/src/vcpkg/commands.import.cpp index 40f5a434c4b..c18d788c584 100644 --- a/toolsrc/src/vcpkg/commands.import.cpp +++ b/toolsrc/src/vcpkg/commands.import.cpp @@ -108,7 +108,7 @@ namespace vcpkg::Commands::Import const fs::path include_directory(args.command_arguments[1]); const fs::path project_directory(args.command_arguments[2]); - const Expected> pghs = + const Expected pghs = Paragraphs::get_single_paragraph(paths.get_filesystem(), control_file_path); Checks::check_exit(VCPKG_LINE_INFO, pghs.get() != nullptr, diff --git a/toolsrc/src/vcpkg/commands.search.cpp b/toolsrc/src/vcpkg/commands.search.cpp index 3d8387ee128..943233502cd 100644 --- a/toolsrc/src/vcpkg/commands.search.cpp +++ b/toolsrc/src/vcpkg/commands.search.cpp @@ -2,12 +2,12 @@ #include #include +#include #include #include #include #include #include -#include using vcpkg::Dependencies::PathsPortFileProvider; @@ -67,9 +67,9 @@ namespace vcpkg::Commands::Search const bool full_description = Util::Sets::contains(options.switches, OPTION_FULLDESC); PathsPortFileProvider provider(paths, args.overlay_ports.get()); - auto source_paragraphs = Util::fmap(provider.load_all_control_files(), [](auto&& port) -> const SourceControlFile * { - return port->source_control_file.get(); - }); + auto source_paragraphs = + Util::fmap(provider.load_all_control_files(), + [](auto&& port) -> const SourceControlFile* { return port->source_control_file.get(); }); if (args.command_arguments.empty()) { diff --git a/toolsrc/src/vcpkg/dependencies.cpp b/toolsrc/src/vcpkg/dependencies.cpp index 50c310dbbc1..c175cc86f0a 100644 --- a/toolsrc/src/vcpkg/dependencies.cpp +++ b/toolsrc/src/vcpkg/dependencies.cpp @@ -108,9 +108,8 @@ namespace vcpkg::Dependencies static ClusterSource cluster_from_scf(const SourceControlFileLocation& scfl, Triplet t) { ClusterSource ret; - ret.build_edges.emplace("core", - filter_dependencies_to_specs(scfl.source_control_file->core_paragraph->depends, - t)); + ret.build_edges.emplace("core", + filter_dependencies_to_specs(scfl.source_control_file->core_paragraph->depends, t)); for (const auto& feature : scfl.source_control_file->feature_paragraphs) ret.build_edges.emplace(feature->name, filter_dependencies_to_specs(feature->depends, t)); @@ -123,22 +122,23 @@ namespace vcpkg::Dependencies const PortFileProvider& m_provider; }; - std::string to_output_string(RequestType request_type, - const CStringView s, - const Build::BuildPackageOptions& options, + std::string to_output_string(RequestType request_type, + const CStringView s, + const Build::BuildPackageOptions& options, const fs::path& install_port_path, const fs::path& default_port_path) { - if (!default_port_path.empty() - && !Strings::case_insensitive_ascii_starts_with(install_port_path.u8string(), - default_port_path.u8string())) + if (!default_port_path.empty() && + !Strings::case_insensitive_ascii_starts_with(install_port_path.u8string(), default_port_path.u8string())) { const char* const from_head = options.use_head_version == Build::UseHeadVersion::YES ? " (from HEAD)" : ""; switch (request_type) { - case RequestType::AUTO_SELECTED: return Strings::format(" * %s%s -- %s", s, from_head, install_port_path.u8string()); - case RequestType::USER_REQUESTED: return Strings::format(" %s%s -- %s", s, from_head, install_port_path.u8string()); - default: Checks::unreachable(VCPKG_LINE_INFO); + case RequestType::AUTO_SELECTED: + return Strings::format(" * %s%s -- %s", s, from_head, install_port_path.u8string()); + case RequestType::USER_REQUESTED: + return Strings::format(" %s%s -- %s", s, from_head, install_port_path.u8string()); + default: Checks::unreachable(VCPKG_LINE_INFO); } } return to_output_string(request_type, s, options); @@ -152,7 +152,7 @@ namespace vcpkg::Dependencies switch (request_type) { - case RequestType::AUTO_SELECTED: return Strings::format(" * %s%s", s, from_head); + case RequestType::AUTO_SELECTED: return Strings::format(" * %s%s", s, from_head); case RequestType::USER_REQUESTED: return Strings::format(" %s%s", s, from_head); default: Checks::unreachable(VCPKG_LINE_INFO); } @@ -162,7 +162,7 @@ namespace vcpkg::Dependencies { switch (request_type) { - case RequestType::AUTO_SELECTED: return Strings::format(" * %s", s); + case RequestType::AUTO_SELECTED: return Strings::format(" * %s", s); case RequestType::USER_REQUESTED: return Strings::format(" %s", s); default: Checks::unreachable(VCPKG_LINE_INFO); } @@ -293,7 +293,8 @@ namespace vcpkg::Dependencies MapPortFileProvider::MapPortFileProvider(const std::unordered_map& map) : ports(map) - {} + { + } Optional MapPortFileProvider::get_control_file(const std::string& spec) const { @@ -304,11 +305,11 @@ namespace vcpkg::Dependencies std::vector MapPortFileProvider::load_all_control_files() const { - return Util::fmap(ports, [](auto&& kvpair) -> const SourceControlFileLocation * { return &kvpair.second; }); + return Util::fmap(ports, [](auto&& kvpair) -> const SourceControlFileLocation* { return &kvpair.second; }); } PathsPortFileProvider::PathsPortFileProvider(const vcpkg::VcpkgPaths& paths, - const std::vector* ports_dirs_paths) + const std::vector* ports_dirs_paths) : filesystem(paths.get_filesystem()) { if (ports_dirs_paths) @@ -325,7 +326,7 @@ namespace vcpkg::Dependencies overlay.string()); Checks::check_exit(VCPKG_LINE_INFO, - fs::stdfs::is_directory(overlay), + fs::is_directory(status(overlay)), "Error: Path \"%s\" must be a directory", overlay.string()); @@ -354,7 +355,7 @@ namespace vcpkg::Dependencies { if (scf->get()->core_paragraph->name == spec) { - SourceControlFileLocation scfl{ std::move(*scf), ports_dir }; + SourceControlFileLocation scfl{std::move(*scf), ports_dir}; auto it = cache.emplace(spec, std::move(scfl)); return it.first->second; } @@ -362,9 +363,8 @@ namespace vcpkg::Dependencies else { vcpkg::print_error_message(maybe_scf.error()); - Checks::exit_with_message(VCPKG_LINE_INFO, - "Error: Failed to load port from %s", - spec, ports_dir.u8string()); + Checks::exit_with_message( + VCPKG_LINE_INFO, "Error: Failed to load port from %s", spec, ports_dir.u8string()); } } @@ -373,7 +373,7 @@ namespace vcpkg::Dependencies { if (scf->get()->core_paragraph->name == spec) { - SourceControlFileLocation scfl{ std::move(*scf), ports_dir / spec }; + SourceControlFileLocation scfl{std::move(*scf), ports_dir / spec}; auto it = cache.emplace(spec, std::move(scfl)); return it.first->second; } @@ -399,7 +399,7 @@ namespace vcpkg::Dependencies auto port_name = scf->get()->core_paragraph->name; if (cache.find(port_name) == cache.end()) { - SourceControlFileLocation scfl{ std::move(*scf), ports_dir }; + SourceControlFileLocation scfl{std::move(*scf), ports_dir}; auto it = cache.emplace(port_name, std::move(scfl)); ret.emplace_back(&it.first->second); } @@ -407,9 +407,8 @@ namespace vcpkg::Dependencies else { vcpkg::print_error_message(maybe_scf.error()); - Checks::exit_with_message(VCPKG_LINE_INFO, - "Error: Failed to load port from %s", - ports_dir.u8string()); + Checks::exit_with_message( + VCPKG_LINE_INFO, "Error: Failed to load port from %s", ports_dir.u8string()); } continue; } @@ -421,7 +420,7 @@ namespace vcpkg::Dependencies auto port_name = scf->core_paragraph->name; if (cache.find(port_name) == cache.end()) { - SourceControlFileLocation scfl{ std::move(scf), ports_dir / port_name }; + SourceControlFileLocation scfl{std::move(scf), ports_dir / port_name}; auto it = cache.emplace(port_name, std::move(scfl)); ret.emplace_back(&it.first->second); } @@ -772,9 +771,10 @@ namespace vcpkg::Dependencies /// Map of all source control files in the current environment. /// Feature specifications to resolve dependencies for. /// Status of installed packages in the current environment. - std::vector create_feature_install_plan(const std::unordered_map& map, - const std::vector& specs, - const StatusParagraphs& status_db) + std::vector create_feature_install_plan( + const std::unordered_map& map, + const std::vector& specs, + const StatusParagraphs& status_db) { MapPortFileProvider provider(map); return create_feature_install_plan(provider, specs, status_db); @@ -836,9 +836,8 @@ namespace vcpkg::Dependencies { // If it will be transiently uninstalled, we need to issue a full installation command auto* pscfl = p_cluster->source.value_or_exit(VCPKG_LINE_INFO).scfl; - Checks::check_exit(VCPKG_LINE_INFO, - pscfl != nullptr, - "Error: Expected a SourceControlFileLocation to exist"); + Checks::check_exit( + VCPKG_LINE_INFO, pscfl != nullptr, "Error: Expected a SourceControlFileLocation to exist"); auto&& scfl = *pscfl; auto dep_specs = Util::fmap(m_graph_plan->install_graph.adjacency_list(p_cluster), @@ -918,7 +917,9 @@ namespace vcpkg::Dependencies PackageGraph::~PackageGraph() = default; - void print_plan(const std::vector& action_plan, const bool is_recursive, const fs::path& default_ports_dir) + void print_plan(const std::vector& action_plan, + const bool is_recursive, + const fs::path& default_ports_dir) { std::vector remove_plans; std::vector rebuilt_plans; @@ -975,13 +976,10 @@ namespace vcpkg::Dependencies static auto actions_to_output_string = [&](const std::vector& v) { return Strings::join("\n", v, [&](const InstallPlanAction* p) { - if (auto * pscfl = p->source_control_file_location.get()) + if (auto* pscfl = p->source_control_file_location.get()) { - return to_output_string(p->request_type, - p->displayname(), - p->build_options, - pscfl->source_location, - default_ports_dir); + return to_output_string( + p->request_type, p->displayname(), p->build_options, pscfl->source_location, default_ports_dir); } return to_output_string(p->request_type, p->displayname(), p->build_options); diff --git a/toolsrc/src/vcpkg/install.cpp b/toolsrc/src/vcpkg/install.cpp index 32af57b39df..165f13126a6 100644 --- a/toolsrc/src/vcpkg/install.cpp +++ b/toolsrc/src/vcpkg/install.cpp @@ -331,10 +331,8 @@ namespace vcpkg::Install auto result = [&]() -> Build::ExtendedBuildResult { const auto& scfl = action.source_control_file_location.value_or_exit(VCPKG_LINE_INFO); - const Build::BuildPackageConfig build_config{scfl, - action.spec.triplet(), - action.build_options, - action.feature_list}; + const Build::BuildPackageConfig build_config{ + scfl, action.spec.triplet(), action.build_options, action.feature_list}; return Build::build_package(paths, build_config, status_db); }(); diff --git a/toolsrc/src/vcpkg/logicexpression.cpp b/toolsrc/src/vcpkg/logicexpression.cpp new file mode 100644 index 00000000000..0cf08ee0395 --- /dev/null +++ b/toolsrc/src/vcpkg/logicexpression.cpp @@ -0,0 +1,268 @@ + +#include "pch.h" + +#include +#include +#include + +#include +#include + +namespace vcpkg +{ + struct ParseError + { + ParseError(int column, std::string line, std::string message) : column(column), line(line), message(message) {} + + const int column; + const std::string line; + const std::string message; + + void print_error() const + { + System::print2(System::Color::error, + "Error: ", + message, + "\n" + " on expression: \"", + line, + "\"\n", + " ", + std::string(column, ' '), + "^\n"); + Checks::exit_fail(VCPKG_LINE_INFO); + } + }; + + // logic expression supports the following : + // primary-expression: + // ( logic-expression ) + // identifier + // identifier: + // alpha-numeric string of characters + // logic-expression: <- this is the entry point + // not-expression + // not-expression | logic-expression + // not-expression & logic-expression + // not-expression: + // ! primary-expression + // primary-expression + // + // | and & have equal precidence and cannot be used together at the same nesting level + // for example a|b&c is not allowd but (a|b)&c and a|(b&c) are allowed. + class ExpressionParser + { + public: + ExpressionParser(const std::string& str, const std::string& evaluation_context) + : raw_text(str), evaluation_context(evaluation_context) + { + go_to_begin(); + + final_result = logic_expression(); + + if (current_iter != raw_text.end()) + { + add_error("Invalid logic expression"); + } + + if (err) + { + err->print_error(); + final_result = false; + } + } + + bool get_result() const { return final_result; } + + bool has_error() const { return err == nullptr; } + + private: + bool final_result; + + std::string::const_iterator current_iter; + const std::string& raw_text; + char current_char; + + const std::string& evaluation_context; + + std::unique_ptr err; + + void add_error(std::string message, int column = -1) + { + // avoid castcading errors by only saving the first + if (!err) + { + if (column < 0) + { + column = current_column(); + } + err = std::make_unique(column, raw_text, message); + } + + // Avoid error loops by skipping to the end + skip_to_end(); + } + + int current_column() const { return static_cast(current_iter - raw_text.begin()); } + + void go_to_begin() + { + current_iter = raw_text.begin(); + current_char = (current_iter != raw_text.end() ? *current_iter : current_char); + + if (current_char == ' ' || current_char == '\t') + { + next_skip_whitespace(); + } + } + void skip_to_end() + { + current_iter = raw_text.end(); + current_char = '\0'; + } + char current() const { return current_char; } + char next() + { + if (current_char != '\0') + { + current_iter++; + current_char = (current_iter != raw_text.end() ? *current_iter : '\0'); + } + return current(); + } + void skip_whitespace() + { + while (current_char == ' ' || current_char == '\t') + { + current_char = next(); + } + } + char next_skip_whitespace() + { + next(); + skip_whitespace(); + return current_char; + } + + static bool is_alphanum(char ch) + { + return (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') || (ch >= '0' && ch <= '9') || (ch == '-'); + } + + bool evaluate_identifier(const std::string name) const + { + return evaluation_context.find(name) != std::string::npos; + } + + // identifier: + // alpha-numeric string of characters + bool identifier_expression() + { + auto curr = current(); + std::string name; + + for (curr = current(); is_alphanum(curr); curr = next()) + { + name += curr; + } + + if (name.empty()) + { + add_error("Invalid logic expression, unexpected character"); + return false; + } + + bool result = evaluate_identifier(name); + skip_whitespace(); + return result; + } + + // not-expression: + // ! primary-expression + // primary-expression + bool not_expression() + { + if (current() == '!') + { + next_skip_whitespace(); + return !primary_expression(); + } + + return primary_expression(); + } + + template + bool logic_expression_helper(bool seed) + { + do + { + // Support chains of the operator to avoid breaking backwards compatability + while (next() == oper) + { + }; + seed = operation(not_expression(), seed); + + } while (current() == oper); + + if (current() == other) + { + add_error("Mixing & and | is not allowed, Use () to specify order of operations."); + } + + skip_whitespace(); + return seed; + } + static bool and_helper(bool left, bool right) { return left && right; } + static bool or_helper(bool left, bool right) { return left || right; } + + // logic-expression: <- entry point + // not-expression + // not-expression | logic-expression + // not-expression & logic-expression + bool logic_expression() + { + auto result = not_expression(); + + switch (current()) + { + case '|': + { + return logic_expression_helper<'|', '&', or_helper>(result); + } + case '&': + { + return logic_expression_helper<'&', '|', and_helper>(result); + } + default: return result; + } + } + + // primary-expression: + // ( logic-expression ) + // identifier + bool primary_expression() + { + if (current() == '(') + { + next_skip_whitespace(); + bool result = logic_expression(); + if (current() != ')') + { + add_error("Error: missing closing )"); + return result; + } + next_skip_whitespace(); + return result; + } + + return identifier_expression(); + } + }; + + bool evaluate_expression(const std::string& expression, const std::string& evaluation_context) + { + ExpressionParser parser(expression, evaluation_context); + + return parser.get_result(); + } +} diff --git a/toolsrc/src/vcpkg/paragraphs.cpp b/toolsrc/src/vcpkg/paragraphs.cpp index 21ef2c4d9c5..1232b940a91 100644 --- a/toolsrc/src/vcpkg/paragraphs.cpp +++ b/toolsrc/src/vcpkg/paragraphs.cpp @@ -116,7 +116,7 @@ namespace vcpkg::Paragraphs skip_spaces(ch); } - void get_paragraph(char& ch, std::unordered_map& fields) + void get_paragraph(char& ch, RawParagraph& fields) { fields.clear(); std::string fieldname; @@ -141,9 +141,9 @@ namespace vcpkg::Paragraphs } public: - std::vector> get_paragraphs() + std::vector get_paragraphs() { - std::vector> paragraphs; + std::vector paragraphs; char ch; peek(ch); @@ -164,8 +164,19 @@ namespace vcpkg::Paragraphs } }; - Expected> get_single_paragraph(const Files::Filesystem& fs, - const fs::path& control_path) + Expected parse_single_paragraph(const std::string& str) + { + const std::vector p = Parser(str.c_str(), str.c_str() + str.size()).get_paragraphs(); + + if (p.size() == 1) + { + return p.at(0); + } + + return std::error_code(ParagraphParseResult::EXPECTED_ONE_PARAGRAPH); + } + + Expected get_single_paragraph(const Files::Filesystem& fs, const fs::path& control_path) { const Expected contents = fs.read_contents(control_path); if (auto spgh = contents.get()) @@ -176,8 +187,7 @@ namespace vcpkg::Paragraphs return contents.error(); } - Expected>> get_paragraphs(const Files::Filesystem& fs, - const fs::path& control_path) + Expected> get_paragraphs(const Files::Filesystem& fs, const fs::path& control_path) { const Expected contents = fs.read_contents(control_path); if (auto spgh = contents.get()) @@ -188,27 +198,14 @@ namespace vcpkg::Paragraphs return contents.error(); } - Expected> parse_single_paragraph(const std::string& str) - { - const std::vector> p = - Parser(str.c_str(), str.c_str() + str.size()).get_paragraphs(); - - if (p.size() == 1) - { - return p.at(0); - } - - return std::error_code(ParagraphParseResult::EXPECTED_ONE_PARAGRAPH); - } - - Expected>> parse_paragraphs(const std::string& str) + Expected> parse_paragraphs(const std::string& str) { return Parser(str.c_str(), str.c_str() + str.size()).get_paragraphs(); } ParseExpected try_load_port(const Files::Filesystem& fs, const fs::path& path) { - Expected>> pghs = get_paragraphs(fs, path / "CONTROL"); + Expected> pghs = get_paragraphs(fs, path / "CONTROL"); if (auto vector_pghs = pghs.get()) { return SourceControlFile::parse_control_file(std::move(*vector_pghs)); @@ -221,7 +218,7 @@ namespace vcpkg::Paragraphs Expected try_load_cached_package(const VcpkgPaths& paths, const PackageSpec& spec) { - Expected>> pghs = + Expected> pghs = get_paragraphs(paths.get_filesystem(), paths.package_dir(spec) / "CONTROL"); if (auto p = pghs.get()) diff --git a/toolsrc/src/vcpkg/parse.cpp b/toolsrc/src/vcpkg/parse.cpp index d50296cf819..9c9968249a3 100644 --- a/toolsrc/src/vcpkg/parse.cpp +++ b/toolsrc/src/vcpkg/parse.cpp @@ -6,8 +6,7 @@ namespace vcpkg::Parse { - static Optional remove_field(std::unordered_map* fields, - const std::string& fieldname) + static Optional remove_field(RawParagraph* fields, const std::string& fieldname) { auto it = fields->find(fieldname); if (it == fields->end()) diff --git a/toolsrc/src/vcpkg/remove.cpp b/toolsrc/src/vcpkg/remove.cpp index 84ec6c981b9..65e00668af9 100644 --- a/toolsrc/src/vcpkg/remove.cpp +++ b/toolsrc/src/vcpkg/remove.cpp @@ -73,7 +73,7 @@ namespace vcpkg::Remove if (ec) { #if defined(_WIN32) - fs::stdfs::permissions(target, fs::stdfs::perms::owner_all | fs::stdfs::perms::group_all, ec); + fs::stdfs::permissions(target, fs::perms::owner_all | fs::perms::group_all, ec); fs.remove(target, ec); if (ec) { @@ -86,7 +86,7 @@ namespace vcpkg::Remove #endif } } - else if (!fs::stdfs::exists(status)) + else if (!fs::exists(status)) { System::printf(System::Color::warning, "Warning: %s: file not found\n", target.u8string()); } diff --git a/toolsrc/src/vcpkg/sourceparagraph.cpp b/toolsrc/src/vcpkg/sourceparagraph.cpp index 5542ef92368..ebb9cd4f469 100644 --- a/toolsrc/src/vcpkg/sourceparagraph.cpp +++ b/toolsrc/src/vcpkg/sourceparagraph.cpp @@ -1,5 +1,6 @@ #include "pch.h" +#include #include #include #include @@ -144,7 +145,7 @@ namespace vcpkg } ParseExpected SourceControlFile::parse_control_file( - std::vector>&& control_paragraphs) + std::vector&& control_paragraphs) { if (control_paragraphs.size() == 0) { @@ -224,15 +225,8 @@ namespace vcpkg std::vector ret; for (auto&& dep : deps) { - auto qualifiers = Strings::split(dep.qualifier, "&"); - if (std::all_of(qualifiers.begin(), qualifiers.end(), [&](const std::string& qualifier) { - if (qualifier.empty()) return true; - if (qualifier[0] == '!') - { - return t.canonical_name().find(qualifier.substr(1)) == std::string::npos; - } - return t.canonical_name().find(qualifier) != std::string::npos; - })) + const auto& qualifier = dep.qualifier; + if (qualifier.empty() || evaluate_expression(qualifier, t.canonical_name())) { ret.emplace_back(dep.name()); } @@ -240,21 +234,13 @@ namespace vcpkg return ret; } - std::vector filter_dependencies_to_features(const std::vector& deps, - const Triplet& t) + std::vector filter_dependencies_to_features(const std::vector& deps, const Triplet& t) { std::vector ret; for (auto&& dep : deps) { - auto qualifiers = Strings::split(dep.qualifier, "&"); - if (std::all_of(qualifiers.begin(), qualifiers.end(), [&](const std::string& qualifier) { - if (qualifier.empty()) return true; - if (qualifier[0] == '!') - { - return t.canonical_name().find(qualifier.substr(1)) == std::string::npos; - } - return t.canonical_name().find(qualifier) != std::string::npos; - })) + const auto& qualifier = dep.qualifier; + if (qualifier.empty() || evaluate_expression(qualifier, t.canonical_name())) { ret.emplace_back(dep.depend); } diff --git a/toolsrc/src/vcpkg/statusparagraph.cpp b/toolsrc/src/vcpkg/statusparagraph.cpp index 86946a31abc..f7e00f21cbb 100644 --- a/toolsrc/src/vcpkg/statusparagraph.cpp +++ b/toolsrc/src/vcpkg/statusparagraph.cpp @@ -24,7 +24,7 @@ namespace vcpkg .push_back('\n'); } - StatusParagraph::StatusParagraph(std::unordered_map&& fields) + StatusParagraph::StatusParagraph(Parse::RawParagraph&& fields) : want(Want::ERROR_STATE), state(InstallState::ERROR_STATE) { auto status_it = fields.find(BinaryParagraphRequiredField::STATUS); diff --git a/toolsrc/src/vcpkg/userconfig.cpp b/toolsrc/src/vcpkg/userconfig.cpp index a7c4e276552..a3c019be7e8 100644 --- a/toolsrc/src/vcpkg/userconfig.cpp +++ b/toolsrc/src/vcpkg/userconfig.cpp @@ -51,7 +51,7 @@ namespace vcpkg { const auto& pghs = *p_pghs; - std::unordered_map keys; + Parse::RawParagraph keys; if (pghs.size() > 0) keys = pghs[0]; for (size_t x = 1; x < pghs.size(); ++x) diff --git a/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp b/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp index 7a28fb571a0..e48340df7a3 100644 --- a/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp +++ b/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp @@ -148,9 +148,8 @@ namespace vcpkg } if (Strings::starts_with(arg, "--scripts-root=")) { - parse_cojoined_value(arg.substr(sizeof("--scripts-root=") - 1), - "--scripts-root", - args.scripts_root_dir); + parse_cojoined_value( + arg.substr(sizeof("--scripts-root=") - 1), "--scripts-root", args.scripts_root_dir); continue; } if (arg == "--triplet") @@ -161,16 +160,14 @@ namespace vcpkg } if (Strings::starts_with(arg, "--overlay-ports=")) { - parse_cojoined_multivalue(arg.substr(sizeof("--overlay-ports=") - 1), - "--overlay-ports", - args.overlay_ports); + parse_cojoined_multivalue( + arg.substr(sizeof("--overlay-ports=") - 1), "--overlay-ports", args.overlay_ports); continue; } if (Strings::starts_with(arg, "--overlay-triplets=")) { - parse_cojoined_multivalue(arg.substr(sizeof("--overlay-triplets=") - 1), - "--overlay-triplets", - args.overlay_triplets); + parse_cojoined_multivalue( + arg.substr(sizeof("--overlay-triplets=") - 1), "--overlay-triplets", args.overlay_triplets); continue; } if (arg == "--debug") @@ -224,11 +221,11 @@ namespace vcpkg { const auto& key = arg.substr(0, eq_pos); const auto& value = arg.substr(eq_pos + 1); - + auto it = args.optional_command_arguments.find(key); if (args.optional_command_arguments.end() == it) { - args.optional_command_arguments.emplace(key, std::vector { value }); + args.optional_command_arguments.emplace(key, std::vector{value}); } else { @@ -370,8 +367,9 @@ namespace vcpkg { if (v.empty()) { - System::printf( - System::Color::error, "Error: The option '%s' must be passed an argument.\n", option.name); + System::printf(System::Color::error, + "Error: The option '%s' must be passed an argument.\n", + option.name); failed = true; } else @@ -389,7 +387,7 @@ namespace vcpkg System::printf(System::Color::error, "Unknown option(s) for command '%s':\n", this->command); for (auto&& option : options_copy) { - System::print2(" ", option.first, "\n"); + System::print2(" '", option.first, "'\n"); } System::print2("\n"); failed = true; @@ -425,12 +423,9 @@ namespace vcpkg System::printf(" %-40s %s\n", (option.name + "=..."), option.short_help_text); } System::printf(" %-40s %s\n", "--triplet ", "Set the default triplet for unqualified packages"); - System::printf(" %-40s %s\n", - "--overlay-ports=", - "Specify directories to be used when searching for ports"); - System::printf(" %-40s %s\n", - "--overlay-triplets=", - "Specify directories containing triplets files"); + System::printf( + " %-40s %s\n", "--overlay-ports=", "Specify directories to be used when searching for ports"); + System::printf(" %-40s %s\n", "--overlay-triplets=", "Specify directories containing triplets files"); System::printf(" %-40s %s\n", "--vcpkg-root ", "Specify the vcpkg directory to use instead of current directory or tool directory"); diff --git a/toolsrc/src/vcpkg/vcpkgpaths.cpp b/toolsrc/src/vcpkg/vcpkgpaths.cpp index d16acf2e8b1..c5b5749ffd6 100644 --- a/toolsrc/src/vcpkg/vcpkgpaths.cpp +++ b/toolsrc/src/vcpkg/vcpkgpaths.cpp @@ -42,7 +42,7 @@ namespace vcpkg if (auto odp = overriddenDownloadsPath.get()) { auto asPath = fs::u8path(*odp); - if (!fs::stdfs::is_directory(asPath)) + if (!fs::is_directory(status(asPath))) { Metrics::g_metrics.lock()->track_property("error", "Invalid VCPKG_DOWNLOADS override directory."); Checks::exit_with_message( @@ -71,12 +71,12 @@ namespace vcpkg { if (scripts_dir->empty() || !fs::stdfs::is_directory(*scripts_dir)) { - Metrics::g_metrics.lock()->track_property("error", "Invalid scripts override directory."); - Checks::exit_with_message( - VCPKG_LINE_INFO, - "Invalid scripts override directory: %s; " - "create that directory or unset --scripts-root to use the default scripts location.", - scripts_dir->u8string()); + Metrics::g_metrics.lock()->track_property("error", "Invalid scripts override directory."); + Checks::exit_with_message( + VCPKG_LINE_INFO, + "Invalid scripts override directory: %s; " + "create that directory or unset --scripts-root to use the default scripts location.", + scripts_dir->u8string()); } paths.scripts = *scripts_dir; @@ -147,26 +147,25 @@ namespace vcpkg } Util::sort_unique_erase(output); return output; - }); + }); } const fs::path VcpkgPaths::get_triplet_file_path(const Triplet& triplet) const { - return m_triplets_cache.get_lazy(triplet, [&]()-> auto { - for (auto&& triplet_dir : triplets_dirs) - { - auto&& path = triplet_dir / (triplet.canonical_name() + ".cmake"); - if (this->get_filesystem().exists(path)) + return m_triplets_cache.get_lazy( + triplet, [&]() -> auto { + for (auto&& triplet_dir : triplets_dirs) { - return path; + auto&& path = triplet_dir / (triplet.canonical_name() + ".cmake"); + if (this->get_filesystem().exists(path)) + { + return path; + } } - } - Checks::exit_with_message(VCPKG_LINE_INFO, - "Error: Triplet file %s.cmake not found", - triplet.canonical_name()); - }); - + Checks::exit_with_message( + VCPKG_LINE_INFO, "Error: Triplet file %s.cmake not found", triplet.canonical_name()); + }); } const fs::path& VcpkgPaths::get_tool_exe(const std::string& tool) const diff --git a/toolsrc/vcpkg.sln b/toolsrc/vcpkg.sln index 8d0c849c6ab..b9f6ade652b 100644 --- a/toolsrc/vcpkg.sln +++ b/toolsrc/vcpkg.sln @@ -1,4 +1,4 @@ - + Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 VisualStudioVersion = 14.0.25420.1 diff --git a/toolsrc/vcpkglib/vcpkglib.vcxproj b/toolsrc/vcpkglib/vcpkglib.vcxproj index d28bae8ec52..568d316c643 100644 --- a/toolsrc/vcpkglib/vcpkglib.vcxproj +++ b/toolsrc/vcpkglib/vcpkglib.vcxproj @@ -249,6 +249,7 @@ + diff --git a/toolsrc/vcpkglib/vcpkglib.vcxproj.filters b/toolsrc/vcpkglib/vcpkglib.vcxproj.filters index aec56b039bb..1074a51165a 100644 --- a/toolsrc/vcpkglib/vcpkglib.vcxproj.filters +++ b/toolsrc/vcpkglib/vcpkglib.vcxproj.filters @@ -108,6 +108,9 @@ Source Files\vcpkg + + Source Files\vcpkg + Source Files\vcpkg diff --git a/toolsrc/vcpkgtest/vcpkgtest.vcxproj b/toolsrc/vcpkgtest/vcpkgtest.vcxproj index 530dfbc5dc3..d656de74787 100644 --- a/toolsrc/vcpkgtest/vcpkgtest.vcxproj +++ b/toolsrc/vcpkgtest/vcpkgtest.vcxproj @@ -19,19 +19,19 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -39,8 +39,8 @@ - - + + {F27B8DB0-1279-4AF8-A2E3-1D49C4F0220D} diff --git a/toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters b/toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters index d9808ca896a..74a746af107 100644 --- a/toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters +++ b/toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters @@ -15,43 +15,43 @@ - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files @@ -63,4 +63,4 @@ Header Files - \ No newline at end of file +