aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include
AgeCommit message (Collapse)Author
2020-08-24[vcpkg] Fix build on old compilers. (#12950)huahang
2020-08-22[vcpkg] Fix editable bug (#12910)ras0219
2020-08-19remove registries.h and fwd/registries.h... (#13017)nicole mazzuca
2020-08-19[vcpkg] Add Forward Declarations (originally by @cngzhnp) (#12985)nicole mazzuca
Co-authored-by: cngzhnp <cengizhanpasaoglu@gmail.com>
2020-08-18[vcpkg] Use std::filesystem when Visual Studio is greater than 2015 (#12774)Jack·Boos·Yu
Co-authored-by: Nicole Mazzuca <mazzucan@outlook.com> Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-08-14[vcpkg] Restore layering and purge unused ParagraphParseResult (#12897)ras0219
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-08-14[vcpkg] Reduce dependencies and contents of vcpkgpaths.h (#12876)ras0219
* [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-13[vcpkg] Lift `--x-json` to a global option, implement experimental ↵ras0219
`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-12[vcpkg] Fix resolution of default features when using Manifest mode (#12829)ras0219
* [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-10[vcpkg] Add `vcpkg export` to E2E tests. Enable E2E tests on all platforms. ↵ras0219
(#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-06[vcpkg] Fix vs2015 build (#12789)nicole mazzuca
* move windows bootstrap directory * fix paths * actually fix the build * fix path
2020-08-05[vcpkg] add environment variable VCPKG_OVERLAY_PORTS (#12640)Alexander Neumann
* [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-02[vcpkg format-manifest] Add convert-control flag (#12471)nicole mazzuca
* [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-01[vcpkg manifest] look at `platform` directives (#12548)nicole mazzuca
Fixes #12538
2020-08-01[vcpkg] Refactor commands 2: Electric Boogaloo (#12641)nicole mazzuca
* 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-07-31[vcpkg] Refactor Commands: Part 1 (#12585)nicole mazzuca
* 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-23[vcpkg] Add initial s390x support (#12534)Andrei Lebedev
Signed-off-by: Andrei Lebedev <lebdron@gmail.com>
2020-07-18Build fix with MinGW GCC 9.2.0 (#12084)Cristian Adam
* 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-15[vcpkg] Clean up command switch code (#12351)nicole mazzuca
* [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-14[vcpkg formatting] Turn off DeriveLineEnding (#12368)nicole mazzuca
* [vcpkg formatting] Turn off DeriveLineEnding * format * Add newlines to the end of files Since we're reformatting anyways
2020-07-13[vcpkg] Track hashes of cmake script helpers in consuming portfiles (#12254)ras0219
* [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[vcpkg] Enable binary caching by default (#12370)ras0219
* [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-11[vcpkg formatting] Fix format regex (#12369)nicole mazzuca
* [vcpkg formatting] correct the header regexes * format
2020-07-09[vcpkg] Remove unnecessary work queue (#12350)nicole mazzuca
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[vcpkg] Move default binary cache from `$root/archives` to user-wide ↵ras0219
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[vcpkg manifests] fix some issues (#12227)nicole mazzuca
Fixes #12190 Fixes #12208 Fixes #12234 Fixes #12286 Fixes #12315 Fixes #12186 Fixes #12331 Fixes googleapis/google-cloud-cpp#4487
2020-07-07[vcpkg] Implement --editable (#12200)ras0219
--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-06[vcpkg] Format the C++ in CI (#11655)nicole mazzuca
* [vcpkg] Format the C++ in the CI * format the C++ * CR
2020-07-06[vcpkg] Remove use of std::variant and std::visit to fix VS2015. (#12242)ras0219
Fixes #12220 Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-02[vcpkg] Remove the tombstones and 'ignore' baseline concepts. (#12197)Billy O'Neal
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-01[vcpkg] Remove all uses of Foo::Foo() noexcept = default; to fix #9955 (#12201)ras0219
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-01[vcpkg] Enable NuGet-based binary caching via mono (#12170)ras0219
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-01[vcpkg] Implement --x-write-nuget-packages-config= setting for `install` and ↵ras0219
`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-06-30[vcpkg] Fix `vcpkg export --nuget` regressions (#12174)ras0219
* [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[vcpkg manifest] Manifest Implementation (#11757)nicole mazzuca
==== 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-26[vcpkg] Delete unused --purge-tombstones and introduce BufferedPrint class ↵Billy O'Neal
(#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[vcpkg] Implementation of --x-binarysource=nuget (and friends) (#12058)ras0219
* [vcpkg] Initial implementation of --x-binarysource=nuget * [vcpkg] Remove double-double quoting of CMake arguments * [vcpkg] Update nuget.exe to 5.5.1 to support Azure DevOps Artifacts * [vcpkg] Enable batching of NuGet server calls with prefetch(). Add `interactive` binarysource. * [vcpkg] Add `nugetconfig` binary source * [vcpkg] Short circuit querying remote NuGet servers once all refs are found * [vcpkg] Add experimental help for binary caching * [vcpkg] Improved NuGet cache package descriptions and version formatting * [vcpkg] Rename `CmdLineBuilder::build()` to extract() * [vcpkg-help] Ascii-betize help topics * [vcpkg] Add tests for cmdlinebuilder. Improve handling of quotes and slashes. * [vcpkg] Addressing code review comments * [vcpkg] Add tests for vcpkg::reformat_version() * [vcpkg] Added test for vcpkg::generate_nuspec() * [vcpkg] Add tests for vcpkg::XmlSerializer * [vcpkg] Addressed code review comment * [vcpkg] Add test for vcpkg::Strings::find_first_of * [vcpkg] Fix machine-specific paths in test for vcpkg::generate_nuspec() Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-06-26[vcpkg] Use XDG/LOCALAPPDATA for default binary caching path (#12091)ras0219
* [vcpkg] Use XDG Base Directory Specification on non-Windows * [vcpkg] Move user-wide binary cache on Windows to $LOCALAPPDATA/vcpkg/archives * [vcpkg] Address code review comments; refactor other uses of LOCALAPPDATA * [vcpkg] Address code review comments * [vcpkg] filesystem::path::append() accepts string arguments, not paths. Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-06-25[vcpkg build] fix build command (#12072)nicole mazzuca
2020-06-22[vcpkg] Track compiler information in ABI (#11654)ras0219
* [vcpkg] Refactor out abi_tags_from_pre_build_info() * [vcpkg] Track Windows toolchain file in triplet hash * [vcpkg] Improve error messages when constructing PreBuildInfo * [vcpkg] Extract InstallPlanAction::BuildAbiInfo * [vcpkg] Extract Build::EnvCache and private-impl VcpkgPaths * [vcpkg] Enable compiler hash detection when binarycaching is enabled * [vcpkg] Downgrade warning about missing ABI keys When binarycaching is not enabled, this warning is spurious and provides no user value. * [vcpkg] Cleanup * [vcpkg] Refactor compiler tracking into triplet abi computation Move several static global caches into VcpkgPaths/EnvCache. Add feature flag 'compilertracking' to enable the new feature. * [vcpkg] Refactor out PreBuildInfo::using_vcvars() Move VcpkgTripletVar into build.cpp because it is not used outside that file. * [vcpkg] Address some code analysis warnings Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-06-17[vcpkg] Fix issue #9781 by exporting from the installed directory (#11015)ras0219
* [vcpkg] Fix issue #9781 by exporting from the installed directory * [vcpkg] Address code review comments for #11015 * [vcpkg] Remove duplicate triplet in installed path from exports Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-06-16[vcpkg] Fix create by extracting common paths settings (#11842)Billy O'Neal
Resolves #11784
2020-06-15[vcpkg] Delete g_binary_caching global that should be passed as a parameter. ↵Billy O'Neal
(#11958)
2020-06-15[vcpkg] Add vcpkg item to project settings in Visual Studio (#4361)Alexander Neumann
Co-authored-by: Curtis J Bezault <curtbezault@gmail.com> Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com> Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-06-03[vcpkg] Allow CI to pass in all relevant directories and remove use of ↵Billy O'Neal
symbolic links (#11483)
2020-05-29[vcpkg metrics] Allow someone to opt out after build (#11542)nicole mazzuca
* [vcpkg metrics] start using json library Additionally, add floats to the JSON library since they're required. * [vcpkg metrics] allow users to disable metrics after the build Additionally, as a drive by, fix UUID generation * fix metrics data * code review
2020-05-27[vcpkg] Move CI cleaning back out of the 'ci' command into a separate ↵Billy O'Neal
command to restore cross-compilation preinstalls. (#11545)
2020-05-20[vcpkg] fix extern C around ctermid (#11343)nicole mazzuca
Additionally, move the system_header invocations to their own header file, <vcpkg/base/system_header.h>
2020-05-19[vcpkg] Optimize string split slightly. (#11433)Billy O'Neal
2020-05-19[vcpkg] Harden file removals and clean directory contents in "CI" inside ↵Billy O'Neal
vcpkg itself. (#11432) `files.h/files.cpp`: * Add end and else comments to all macros. * Add "remove_all_inside" function which empties a directory without actually deleting the directory. This is necessary to handle the case where the directory is actually a directory symlink. * Change remove_all to use std::remove when VCPKG_USE_STD_FILESYSTEM is set; this will engage POSIX delete support available on current Win10. `commands.ci.cpp`: empty "installed". `*/initialize_environment.*`: No longer clean the directories outside the tool. `ci-step.ps1`: Remove unused console output tee-ing.