Commit Graph

788 Commits

Author SHA1 Message Date
ras0219
d1ba685e97
[vcpkg] Further JSON error improvements (#13399)
* [vcpkg] Split vcpkg/base/json.h into vcpkg/base/jsonreader.h

* [vcpkg] Extract definitions of Configuration-Deserializer (& friends)

These types are only used by VcpkgPaths during the initial parse.

* [vcpkg] Introduce levenshtein-distance suggestions for json errors

* [vcpkg] Fix regression in supports handling

* [vcpkg] Fix signed/unsigned mismatch

* [vcpkg] Address CR comments

* [vcpkg] Address CR comments

* Fix compiler error from merge conflict.

* [vcpkg] Change parameters of Reader::check_for_unexpected_fields to better match declaration

* [vcpkg] Improve errors from features set

* [vcpkg] Fix includes

* [vcpkg] Reuse code

* [vcpkg] Check the "name" field always to maximize error information

* [docs] Improve english phrasing in manifests.md

* [vcpkg] Correct docs link for manifests

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-10-12 10:22:47 -07:00
Cengizhan Pasaoglu
0dcc11ac22
[vcpkg] Use more forward declarations rather than definitions (#13623)
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-10-08 22:31:21 -07:00
ras0219
d8a4e63690
[vcpkg] Avoid computing triplet ABIs for editable packages (#13446)
* [vcpkg] Avoid computing triplet ABIs for editable packages

* [vcpkg] Address PR comments

* [vcpkg-end-to-end-tests] Add tests for --no-binarycaching, binarycaching by default, and --editable

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-10-06 14:34:59 -07:00
ras0219
8fe1851e1e
[vcpkg] Enable reentrant vcpkg calls (#13751)
* [vcpkg] Enable recursive vcpkg calls

Via envvars VCPKG_COMMAND and VCPKG_X_RECURSIVE_DATA. Child processes can call vcpkg via "$VCPKG_COMMAND <args>" in limited internal circumstances.

* [vcpkg] Address CR comments

* [vcpkg] Do not move through Optional<&> into Optional<T>

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-10-06 12:06:26 -07:00
Alexander Neumann
0c1c43742d
[vcpkg] add env var VCPKG_OVERLAY_TRIPLETS (#12790)
* [vcpkg] add env var VCPKG_OVERLAY_TRIPLETS

* shorten way to complicated doc

* run clang format

* Apply CR

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>

* Apply CR2

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-09-28 07:51:16 -07:00
Francois Rivard
741c8cbecd
[vcpkg] Add compiler info to nuspec description (#13571)
* Add compiler info to nuspec description

* Run clang-format on some files

* Fix the unit tests

* [vcpkg] Clarify NuGet description to note 'CXX compiler'

* [vcpkg] Fix tests

Co-authored-by: frivard <frivard@coveo.com>
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-09-27 18:18:27 -07:00
Billy O'Neal
5d33bd3d79
[vcpkg] Fix the case of current_path() before use on Windows. (#13537)
* Fix the case of current_path() before use on Windows.

This is a better solution than that I tried in https://github.com/microsoft/vcpkg/pull/13144 -- rather than trying to cannoicalize the path completely, which would destroy symlinks etc; this form  calls FindFirstFile on each path element to get the real case from the filesystem.

Fixes #13105.

(Note the wrong case in the CWD in the prompt, but the correct case in all the output:)

PS C:\DeV\vcPKG> .\vcpkg.exe install curl
Computing installation plan...
The following packages will be built and installed:
    curl[core,non-http,schannel,ssl,sspi,winssl]:x86-windows
  * zlib[core]:x86-windows
Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet x86-windows...
Starting package 1/2: zlib:x86-windows
Building package zlib[core]:x86-windows...
Using cached binary package: C:\Users\billy\AppData\Local\vcpkg/archives\c6\c61dd1bcc23348934c55f4ced77f1e4b0f353394.zipBuilding package zlib[core]:x86-windows... done
Installing package zlib[core]:x86-windows...
Installing package zlib[core]:x86-windows... done
Elapsed time for package zlib:x86-windows: 62.26 ms
Starting package 2/2: curl:x86-windows
Building package curl[core,non-http,schannel,ssl,sspi,winssl]:x86-windows...
Could not locate cached archive: C:\Users\billy\AppData\Local\vcpkg/archives\9f\9fa16d473c9539e9ea7ab3922eff46618f3a4c4b.zip
-- Downloading 9d954e49bc.tar.gz...
-- Extracting source C:/Dev/vcpkg/downloads/curl-curl-9d954e49bce3706a9a2efb119ecd05767f0f2a9e.tar.gz
-- Applying patch 0002_fix_uwp.patch
-- Applying patch 0004_nghttp2_staticlib.patch
-- Applying patch 0005_remove_imp_suffix.patch
-- Applying patch 0006_fix_tool_depends.patch
-- Applying patch 0007_disable_tool_export_curl_target.patch
-- Applying patch 0009_fix_openssl_config.patch
-- Applying patch 0010_fix_othertests_cmake.patch
-- Applying patch 0011_fix_static_build.patch
-- Using source at C:/Dev/vcpkg/buildtrees/curl/src/767f0f2a9e-91d24adee1.clean
-- Configuring x86-windows
-- Building x86-windows-dbg
-- Building x86-windows-rel
-- Installing: C:/Dev/vcpkg/packages/curl_x86-windows/share/curl/curl-config
-- Installing: C:/Dev/vcpkg/packages/curl_x86-windows/share/curl/vcpkg-cmake-wrapper.cmake
-- Installing: C:/Dev/vcpkg/packages/curl_x86-windows/share/curl/copyright
-- Performing post-build validation
-- Performing post-build validation done
Stored binary cache: C:\Users\billy\AppData\Local\vcpkg/archives\9f\9fa16d473c9539e9ea7ab3922eff46618f3a4c4b.zip
Building package curl[core,non-http,schannel,ssl,sspi,winssl]:x86-windows... done
Installing package curl[core,non-http,schannel,ssl,sspi,winssl]:x86-windows...
Installing package curl[core,non-http,schannel,ssl,sspi,winssl]:x86-windows... done
Elapsed time for package curl:x86-windows: 1.299 min

Total elapsed time: 1.33 min

The package curl:x86-windows provides CMake targets:

    find_package(CURL CONFIG REQUIRED)
    target_link_libraries(main PRIVATE CURL::libcurl)

PS C:\DeV\vcPKG>

* Fix *nix builds.

* PR feedback.

* Update toolsrc/src/vcpkg/base/files.cpp

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
2020-09-22 20:16:24 -07:00
nicole mazzuca
0fec1340eb
[vcpkg manifest] Add documentation! (#13488)
* [vcpkg docs] add docs for manifest files

These are just for the maintainer docs,
not user docs.

* [vcpkg] EBNF-ify platform expression parsing

this modifies nothing about what strings are accepted or rejected,
it just moves stuff around.

also adds tests.

* [vcpkg docs] add manifest mode example

* [wip] docs for augustin

also fix tabs

* [vcpkg manifest] switch to using maps for features

* Apply suggestions from code review

* un-experimentize format-manifest

* flesh out the user manifest mode docs

* CRs

* billy CRs

* final personal pass-thru
2020-09-14 15:07:02 -07:00
Billy O'Neal
6b97dbfce2
[vcpkg] Merge the vcpkg metadata uploader into the vcpkg binary (#13421) 2020-09-11 13:52:18 -07:00
ras0219
a35ddddac8
[vcpkg] Fix compilation on VS2015 (#13398)
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-09-07 16:48:46 -07:00
ras0219
0d0a84694c
[vcpkg] Improve Json error messages (#12981)
* [vcpkg] Fix error reporting on json parse failure

* [vcpkg] Track manifest path for use in diagnostics

* [vcpkg] Use by-value for consumer API. Improve trailing comma diagnostic.

* [vcpkg] Track errors directly inside Json::Reader

* [vcpkg] Fixup use of .u8string()

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-09-07 15:50:20 -07:00
nicole mazzuca
4467eb334a
fix compile on g++ 6 (#13290) 2020-09-04 11:49:56 -07:00
nicole mazzuca
9740611cab
[vcpkg] Registries MVP (#13038) 2020-09-02 09:13:44 -07:00
ras0219
a0536798ee
[vcpkg] Implement 'repository' tag for NuGet binary caching (#13228)
This tag is required to correctly interface with GitHub Packages, because GHP shares a single remote for the entire organization and uses the repository field to associate a package with a particular repository.

This tag will be automatically generated if the default GitHub Actions environment variables are present (GITHUB_XYZ) or if the user defines VCPKG_NUGET_REPOSITORY.

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-08-31 22:37:10 -07:00
huahang
99b07566f4
[vcpkg] Fix build on old compilers. (#12950) 2020-08-24 18:14:38 -07:00
ras0219
5d331ed553
[vcpkg] Fix editable bug (#12910) 2020-08-22 01:27:40 -07:00
nicole mazzuca
dfa7dc4276
remove registries.h and fwd/registries.h... (#13017) 2020-08-19 21:12:55 -07:00
nicole mazzuca
5e164e3dd2
[vcpkg] Add Forward Declarations (originally by @cngzhnp) (#12985)
Co-authored-by: cngzhnp <cengizhanpasaoglu@gmail.com>
2020-08-19 15:33:15 -07:00
Jack·Boos·Yu
0bb8780a60
[vcpkg] Use std::filesystem when Visual Studio is greater than 2015 (#12774)
Co-authored-by: Nicole Mazzuca <mazzucan@outlook.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-08-18 09:23:01 -07:00
ras0219
74ab3aae01
[vcpkg] Restore layering and purge unused ParagraphParseResult (#12897)
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-08-14 11:05:18 -07:00
ras0219
0c2117845e
[vcpkg] Reduce dependencies and contents of vcpkgpaths.h (#12876)
* [vcpkg] Remove globally-constructed pre-defined Triplets from vcpkg.exe

The tool should be as triplet-agnostic as possible, which leaves little room for special, pre-defined names like this. However, tests do have use of them: moved into test assets.

* [vcpkg] Move predefined tools strings vcpkgpaths.h -> tools.h

* [vcpkg] Add forward declarations to vcpkgpaths.h to reduce header deps

* Merge from origin/master

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-08-14 09:53:04 -07:00
ras0219
0b5bbe30d9
[vcpkg] Lift --x-json to a global option, implement experimental x-package-info command (#12845)
* [vcpkg] Improve error reporting in vcpkg::Json

* [vcpkg] Lift --x-json to a common option

* [vcpkg] Address warnings-as-errors in VS2015

* [vcpkg] Remove unused local

* [vcpkg] Extract vcpkg::Install::get_cmake_usage

* [vcpkg] Implement vcpkg::serialize_ipv(ipv, paths)

* [vcpkg] Implement x-package-info to enable tooling

* [vcpkg] Fixup tests to respect new cli mode

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-08-13 18:36:33 -07:00
ras0219
c771e7bd07
[vcpkg] Fix resolution of default features when using Manifest mode (#12829)
* [vcpkg] Fix resolution of default features when using Manifest mode

During manifest mode, the dependencies in the manifest should be treated as explicitly specified -- curl[core] should not install curl's default features.

* [vcpkg] Improve error message when failed to parse manifest file

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-08-12 12:35:26 -07:00
ras0219
481738beae
[vcpkg] Add vcpkg export to E2E tests. Enable E2E tests on all platforms. (#12198)
* [vcpkg] Add `vcpkg export` to E2E tests. Enable E2E tests on MacOS.

* [vcpkg] Fix export --raw --output-dir=/path/ by changing directory to new export root

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-08-10 10:22:51 -07:00
nicole mazzuca
40c8aab459
[vcpkg] Fix vs2015 build (#12789)
* move windows bootstrap directory

* fix paths

* actually fix the build

* fix path
2020-08-06 17:04:47 -07:00
Alexander Neumann
4fb846bd44
[vcpkg] add environment variable VCPKG_OVERLAY_PORTS (#12640)
* [vcpkg] add environment variable VCPKG_OVERLAY_PORTS

* add documentation for VCPKG_OVERLAY_PORTS

* append env overlay instead of prepending to give explicitly listed overlays priority

* fix formating (manually)

* manually fixing formating

* improve help text

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
2020-08-05 11:21:42 -07:00
nicole mazzuca
1c2af99415
[vcpkg format-manifest] Add convert-control flag (#12471)
* [vcpkg format-manifest] initial convert-control attempt

TODO: manifest comments! we should keep $directives

* Finalize x-format-manifest

First, fix Json::parse -- "\c", for any c, was incorrectly parsed.
It would emit the escaped character, and then parse the character, so
that `\b` would give you { '\b', 'b' }.

Second, canonicalize source paragraphs as we're parsing them. This found
an error in qt5 -- The `declarative` feature was listed twice, and we
now catch it, so I removed the second paragraph.

Add PlatformExpression::complexity to allow ordering platform
expressions in a somewhat reasonable way.

Notes:
  - We allow `all_modules` as a feature name for back-compat with
    paraview
  - In order to actually convert CONTROL to vcpkg.json, we'd need to
    rename the qt5 `default` feature.
  - We need to add support for $directives in x-format-manifest

* fix qt5 port

* format

* fix compile

* fix tests for canonicalization

* Clean up code

* add error message for nothing to format

* add extra_info field

* add `const X&` overloads for `Object::insert[_or_replace]`

* fix compile

* simple CRs

* add tests

* format

* Fix mosquitto port file

also unmerge a line

* fail the tests on malformed manifest

* fix format_all

* fix coroutine port-version

* format manifests
2020-08-02 10:08:07 -07:00
nicole mazzuca
f225ba822b
[vcpkg manifest] look at platform directives (#12548)
Fixes #12538
2020-08-01 13:46:26 -07:00
nicole mazzuca
54ec974afe
[vcpkg] Refactor commands 2: Electric Boogaloo (#12641)
* Add BasicCommand and VersionCommand

* Add ContactCommand

* test get_available_commands_type_c

* Change get_available_commands_type_c to return objects

* Add TripletCommand & InstallCommand

* Add SetInstalledCommand

* add linking tests

* Add CICommand

* Add remaining *Command objects

* Add tests for commands_type_a

* Move over to using const TripletCommand* for commands_type_a

* Add PathsCommand

* Add SearchCommand

* add test for commands_type_b

* add *Command for all type b commands

* Switch from function pointers to PathsCommand for everything

* format

* rename get_available_commands

also remove CommandType* types
2020-08-01 13:45:17 -07:00
nicole mazzuca
56fffbe49d
[vcpkg] Refactor Commands: Part 1 (#12585)
* Rename commands.exportifw.cpp -> export.ifw.cpp

* move DryRun from commands.h -> commands.interface.h

* move vcpkgcmdarguments and vcpkgpaths over to commands.interface.h

* move vcpkg::Commands::BuildExternal -> commands.buildexternal.h

* add commands.*.h for the commands.*.cpp

* move vcpkg::Commands::* to commands.*.h

* move vcpkg::Commands::{Hash,Fetch} to their own files

* change include commands.h -> commands.*.h in commands.*.cpp

* remove commands.*.h from commands.h

* join vcpkg::Commands::* into one namespace line

* fix vcxproj build
2020-07-31 11:53:42 -07:00
Andrei Lebedev
077c0746be
[vcpkg] Add initial s390x support (#12534)
Signed-off-by: Andrei Lebedev <lebdron@gmail.com>
2020-07-23 14:16:01 -07:00
Cristian Adam
f4bd64233a
Build fix with MinGW GCC 9.2.0 (#12084)
* Build fix with MinGW GCC 9.2.0

* Fix MinGW tripplets

Fixes #12065

* clang-format

* Fix unused read_symlink_implementation warning marked as error

read_symlink_implementation was used only in copy_symlink_implementation
when #if defined(_WIN32) && !VCPKG_USE_STD_FILESYSTEM  was true.

Removed the warning otherwise.

Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
2020-07-18 08:48:01 -07:00
nicole mazzuca
6bf5adff93
[vcpkg] Clean up command switch code (#12351)
* [vcpkg] Clean up command switch code

Make it more similar to the non-command switch code

* format

* fix the tests

* reformat

* format

* wip

* support x- for command options

* fix autocomplete

* format
2020-07-15 17:29:18 -07:00
nicole mazzuca
d2620cf02b
[vcpkg formatting] Turn off DeriveLineEnding (#12368)
* [vcpkg formatting] Turn off DeriveLineEnding

* format

* Add newlines to the end of files

Since we're reformatting anyways
2020-07-14 08:50:19 -07:00
ras0219
385fb52332
[vcpkg] Track hashes of cmake script helpers in consuming portfiles (#12254)
* [vcpkg] Track hashes of cmake script helpers in consuming portfiles

* [vcpkg] Format

* [vcpkg_find_acquire_program] Use cpkg_from_sourceforge for FLEX and BISON

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-13 13:43:39 -07:00
ras0219
52a9d9a9e4
[vcpkg] Enable binary caching by default (#12370)
* [vcpkg] Enable binary caching by default. Support `x-` migration.

Fix passing multiple copies of single parameter arguments.

* [vcpkg] Handle x- prefixes for general arguments

* [vcpkg] Fix #12285 and improve documentation of default binary cache path

* [vcpkg] Revert x- prefix homogenization for per-command arguments

* [vcpkg] Only use accelerated compiler detection for Windows Desktop + Ninja. Improve breadcrumbs for users encountering issues.

* [vcpkg] Fix compiler tracking not pre-downloading Ninja. Fix compiler tracking not looking in -err.log.

* [vcpkg] Update toolsrc/src/vcpkg/binarycaching.cpp

Co-authored-by: Billy O'Neal <bion@microsoft.com>

* [vcpkg] Format

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Billy O'Neal <bion@microsoft.com>
2020-07-13 12:03:53 -07:00
nicole mazzuca
0523b5eb57
[vcpkg formatting] Fix format regex (#12369)
* [vcpkg formatting] correct the header regexes

* format
2020-07-11 21:07:51 -07:00
nicole mazzuca
8a8d725b43
[vcpkg] Remove unnecessary work queue (#12350)
this work queue implementation was added at some point, and is no longer used anywhere.
Delete it as not used; if we need it again, we can grab it from the history
2020-07-09 16:04:59 -07:00
ras0219
a571c8ecc0
[vcpkg] Move default binary cache from $root/archives to user-wide directory (#12256)
* [vcpkg] Move default binary cache from `$root/archives` to user-wide directory

Teach nuget/nugetconfig binary sources to use read/write.

* [vcpkg] Reformat

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-09 15:14:05 -07:00
nicole mazzuca
3871d73349
[vcpkg manifests] fix some issues (#12227)
Fixes #12190
Fixes #12208
Fixes #12234
Fixes #12286
Fixes #12315
Fixes #12186
Fixes #12331
Fixes googleapis/google-cloud-cpp#4487
2020-07-09 12:32:31 -07:00
ras0219
f9bdf13953
[vcpkg] Implement --editable (#12200)
--editable suppresses binary caching and source re-extraction for packages listed on the command line (similar to --head).

This fundamentally changes the port maintenance loop, so several example documents were updated. To avoid users having substantial changes suddenly destroyed by forgetting to pass --editable, "clean" sources have different extract locations.

The undocumented command `build` implies `--editable`.

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-07 13:53:19 -07:00
nicole mazzuca
6a41626eaf
[vcpkg] Format the C++ in CI (#11655)
* [vcpkg] Format the C++ in the CI

* format the C++

* CR
2020-07-06 16:45:34 -07:00
ras0219
e82e56f27f
[vcpkg] Remove use of std::variant and std::visit to fix VS2015. (#12242)
Fixes #12220

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-06 11:03:38 -07:00
Billy O'Neal
a28bfe7674
[vcpkg] Remove the tombstones and 'ignore' baseline concepts. (#12197)
This changes our PR builds to treat 'fail' in the ci.baseline.txt as 'skip' instead of using tombstones.

We currently have large numbers of spurious failures that get enshrined in PRs through no fault of a PR author, removing the tombstones concept will fix those by allowing the user to retry. This does mean we accept some risk of not detecting when a port is 'fixed', but that failure is reasonable for us to handle after we see it in CI, but that seems worth it given that it lets us get rid of the tombstone concept.

This also helps out the binary caching feature, because we don't have to figure out how to productize tombstones.
2020-07-02 20:20:07 -07:00
ras0219
a218d0e61d
[vcpkg] Remove all uses of Foo::Foo() noexcept = default; to fix #9955 (#12201)
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-01 21:05:18 -07:00
ras0219
5a9d8011f5
[vcpkg] Enable NuGet-based binary caching via mono (#12170)
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-01 12:18:37 -07:00
ras0219
135f91de1e
[vcpkg] Implement --x-write-nuget-packages-config= setting for install and x-set-installed (#12138)
* [vcpkg] Implement --x-write-nuget-packages-config= setting for `install` and `x-set-installed`.

* [vcpkg] Add end-to-end testing suite for install, remove, and binary caching

* [vcpkg] Define `$TestingRoot in end-to-end-tests.ps1

* [vcpkg] Address CR comments

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-01 11:36:09 -07:00
ras0219
3f6342db6d
[vcpkg] Fix vcpkg export --nuget regressions (#12174)
* [vcpkg] Upgrade find_acquire_program(NUGET) to 5.5.1. Add partial SHA to temporary download paths to avoid collisions.

* [vcpkg] Fix regression in `vcpkg export --nuget` due to file locking on .vcpkg-root

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-06-30 14:02:26 -07:00
nicole mazzuca
1d8f0acc9c
[vcpkg manifest] Manifest Implementation (#11757)
==== 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
2020-06-30 10:40:18 -07:00
Billy O'Neal
309f6fc9bc
[vcpkg] Delete unused --purge-tombstones and introduce BufferedPrint class (#12049)
* Introduce buffered_print class to manage buffered write patterns like in the ci command.

* Remove --purge-tombstones option.

* Law of demeter.

* Make buffered_print imobile.

* buffered_print => BufferedPrint

* Fix merge conflict.
2020-06-26 12:16:17 -07:00