==== Changes Related to manifests ====
* Add the `manifests` feature flag
* This only says whether we look for a `vcpkg.json` in the cwd, not
whether we support parsing manifests (for ports, for example)
* Changes to the manifests RFC
* `"authors"` -> `"maintainers"`
* `--x-classic-mode` -> `-manifests` \in `vcpkg_feature_flags`
* reserve `"core"` in addition to `"default"`, since that's already
reserved for features
* Add a small helper note about what identifiers must look like
* `<license-string>`: SPDX v3.8 -> v3.9
* `"feature"."description"` is allowed to be an array of strings as well
* `"version"` -> `"version-string"` for forward-compat with versions
RFC
* Add the `--feature-flags` option
* Add the ability to turn off feature flags via passing
`-<feature-flag>` to `VCPKG_FEATURE_FLAGS` or `--feature-flags`
* Add CMake toolchain support for manifests
* Requires either:
* a feature flag of `manifests` in either `Env{VCPKG_FEATURE_FLAGS}`
or `VCPKG_FEATURE_FLAGS`
* Passing the `VCPKG_ENABLE_MANIFESTS` option
* The toolchain will install your packages to
`${VCPKG_MANIFEST_DIR}/vcpkg_installed`.
* Add MSBuild `vcpkg integrate install` support for manifests
* Requires `VcpkgEnableManifest` to be true
* `vcpkg create` creates a port that has a `vcpkg.json` instead of a
`CONTROL`
* argparse, abseil, 3fd, and avisynthplus ports switched to manifest
from CONTROL
* Add support for `--x-manifest-root`, as well as code for finding it if
not passed
* Add support for parsing manifests!
* Add a filesystem lock!
==== Important Changes which are somewhat unrelated to manifests ====
* Rename `logicexpression.{h,cpp}` to `platform-expression.{h,cpp}`
* Add `PlatformExpression` type which takes the place of the old logic
expression
* Split the parsing of platform expressions from checking whether
they're true or not
* Eagerly parse PlatformExpressions as opposed to leaving them as
strings
* Add checking for feature flag consistency
* i.e., if `-binarycaching` is passed, you shouldn't be passing
`--binarysource`
* Add the `Json::Reader` type which, with the help of user-defined
visitors, converts JSON to your internal type
* VcpkgArgParser: place the switch names into a constant as opposed to
using magic constants
* In general update the parsing code so that this ^ works
* Add `Port-Version` fields to CONTROL files
* This replaces the existing practice of
`Version: <my-version>-<port-version>`
==== Smaller changes ====
* small drive-by cleanups to some CMake
* `${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}` ->
`${CURRENT_INSTALLED_DIR}`
* Remove `-analyze` when compiling with clang-cl, since that's not a
supported flag (vcpkg's build system)
* Add a message about which compiler is detected by vcpkg's build
system machinery
* Fix `Expected::then`
* Convert `""` to `{}` for `std::string` and `fs::path`, to avoid a
`strlen` (additionally, `.empty()` instead of `== ""`, and `.clear()`)
* Add `Strings::strto` which converts strings to numeric types
* Support built-in arrays and `StringView` for `Strings::join`
* Add `operator<` and friends to `StringView`
* Add `substr` to `StringView`
* SourceParagraphParser gets some new errors
* add x86-wasm.cmake to community triplets
The EMSDK enviroment variable is normally defined when first installing Emscripten.
* Rename x86-wasm.cmake to wasm32-emscripten.cmake
* Update wasm32-emscripten.cmake
* Update wasm32-emscripten.cmake
* Add wasm32 and wasm64 arch to docs
* Create wasm64-emscripten.cmake
* remove wasm64
* Delete wasm64-emscripten.cmake
* Add wasm32 to list of identifiers
* add emscripten VCPKG_CMAKE_SYSTEM_NAME support
* add path check to EMSDK cmake toolchain
* Add iOS community triplets and toolchain support
Added an iOS toolchain to enable building packages for iOS.
The toolchain is used when a triplet's VCPKG_CMAKE_SYSTEM_NAME is set
to iOS.
To configure which architecture should be built, as well as other
iOS specifics, the following triplet variables can be set:
- VCPKG_TARGET_ARCHITECTURE
- VCPKG_OSX_SYSROOT
- VCPKG_OSX_DEPLOYMENT_TARGET
- VCPKG_OSX_ARCHITECTURES
The following VCPKG_TARGET_ARCHITECTURE values are currently
supported:
- arm, arm64, x64, x86.
The following VCPKG_OSX_SYSROOT values are currently supported:
- iphoneos, iphonesimulator, or an absolute path to the device or
simulator Xcode SDK.
VCPKG_OSX_DEPLOYMENT_TARGET can be set to control the minimum iOS
delopyment target for the built libraries.
CMAKE_OSX_ARCHITECTURES is derived from VCPKG_TARGET_ARCHITECTURE,
so generally it should not be set. In case if someone needs to target
a more specific architecture (like armv7k or arm64e), it can
be set in the triplet via VCPKG_OSX_ARCHITECTURES.
Note that only certain combinations of the architecture and sysroot
will work: simulator SDKs only provide x86-based libraries, etc.
The toolchain also sets CMAKE_SYSTEM_PROCESSOR for certain
configurations, because certain packages (like libpng) depend on the
processor type.
Added 4 community iOS triplets that build static libraries:
- arm-ios, arm64-ios, x86-ios, x64-ios.
The non-arm triplets target the iOS simulator.
The triplets build static libraries because they are easiest to
integrate into an iOS project. Dynamic libraries or frameworks require
code signing on iOS, which complicates integration.
Added heuristics to try and automatically detect what iOS triplet to
use when building your own CMake project (so when a CMake project sets
CMAKE_TOOLCHAIN_FILE to buildsystems/vcpkg.cmake), if no explicit
triplet is provided (VCPKG_TARGET_TRIPLET is undefined).
The heuristic checks for the values of CMAKE_SYSTEM_NAME and
CMAKE_OSX_ARCHITECTURES. Note that for this to work,
CMAKE_OSX_ARCHITECTURES needs to be set before the first project()
call in your CMake project.
Added workaround so find_package finds vcpkg installed packages
when targeting iOS.
This is done by saving / restoring the value of CMAKE_FIND_ROOT_PATH
while also adding the vcpkg package root in the find_package override
macro.
The workaround can be removed once vcpkg upgrades to CMake 3.15.0
or higher where the issue is fixed.
Fixes: #6003
* Fix building libpng and pcre2 targetting iOS
Fixes: #6003
* added android triplets
* added android support to vcpkg
* added export directories to git ignore
* fix libraries naming
* added vckpg sources to visual studio project files
* rename file location
* issue with std::string fs:path copy initialization
* format path on VStudio
* fix checks format cannot work on fs::path
* support header only libraries
* support using architecture instead of triplets
* added prefab support
* added debug logs and prefab debug flag
* added support for empty packages i.e openssl
* Add support for building with MinGW
Tested with MSYS2 MinGW 8.3.0, gcc-mcf.lhmouse MinGW 9.2.1,
and StephanTLavavej/mingw-distro!
* Add MinGW toolchain
From your MinGW configured shell you could just use vcpkg to
configure packages.
An x64-mingw triplet would look like:
```
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_ENV_PASSTHROUGH PATH)
set(VCPKG_CMAKE_SYSTEM_NAME MinGW)
```
* Add MinGW community tripplets
x64 tested with https://github.com/StephanTLavavej/mingw-distro
x86, arm64, arm tested with https://github.com/mstorsjo/llvm-mingw
* Move untested triplets to Community Triplets
* Document community triplets
* Load community triplets by default and alert when using one
* [triplets] Merge documentation of community triplets
* Bump version
I added benchmarks to measure how fast the parallel remove_all code was
-- it turns out, about 3x slower than stdfs::remove_all. Since this was
the case, I removed all of the parallelism and rewrote it serially, and
ended up about 30% faster than stdfs::remove_all (in addition to
supporting symlinks).
In addition, I did the following three orthogonal changes:
- simplified the work queue, basing it on Billy O'Neal's idea
- Fix warnings on older versions of compilers in tests, by splitting
the pragmas out of pch.h.
- Ran clang-format on some files
In fixing up remove_all, the following changes were made:
- On Windows, regular symlinks and directory symlinks are distinct;
as an example, to remove directory symlinks (and junctions, for that
matter), one must use RemoveDirectory. Only on Windows, I added new
`file_type` and `file_status` types, with `file_type` including a new
`directory_symlink` enumerator, and `file_status` being exactly the
same as the old one except using the new `file_type`. On Unix, I
didn't make that change since they don't make a distinction.
- I added new `symlink_status` and `status` functions which use the
new `file_status` on Windows.
- I made `Filesystem::exists` call `fs::exists(status(p))`, as opposed
to the old version which called `stdfs::exists` directly.
- Added benchmarks to `vcpkg-test/files.cpp`. They test the
performance of `remove_all` on small directories (~20 files), with
symlinks and without, and on large directories (~2000 files), with
symlinks and without.
* [vcpkg] Modify Filesystem::remove and Filesystem::rename to not throw.
* [.gitignore] Ignore new VS2019 CMake integration default location
* [.gitignore] Ignore CMakeSettings.json in toolsrc
* [vcpkg] Time external processes called with System::cmd_execute
* [vcpkg] Work around VS2019 CMake bug
* [vcpkg] Fix several unused variable warnings.
* [vcpkg] Improve error handling in vcpkg::Files::Filesystem
Always require either std::error_code or LineInfo to print better errors.
* [vcpkg] Fixup missing return value.
Drive by fix: silence warnings in tests.
* [vcpkg] Fix exiting in error_code overload
Drive by fixes for /analyze with VS2019
* some libraries export <PackageName>LibraryDepends.cmake
instead of <PackageName>Targets.cmake.
Those file also need the fix of #1044
should close#4753
* prefered the general solution #4622.
hopefully solved the issue within #4150
replaced the regex with something more readable
(also ident is lost)
should close:
#4753#4633#4150
and maybe more
* Hash vcpkg_fixup_cmake_targets.cmake
* [boost] Fix use of find_package(Boost) with cache variables
[socket-io-client] Fix install
* reversed change back to use regex replace
* [glbinding] Fix _IMPORT_PREFIX depth in *-export.cmake files
* [tinyspline] Ignore warnings treated as errors
* [libevent, liblemon, libpng, smpeg2, zlib] Fix apply patches
* [libsodium] Fix apply patches
* [folly] Link correct libraries in debug and release
* [vtk] Remove unset of _IMPORT_PREFIX
* [tinyspline] Do not treat warnings as errors
* [smpeg2] Fix double* to int comparison
* [nvtt] Define value for HAVE_UNISTD_H in MacOS
* [libui] Fix MacOS X build
* [zlib] Fix download URL
* [qhull] Update to v7.2.1
* [podofo] Set value for HAVE_UNISTD_H in MacOS
* [mongo-cxx-driver,ogre,podofo,qhull] Bump CONTROL version
* [mongo-c-driver] Set _IMPORT_PREFIX
* [tmxparser] Bump CONTROL version
* [qhull,vxl] Bump CONTROL version
* [vcpkg] Further fix for clang/gcc
* [vcpkg] Only default target triplet to windows if on windows
* [mpfr] add MPFR_USE_INTMAX_T
* [mpfr] prepend stdint to header
* [mpfr] fix portfile
* [mpfr] fix source path
* [mpfr] define have_stdint_h
* [mpfr] revert portfile patch
* [mpfr] prefer ninja
* [mpfr] bump version
* Updated benchmark to v1.3
* [libmspack] Initial port.
* [vcpkg] Add --x-xunit internal command to print installation results in a VSTS friendly format.
* [many ports] Updates to latest
* [llvm] Fail early on UWP
* [netcdf-c] Fix x64-windows-static builds
* [harfbuzz] Revert upgrade due to regression
* Exit early if no VS is found
* [libsodium] Fix static build trying to copy dlls
* Specify VSLANG=1033 to use english locale in builds
Resolves several locale-specific issues outside our control
* Exclude and warn about VS instances without English language pack
Resolves several locale-specific issues outside our control
* [botan] Revert upgrade due to regressions
* [vlpp] initial create
* [vlpp] add the CppMerge.exe tool
* libuv: update to v1.18.0
* [hotfix] Remove VSLANG=1033. It is causing a lot of Process creation failed with error code: 87
* Properly fix VSLANG=1033
* [vcpkg-contact-survey] Add monthly survey prompt
* Update libtorrent to 1.1.5
* [speex] Fix debug mode .def file. Add exports for extern globals.
* [scintilla] Initial port.
* Flint: enable DLL builds (#2271)
* [flint] enable dynamic building
* [flint] increment version
* [sciter] Update to 4.0.6.5590
* Add `vcpkg integrate powershell` for tab completion
* [autocomplete] Add info in README.md
* [aws-sdk-cpp] update to 1.3.15
* Update CHANGELOG and bump version to v0.0.100
* Adding re2 port
* [re2] Use vcpkg_from_github()
* [re2] Don't pass BUILD_SHARED_LIBS
BUILD_SHARED_LIBS should not be locked to shared/static, because the other type will fail.
Vcpkg was overriding this flag before, so no behavior change. (i.e. static builds worked before as well).
Also tests = OFF.
* crow initial port
* fcl: add missing dependencies within cmake
Signed-off-by: Tobias Kohlbau <tobias@kohlbau.de>
* Fix pcl/CMakeLists fot Visual Studio 2017
Fix conditional branch for Visual C++ 2017.
Visual C++ 2017 has a version number 191x.
* [vcpkg-msbuild-integration] Address #2299 by using full path to powershell.
* Fix path to powershell.exe
https://github.com/Microsoft/vcpkg/issues/2299
* Improve error message when failing to parse package
* [ms-gsl] update to 2017-12-04
* [ms-gsl] simplify portfile
* Adaptation for so-5.5.20-beta1
* Improve error message on invalid dependency of package
* [libsodium] Disable tests
Also, this is a workaround for x64-windows-static taking forever in VS2017 15.5
* updata live555 live555-latest
* [gmime] Update to version 3.0.5.
* curl: update to v7.57.0
Due to changes in curl's CMake support, where it now installs .cmake
files, we now have to make sure that they are installed into the correct
directory (and not duplicated into the debug/share/ directory, either).
Also, a change in the context of the 2nd patch required an update of
said patch.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* [live555] Set version instead of latest and update CONTROL file
* openssl: update to v1.0.2n
The patch to allow for spaces in paths while running the Perl helpers is
no longer necessary, and was dropped.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* [ACE] 6.4.6
* Update for sobjectizer v.5.5.20
* [jansson] Prefer ninja
* [openssl] Remove entry of removed patch
* [unicorn] Adding unicorn port
* Improve vcpkgExtractFile. Also merge vcpkgRemoveDirectory/File
* [vcpkg-cmake-toolchain]
Use list(APPEND) instead of set(). Fixes#2336.
Fix MPI issue introduced in cmake 3.10. Fixes#2317.
Add _VCPKG_ROOT_DIR to persisted variables to reduce disk access during cmake reconfigure.
* [gtest] Remove renaming of DLLs -- only the import libs need renaming.
* [unicorn] Adjust handling of CRT and LIBRARY LINKAGE. Reformat to LF.
* [mbedtls] Initial port. (#2286)
* mbedtls: init port
* add VCPKG_LIBRARY_LINKAGE for static libs only
* [mbedtls] Slight cleanup
* [tinyexif] add TinyEXIF library (#2221)
* alac-decoder (#2176)
* [tinyexif] update to version 1.0.1
* [speex] Fix regression for release mode import library
* [speex] Fix release mode .def file. Add missing exports (#2340)
* [speex] Fix release mode .def file. Add missing exports
Fixed .def file in release mode (it is bugged after #2293 fix in d5395ac793) https://github.com/Microsoft/vcpkg/issues/2293#issuecomment-350449317
Added exports for speex_header_free and speex_mode_list (https://github.com/Microsoft/vcpkg/issues/2292#issuecomment-348773393)
* [speex] Fix regression for release mode import library
* [vcpkg-cmake-toolchain] Mark _VCPKG_ROOT_DIR as INTERNAL
* [openssl] Add -utf-8 flag
* [exiv2] update to latest master and fix debug config
* Fix Gtest port fails install when one of the configuration is set to VCPKG_BUILD_TYPE (#2359)
* Support build with master/HEAD
Gtest will be able to build with master/HEAD.
* Fix install when one of the configuration is set to VCPKG_BUILD_TYPE
Fix install when one of the configuration is set to VCPKG_BUILD_TYPE.
* [powershell] Use \ instead of / for paths. Resolves#2358. Resolves#2361
* Fix fetching dependency text
* [vcpkg-upgrade] Initial commit of upgrade command.
* [vcpkg-upgrade] Accept list of packages to specifically upgrade.
* Upgrade assimp to v4.1.0 (#2364)
* [assimp] Update to v4.1.0 and remove code patch which is fixed in new version
* [assimp] Fix vcpkg_fixup_cmake_targets argument
* [assimp] Fix formatting
* Revert "[vcpkg-upgrade] Accept list of packages to specifically upgrade."
This reverts commit d88563cd09.
* Revert "[vcpkg-upgrade] Initial commit of upgrade command."
This reverts commit 803347a0c5.
* [vcpkg] Fix regressions introduced with update command. Fixed issue with upgrade where it assumed downloads were not allowed.
* [brotli] Fix regressions introduced during update
* Add quotation marks to support user profiles with spaces in them
* Revert "Add quotation marks to support user profiles with spaces in them"
This reverts commit 0ba4b66293.
* [vcpkg] Revert revert of #2369.
* [tinyxml2] update to 6.0.0
* [vcpkg] Fix regressions in WSL build.
* [cpprestsdk] Update to 2.10.1
* [gtest] Fix issue with renaming gtest DLLs in debug mode
* Added port brynet - A C++ cross platform high performance TCP network library using C++ 11.
* [tbb] Update to 2018_U2
* [gsl-lite] Updated to 0.26.0
* [nlohmann-json] Update to 3.0.0
* Update string-theory to 1.7
* Update Range-V3-VS2015.
* [vcpkg] Improve error message upon graph cycle detected.
* [glm] Ignore MSVC warning C4201
* [boost] Modularize
* [vcpkg-list] Improve list output for long triplets
* Update downstream libraries to use modularized boost
* [magnum] Remove --trace
* [vcpkg-list] Improve list output for long triplets
* [llvm] Add atlmfc to dependencies -- fixes#2400
* [vcpkg-integrate-powershell] Fix $false bug. Fixes#2397.
* Fix find Boost when can not be found Boost that installed with Vcpkg (#2395)
* Fix find Boost when can not be found Boost that installed with Vcpkg
Fix find Boost when can not be found Boost that installed with Vcpkg.
Re-find package Boost uisng user specified options.
* Fix regex of generators
Fix regex of generators.
Add ending position.
* Fix Save and Resore Boost_COMPILER
* [vcpkg-cmake-integration] Expand saved boost variables
* [sciter] Update to 4.0.7.5637
* Initial experimental re-support for VCPKG_BUILD_TYPE release
re-add this commit 5335d17
* [dlib] update to 19.8
* [fftw] Build more libs
* Improving support for ITK
* [libdatrie] add version 0.2.10
* [alembic] update to 1.7.5
* Added port libqrencode - a fast and compact QR Code encoding library (#2372)
* https://github.com/Microsoft/vcpkg/issues/2363
* libqrencode: Added necessary new line at end of CONTROL, portfile.cmake, usage files. Added copying the usage file in portfile.cmake, and removed unnecessary DBUILD_SHARED_LIBS as remarked @ras0219-msft
* [libqrencode] Adjust usage to match other packages
* libmupdf initial port (#1950)
* libmupdf initial port
* [libmupdf] Use CMake for buildsystem replacement.
* [hpx] Handle boost breaking changes. Fixes#2416.
* [folly] Handle boost upgrade
* [nghttp2] initial port (dynamic build only). (#2366)
* [nghttp2] initial port (dynamic build only).
* [nghttp2] Slight tweak
* [brynet] Use vcpkg_from_github
* [boost] Fix uwp builds on systems with spaces
* [assimp] Fix unitialized variable issue.
* [libtorrent] Update to more recent snapshot to support boost 1.66
* [assimp] Fixup: add missing patchfile
* [vcpkg-download-distfile] Add input sanitization
* [boost-python] Fix build.
* [qt5] Add atlmfc to dependencies on windows due to tlbase.h inclusion. Fixes#2344.
* clang-tidy fixes
* [opencv] update to 3.4.0
* [vcpkg-hash] Replace certutil.exe with cmake built-in hash commands
* [sciter] Update to 4.0.8.5649
* [directxmesh] Update to the last version (dec2017)
* [directxtex] Update to the last version (dec2017)
* [directxtk] Update to the last version (dec2017)
* Revert "clang-tidy fixes"
This reverts commit 2d0a76370e.
* [libgit2] Initial port.
* [bullet3] Update from 2.86.1 to 2.87
* Update librealsense v2.8.3
Update librealsense v2.8.3.
* [libconfig] update to 1.7.1
* [fmt] update to 4.1.0
* [gainput] Initial port
* mpfr: fix download link
* [mpir] use vcpkg_from_github
* [portmidi] Initial port
* [jack2] Initial commit
* [libdatrie] fix trietool for MSVC runtime
* Fix version
* Add support for Box2D to be build as a static library
* [asio] swith to vcpkg_from_github()
* [nlohmann-json] update to 3.0.1
* [libbson] update to 1.9.0
* [mongo-c-driver] update to 1.9.0
* [harfbuzz] update to 1.7.4
* [jack2] Prefer using vcpkg_from_github. Removed check for Windows Store
* [zstd] update to 1.3.3
* Use vcpkg version of BLAS and LAPACK in dlib
dlib v19.8 detects these packages correctly
* [libpqxx] Initial port
* [tacopie] Update to 3.2.0
* [cpp-redis] Update to 4.3.0
* Update cmake to 3.10.1
* Remove workaround for a bug in FindMPI.cmake that was introduced in cmake 3.10.0 and fixed in 3.10.1
* Update szip to 2.1.1
* Update HDF5 to 1.10.1
* [soundtouch] Initial port (#2455)
* [soundtouch] Initial port
* [soundtouch] Fixed typo
* [vcpkg-download-distfile] Fix#2426
* Add preliminary support for arm-windows and arm64-windows triplets (#2371)
* Add preliminary support for arm-windows and arm64-windows triplets
Visual Studio 15.4 shipped with new VC tools targeting arm and arm64
for desktop. This change allows for recognition and usage of new
triplets supporting arm and arm64 Windows desktop and server targets.
* Remove unnecessary changes
* Part 2
* Part 3
* Make detection of Arm64 _VCPKG_TARGET_ARCHITECTURE precise
* Enforce usage of Visual Studio CMake generatorfor arm and temporarily arm64 targets
* Address code review feedback, clean libjpeg-turbo port.cmake
* [libjpeg-turbo][tiff] Reduce changes to existing libraries.
* [vcpkg-cmake] Simplify toolchain selection logic and improve comments
* [gitignore] Add new triplets to gitignore