* begin exploratory rewriting of tests
* continue working on tests
* more test work! holy butts vcpkg-tests/plan.cpp was a bunch of work
* finish writing new tests
- [x] write catch2 tests
- [ ] rewrite/at least delete the VS project files
- [ ] document running tests
* Fix tests to work on WSL, rewrite test vcxproj
still need to test on macOS
also, delete tests.pch.h
* Condense add_test calls
* [vcpkg] Fix font corruption bug on Windows by downloading Powershell Core
* [vcpkg] Rename subtool to powershell-core
* [vcpkg] Add missing includes to project files
* Allow redirection of the scripts folder with an environment variable.
* - Updated feature from environment variable to argument.
* Fix crash when no scripts override is given and use --scripts-root=<PATH> format
* Update help messages to use --scripts-root=<PATH> format
VS 2019 16.3 will contain a couple of source-breaking changes:
* <experimental/filesystem> will be deprecated via an
impossible-to-miss preprocessor "#error The <experimental/filesystem>
header providing std::experimental::filesystem is deprecated by
Microsoft and will be REMOVED. It is superseded by the C++17
<filesystem> header providing std::filesystem. You can define
_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING to acknowledge
that you have received this warning."
* <filesystem> will no longer include <experimental/filesystem>.
In the long term, I believe that vcpkg should detect when it's being
built with VS 2017 15.7 or newer, compile in C++17 mode, include
<filesystem>, and use std::filesystem. (Activating this for VS 2019 16.0
or newer would also be reasonable.) Similarly for other toolsets
supporting std::filesystem.
In the short term, this commit makes vcpkg compatible with the upcoming
deprecation. First, we need to define the silencing macro before
including the appropriate header. I've chosen to define it
unconditionally (without checking for platform or version), since it
has no effect for other platforms or versions. Second, we need to deal
with <filesystem> no longer including <experimental/filesystem>.
I verified that VS 2015 Update 3 contained <experimental/filesystem>
(back then, it simply included the <filesystem> header, where the
experimental implementation was defined; this was later reorganized).
Therefore, all of vcpkg's supported MSVC toolsets have
<experimental/filesystem>, so we can simply always include it.
I've verified that this builds with both VS 2015 Update 3 and
VS 2019 16.1.3 (the current production version).
* [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
* [control file] Add optional 'Homepage' tag
This allows a 'Homepage' tag to be added to a port in order to support
changes such as PR #2933. It currently does not do anything with it.
* [docs]
Add Homepage to the control file documentation
* move urls from descriptions to homepage field.
* [toolsrc] Optionally allow vcpkg to clean packages, buildtrees and downloads after each build
Adds switch --clean-after-build
* [toolsrc] Clarify that --clean-after-build deletes downloads
* [toolsrc] Revert changes to ci download caching behaviour
remove_if is already stable, so separate stable and unstable versions are unnecessary.
https://iterator.wordpress.com/2016/01/31/algorithms_0/
Unstable remove_if algorithms are possible that might win, as indicated in that article; but plain remove_if provides the most consistent behavior.
* [vcpkg] Add find/find_installed/is_installed for FeatureSpec
Signed-off-by: Squareys <squareys@googlemail.com>
* [vcpkg] Fix build command for packages that depend of features
Signed-off-by: Squareys <squareys@googlemail.com>
* [vcpkg] Add Default-Feature to make_status_pgh utility function
Signed-off-by: Squareys <squareys@googlemail.com>
* [vcpkg] Parse "Default-Features" as dependencies and add test for parsing
Signed-off-by: Squareys <squareys@googlemail.com>
* [vcpkg] Document some methods and structures
Signed-off-by: Squareys <squareys@googlemail.com>
* [vcpkg] Add install_default_features_test
Signed-off-by: Squareys <squareys@googlemail.com>
* [vcpkg] Change install_default_features_test to not have preinstalled package
* [vcpkg] Test install behaviour of default features
Signed-off-by: Squareys <squareys@googlemail.com>
* [vcpkg] Implement default features
Signed-off-by: Squareys <squareys@googlemail.com>
* [vcpkg] Test default features upgrade behavior
Signed-off-by: Squareys <squareys@googlemail.com>
* [vcpkg] Implement upgrade with default features
Signed-off-by: Squareys <squareys@googlemail.com>
* [vcpkg] Test behaviour of upgrade with default features in dependencies
Signed-off-by: Squareys <squareys@googlemail.com>
* [vcpkg] Make upgrade install new default features
Signed-off-by: Squareys <squareys@googlemail.com>
* [vcpkg] Move collecting of packages for which to prevent defaults
Further down the line to create_feature_install_plan.
Signed-off-by: Squareys <squareys@googlemail.com>
* [vcpkg] Fix core missing from default features and potential inf loop
Signed-off-by: Squareys <squareys@googlemail.com>
* [vcpkg] Rename, fix and move some tests
Signed-off-by: Squareys <squareys@googlemail.com>
* 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