aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/vcpkg-test
AgeCommit message (Collapse)Author
2020-11-18[vcpkg] Add experimental x-azblob binary provider (#13626)ras0219
* [vcpkg] Add experimental x-azblob binary provider * [vcpkg] Test azblob storage provider in CI * [vcpkg] Address some CR comments from #13639 * [vcpkg] Fixup azure-pipelines * [vcpkg] Fix regression where the downloaded package is purged before decompressing * [vcpkg] Further refactor vcpkg::Downloads * [vcpkg] Enable OSX for x-azblob testing * [vcpkg] Reduce diff against master * [vcpkg] Extract Downloads::details::split_uri_view * [vcpkg] Address PR comments * [vcpkg] Add testing and metrics for x-azblob * [vcpkg] Add docs for x-azblob This includes a note that it is currently experimental * [vcpkg] Address CR comments * [vcpkg] Revert pipeline changes except OSX to minimize disruption Co-authored-by: Robert Schumacher <roschuma@microsoft.com> Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-11-13[vcpkg] Implement constraints and overrides in manifests (#14183)ras0219
* [vcpkg] Implement constraints in manifests * [vcpkg] Add SourceControlFile::check_against_feature_flags to prevent accidentally ignoring versioning fields * [vcpkg] Switch check_against_feature_flags to accept fs::path * [vcpkg] Implement overrides parsing in manifests * [vcpkg] Address CR comments Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-11-09[vcpkg] Initial Registries: Part 2 MVP (#14153)nicole mazzuca
* [vcpkg wip] start implementation of registries pt. 2 * Remove the `ports` field of `VcpkgPaths` This is an implementation detail, and so we want to make sure that it's obvious that this is an internal detail; thus, we add a new function `builtin_ports_directory()`, which returns the directory where the builtin ports backing store is. * continue WIP * wip * It works! * format * fix some issues * switch from function static to DelayedInit * fix lexically_normal for experimental::filesystem * format * fix missing include * add STL notice * whee error handling * moar error handling! * ignore extra files in registries * formatting * Billy CRs * Update toolsrc/include/vcpkg/versiont.h * fix add_filename test * fix tests * remove unused function add_filename
2020-10-27[vcpkg, jsonnet, openssl-uwp] Enable use of the system powershell-core if it ↵Billy O'Neal
is present. (#13805)
2020-10-26[vcpkg] Implement versions db generator (#13777)Victor Romero
* [vcpkg] Add script to generate ports versions history * [vcpkg] Fix formatting * Fetch port versions from commit ID * Use global --x-json switch * Use --no-checkout when cloning secondary instance * Clone from local repository instead of from GitHub * Use CmdLineBuilder to build git commands * Use CmdLineBuilder and reduce repeated code * Fetch version at baseline and code cleanup * Guess version scheme from old CONTROL files * Rename version db generator script * Simplify x-history json output * Use CONTROL/manifest parsers on x-history * Use git-tree instaed of commit-id * Remove 'ports' field from root object * Clean up code * More code cleanup * Improve port version detection * Improve generator logging * Do not ignore parsing errors in CONTROL files * PR review comments in Python script * Fix subprocess.run() calls * Make `canonicalize()` return error instead of terminating * [vcpkg] Add tests for new test_parse_control_file paths * Remove unnecessary std::move() calls * Fix formatting * Python formatting Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-10-24Replace fwd header files to declarations (#13972)Cengizhan Pasaoglu
2020-10-21[vcpkg] Add `versions` feature flag and version field manifest parsing (#14079)ras0219
* [vcpkg] Add `versions` feature flag and version field manifest parsing * Introduce FeatureFlagSettings struct to more easily access feature flags throughout the program * To avoid users accidentally starting to write "version" instead of "version-string" in their manifests, vcpkg explicitly detects and prevents usage of ports with schemes other than "String" * Drive-by fix of copiable SourceControlFileLocation and an exposed use-after-move bug This code is largely extracted from PR #13777 Co-authored-by: Victor Romero <romerosanchezv@gmail.com> * [vcpkg] Address CR Comments. Fix test crash on Linux. Co-authored-by: Robert Schumacher <roschuma@microsoft.com> Co-authored-by: Victor Romero <romerosanchezv@gmail.com>
2020-10-12[vcpkg] Further JSON error improvements (#13399)ras0219
* [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-08[vcpkg] Use more forward declarations rather than definitions (#13623)Cengizhan Pasaoglu
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-10-07Always accept = or space as delimiters when parsing common command line ↵Billy O'Neal
parameters. (#13857) Resolves #11456.
2020-10-06[vcpkg] Enable reentrant vcpkg calls (#13751)ras0219
* [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-09-27[vcpkg] Add compiler info to nuspec description (#13571)Francois Rivard
* 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-22[vcpkg] Fix the case of current_path() before use on Windows. (#13537)Billy O'Neal
* 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 https://github.com/curl/curl/archive/9d954e49bce3706a9a2efb119ecd05767f0f2a9e.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-14[vcpkg manifest] Add documentation! (#13488)nicole mazzuca
* [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-11[vcpkg] Merge the vcpkg metadata uploader into the vcpkg binary (#13421)Billy O'Neal
2020-09-07[vcpkg] Improve Json error messages (#12981)ras0219
* [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-02[vcpkg] Registries MVP (#13038)nicole mazzuca
2020-08-31[vcpkg] Implement 'repository' tag for NuGet binary caching (#13228)ras0219
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-25[vcpkg] Fix #13094 by avoiding the comma operator. (#13117)Billy O'Neal
* Fix #13094 by avoiding the comma operator. Drive-by remove unused parenthesis and remove macro inversion in metrics.cpp.
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] 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-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] 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-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-11[vcpkg formatting] Fix format regex (#12369)nicole mazzuca
* [vcpkg formatting] correct the header regexes * format
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-06[vcpkg] Format the C++ in CI (#11655)nicole mazzuca
* [vcpkg] Format the C++ in the CI * format the C++ * CR
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 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] Add write-only binary caching for CI. (#12130)Billy O'Neal
Changes to the binary caching spec made as comments over at https://github.com/microsoft/vcpkg/pull/11204#pullrequestreview-438518901
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] Fix "[commands-build] build smoke test" (#12128)ras0219
* [vcpkg] Fix "[commands-build] build smoke test" 1. Do not exit with a success code in Build::perform, because this causes failures in other tests to be ignored. 2. Use temp directory to avoid interference with the current set of {installed, buildtrees, packages} 3. Explicitly disable binary caching * [vcpkg] Disable binarycaching in "build smoke test", "[commands-build]" Return 1 for the last failure case in Build::perform() so testing may continue. Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-06-25[vcpkg build] fix build command (#12072)nicole mazzuca
2020-06-16[vcpkg] Fix create by extracting common paths settings (#11842)Billy O'Neal
Resolves #11784
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-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-15[vcpkg] Avoid naming Policheck sensitive term 'Virgin Islands' (#11339)Billy O'Neal
2020-05-14[vcpkg] Turn on tests and PREfast in CI, and fix tests to pass. (#11239)Billy O'Neal
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-04-29[vcpkg] Correctly record default feature list in BinaryParagraphs. Fixes ↵Robert Schumacher
#10678. (#11085)
2020-04-29[vcpkg] Small touchups for vcpkg unit tests (#11068)Martin Hořeňovský
* Do not disable expression decomposition in some optional tests The tests are trivial enough that it is unlikely to come useful, but the old usage is bad practice. * Run tests in random order This should prevent committing tests that are run-order dependent, or at least shake them out eventually in CI.
2020-04-29[vcpkg] Add support for VCPKG_BINARY_SOURCES and --x-binarysource=<> (#10476)Robert Schumacher
* [vcpkg] Add support for VCPKG_BINARY_SOURCES and --binarysource=<> * [vcpkg] Rename --binarysource to --x-binarysource to denote internal/experimental * [vcpkg] Address review comments & add tests for BinaryConfigParser * [vcpkg] Replace do {} while(1); with for(;;) Avoids conditional expresion is constant warnings * [vcpkg] Invert if/else * [vcpkg] Fix warning in export.prefab.cpp * [vcpkg] Resolve merge regressions
2020-04-17[vcpkg] Add initial JSON support (#10521)nicole mazzuca
* [vcpkg] Add initial JSON support This adds a JSON parser, as well as the amount of unicode support required for JSON parsing to work according to the specification. In the future, I hope to rewrite our existing XML files into JSON. Additionally, as a drive-by, we've added the following: * add /wd4800 to pragmas.h -- this is a "performance warning", for when you implicitly convert pointers or integers to bool, and shouldn't be an issue for us. * Switched Parse::ParserBase to read unicode (as utf-8), as opposed to ASCII * Building again under VCPKG_DEVELOPMENT_WARNINGS, yay!
2020-04-14[vcpkg] Clean up CMake build system (#10834)nicole mazzuca
There are quite a few changes to the CMake build system packaged up into one set here: * Added `toolsrc/cmake/utilities.cmake`, which contains the following: * `vcpkg_detect_compiler` -- get the name of the C++ compiler, as one of {gcc, clang, msvc} * `vcpkg_detect_standard_library` -- get the name of the standard library we're linking to, as one of {libstdc++, libc++, msvc-stl} * `vcpkg_detect_std_filesystem` -- figure out how to link and call into C++17's filesystem; whether one needs to link to `stdc++fs` or `c++fs`, and whether to use `<filesystem>` or `<experimental/filesystem>`. * Added a `VCPKG_WARNINGS_AS_ERRORS`, split off from `VCPKG_DEVELOPMENT_WARNINGS`, which allows one to use the development warnings without passing -Werror * Rename `DEFINE_DISABLE_METRICS` to `VCPKG_DISABLE_METRICS` -- the former will now print a deprecation message and set the latter. * Now, print a deprecation message on `WERROR`; it doesn't do anything since the behavior it requested is now the default. * Pass `-std=c++17` if the compiler allows it, instead of `-std=c++1z` * Do some code movement * Pass `USE_STD_FILESYSTEM` if possible, instead of only on minGW * Renamed to `VCPKG_USE_STD_FILESYSTEM` Additionally, we now pass `/W4` in Debug mode on x86 in the Visual Studio build system; this brings it in line with the CMake build system, and the x64 Visual Studio build system. And finally, we make some minor code changes to support compiling in VCPKG_DEVELOPMENT_WARNINGS mode.