Commit Graph

788 Commits

Author SHA1 Message Date
Victor Romero 4b404e8cfb
Revert "[vcpkg install] Enable Download Mode (#7797)" (#7949)
This reverts commit 65d4bc146b.
2019-08-28 11:59:30 -07:00
Victor Romero 65d4bc146b
[vcpkg install] Enable Download Mode (#7797)
* [portfile functions] Override execute_process() to accept ALLOW_IN_DOWNLOAD_MODE option

* [vcpkg install] Set VCPKG_DOWNLOAD_MODE when using --only-downloads option

* [vcpkg_find_acquire_program] Allow in Download Mode

* Don't stop when build fails for a package

* Download sources for all packages in dependency graph

* Improve output messages

* Enable acquiring MSYS packages in download mode

* Documentation

* Update documentation

* execute_process() always fails on Download Mode

* Regenerate docs and fix formatting

* Run clang-format

* Use _execute_process on vcpkg_from_<source> helpers
2019-08-28 11:47:17 -07:00
Nicole Mazzuca 7827239593 (#7757) [vcpkg] Switch to internal hash algorithms 📜
On non-Windows platforms, there is no standard way to get the hash of an
item -- before this PR, what we did was check for the existence of a few
common utility names (shasum, sha1, sha256, sha512), and then call that
utility on a file we created containing the contents we wish to hash.
This PR adds internal hashers for sha1, sha256, and sha512, and
standardizes the interface to allow anyone to implement hashers in the
future.

These hashers are not extremely optimized, so it's likely that in the
future we could get more optimized, but for now we just call out to
BCryptHasher on Windows, since it's standard and easy to use (and about
2x faster for sha1 and sha256, and 1.5x faster for sha512). However,
they are reasonably fast for being unoptimized. I attempted a few minor
optimizations, which actually made the code slower! So as of right now,
it's implemented as just a basic conversion of the code on Wikipedia to
C++. I have tested these on the standard NIST test vectors (and those
test vectors are located in vcpkg-test/hash.cpp).
2019-08-26 12:35:22 -07:00
Curtis J Bezault 4da95d667c
[vcpkg]Port toolchains (#7687)
* checkpoint commit

* Only set VCPKG_ENV_OVERRIDES_FILE if it exists

* First pass at working port-toolchain

* Update VERSION.txt

* Return rvalue

* Fix compilation error

* Some fixes are requested by @ubsan

* Fix another compilation error
2019-08-20 08:47:26 -07:00
Nicole Mazzuca 300e21d59e [vcpkg] Major tool CMakeLists.txt updates
- Add the "VCPKG_DEVELOPMENT_WARNINGS" flag
	- setting "WERROR" will also set this flag
	- This flag is set by default
	- on GCC/clang, this will pass '-Wall -Wextra -Wpedantic -Werror'
	- on GCC, this will additionally pass '-Wmissing-declarations'
	- on clang, this will additionally pass '-Wmissing-prototypes'
	- on MSVC, this will pass '-W4 -WX'
- On Visual Studio 2017 and later, pass '-permissive-'
- Change the source for fallout of these changes
- add `format` subcommand
	- formats all C++ source and header files using clang-format
- move `include/vcpkg-test/catch.h` to `include/catch2/catch.hpp`
- pass CONFIGURE_DEPENDS to file(GLOB)
2019-08-16 19:40:53 -07:00
Curtis J Bezault b47ca1b012
Merge pull request #7305 from cbezault/external_file_abi
[vcpkg] Public ABI override option
2019-08-16 13:51:22 -07:00
Victor Romero edaf3bf91e
[depend-info] Fix bugs, add `--sort`, `--show-depth` and `--max-recurse` options (#7643)
* [depend-info] Follow same rules as vcpkg install

* [depend-info] Add --max-depth and --sort options

* [depend-info] Improve output readability (a tiny bit)

* [depend-info] Add --show-depth option

* [depend-info] Fix build on VS 2015

* [depend-info] Fix output of --dot and --dgml
2019-08-14 15:38:07 -07:00
nicole mazzuca 875648e10b [vcpkg] Fix the build on VS2015 debug (#7637)
The VS2015 standard library requires, in debug mode, a comparison
operator on `T × U` and `U × T` to also be a comparison operator on
`T × T` and on `U × U`, and so in
vcpkg::Install::install_package::intersection_compare, I've added two
new `operator()` overloads which take those respectively, on VS2015.

Also, `[nodiscard]` was added to somewhere in `vcpkg/base/strings.h`,
which gives a warning in VS2015 -- thus, I added the `vcpkg/pragmas.h`
include, since that fixes the warning.
2019-08-12 14:02:59 -07:00
Nicole Mazzuca 420dbffaa0 clang-format, and fix a leftover 2019-08-10 13:13:21 -07:00
Nicole Mazzuca 52b2e740de [vcpkg] Fix build under /W4
I was building under /W3, because CMake hadn't been set up to build
under /W4 -- therefore, I didn't see some warnings.

We also decided to remove the niebloids and instead break ADL by using
`= delete`, since otherwise we get warnings when we define a local
variable with the same name as a niebloid. I also removed `status` and
`symlink_status` from the `files` header, since it's unnecessary now,
and they're just implementation details of `RealFilesystem`.

I also removed some existing uses of unqualified `status(path)`, since
that no longer compiles. I also added `Filesystem::canonical`, to remove
another use of `fs::stdfs` in a function I was already working in.
2019-08-10 13:13:21 -07:00
Curtis.Bezault f9561a08db remove unnecessary include, fix variable extraction 2019-08-09 14:47:58 -07:00
Curtis.Bezault 0c7d8f4146 Change purpose of this PR to just overriding the abi 2019-08-09 14:21:58 -07:00
Curtis J Bezault c4f1a91ef2
Merge branch 'master' into external_file_abi 2019-08-09 11:59:32 -04:00
Nicole Mazzuca e79f0dc532 [vcpkg] Make Filesystem::remove_all faster #7570
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.
2019-08-07 16:51:12 -07:00
Phil Christensen 22e0b9f376
improve logic expression evaluation (#7508)
* better logic expression evaluation

Improve the logic expression evaluation currently used when filtering
dependencies.

Biggest improvements:
+  Allow '|' operator
+  Support nested '()'
+  Allow whitespace
+  Useful error message for malformed expressions

Also changed names of types to RawParagraph when that is what the original author was using.
2019-08-02 21:37:49 -07:00
nicole mazzuca f990dfaa5b [vcpkg] Fix RealFilesystem::remove_all (#7430)
* fix remove_all

we were attempting to remove READONLY files before this, and so set them to non-READONLY

* fix linux/macos support

* whee fix vs2015
2019-07-26 16:32:33 -07:00
Curtis J Bezault d60047280d
Merge branch 'master' into external_file_abi 2019-07-24 14:26:34 -07:00
Curtis.Bezault 0c7669d009 store fs::path instead of std::string 2019-07-24 14:24:49 -07:00
Curtis.Bezault d68b9a08b1 only use filename 2019-07-23 16:28:00 -07:00
Curtis.Bezault 81909e47d1 Remove types from this PR 2019-07-23 15:38:09 -07:00
Curtis.Bezault 829f99b506 remove needs_rebuild from statusparagraphs 2019-07-23 15:36:13 -07:00
Curtis.Bezault 62ec13ba36 Merge build.cpp 2019-07-23 15:29:49 -07:00
Curtis.Bezault 2f2a45595f Prompt rebuild if external hash changes 2019-07-23 15:26:13 -07:00
Curtis.Bezault 459908ae14 add external file hashes to the binary paragraph 2019-07-23 10:07:39 -07:00
Nicole Mazzuca 0d8bba52e4 allow tests to run on older standard libraries 2019-07-19 23:20:28 -07:00
Nicole Mazzuca c55ea0a0d5 switch to new test framework 2019-07-19 12:56:24 -07:00
Nicole Mazzuca b3caf67749 Merge branch 'trunk' into parallel-file-ops 2019-07-19 12:17:22 -07:00
Curtis J Bezault 18c849daea
Merge branch 'master' into external_file_abi 2019-07-19 08:08:08 -07:00
Curtis J Bezault 618fa203c1
[vcpkg] Portfile Settings (#7292) 2019-07-19 08:01:38 -07:00
nicole mazzuca 8250553789 Rewrite the tests! now they're cross-platform! (#7315)
* 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
2019-07-18 19:07:00 -07:00
Nicole Mazzuca fddebb75da clang-format all the things 2019-07-18 19:03:46 -07:00
Curtis.Bezault d39bd70d53 add needs_rebuild, should probably be moved to somewhere else 2019-07-18 13:24:31 -07:00
Curtis J Bezault bb3a9ddb6e
[vcpkg] Environment Variable Passthrough (#7290)
* use additional env param

* remove partials

* remove change to linux triplet

* Fix some issues that vicroms pointed out

* whitespace change
2019-07-18 09:02:21 -07:00
Curtis.Bezault f18ffe9968 Add type field 2019-07-17 16:04:05 -07:00
Curtis.Bezault 58958eb0ea sourceparagraph changes 2019-07-17 14:27:18 -07:00
Curtis.Bezault d4ab567609 first pass at abi additional files 2019-07-17 10:10:36 -07:00
Curtis.Bezault 7d9d457f58 revert unecessary reordering 2019-07-16 16:09:30 -07:00
Curtis.Bezault 44dcc3d4f3 First pass at port settings 2019-07-16 15:34:13 -07:00
Curtis.Bezault 684989a1e4 use additional env param 2019-07-16 14:02:13 -07:00
Nicole Mazzuca 65d34c5e55 wheeeee more fixes 2019-07-15 18:51:03 -07:00
Nicole Mazzuca a0fe40ea58 add tests!
Also, fix all the bugs I found when I wrote the tests!
2019-07-11 18:21:25 -07:00
Nicole Mazzuca 510b0c5cc0 fix more comments 2019-07-11 18:21:09 -07:00
Nicole Mazzuca 3190235875 fix some comments from code reviewers 2019-07-11 18:20:36 -07:00
Nicole Mazzuca bb57907207 make it compile on macos under g++6 2019-07-11 18:20:36 -07:00
Nicole Mazzuca 5b76f24f35 make this compile on macos 2019-07-11 18:20:36 -07:00
Nicole Mazzuca 3b6d6b3465 actually get the code compiling 2019-07-11 18:20:35 -07:00
Nicole Mazzuca 43493b56df delete the random number generator 2019-07-11 18:20:35 -07:00
Nicole Mazzuca 2d6df16849 remove_all parallelized, and fix the issues with symlink 2019-07-11 18:20:35 -07:00
Nicole Mazzuca 5857e2c680 initial remove-in-parallel
doesn't actually do parallel remove yet
2019-07-11 18:20:35 -07:00
gnaggnoyil 7f80c0e2d3 Make handle features (#6797) 2019-07-09 16:02:48 -04:00
Robert Schumacher 2b8e225b2e
[vcpkg] Fix powershell font corruption bug (#7094)
* [vcpkg] Fix font corruption bug on Windows by downloading Powershell Core

* [vcpkg] Rename subtool to powershell-core

* [vcpkg] Add missing includes to project files
2019-07-06 13:29:46 -07:00
martin-s 91da4aab4c Allow redirection of the scripts folder. (#6552)
* 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
2019-07-01 22:51:07 -07:00
Victor Romero 35e985d3cc
Triplets Overlay Implementation (#7053)
* Triplets Overlay Implementation

* Use cache for get_triplet_file_path()

* Code cleanup
2019-06-27 12:20:12 -07:00
Victor Romero 9e565e9867
[--overlay-ports] Show location of overriden ports during install plan (#7002)
* [--overlay-ports] Show source location of overlayed ports during install plan

* Code cleanup

* Code cleanup
2019-06-24 12:09:48 -07:00
Victor Romero f3db66b403
Ports Overlay partial implementation (#6981)
* Ports Overlay feature spec

* Ports Overlay implementation

* [--overlay-ports] Refactor handling of additional paths

* Code cleanup

* [--overlay-ports] Add help

* [depend-info] Support --overlay-ports

* Add method to load all ports using PathsPortFileProvider

* Make PortFileProvider::load_all_control_files() const

* Remove unused code

* [vcpkg] Avoid double-load of source control file between Build::perform_and_exit and Build::perform_and_exit_ex

* [vcpkg] Clang format

* [vcpkg] Fixup build failure introduced in b069ceb2f2

* Report errors from Paragraphs::try_load_port()
2019-06-21 23:50:05 -07:00
Stephan T. Lavavej f0902b3537 VS 2019 16.3 deprecates <experimental/filesystem>. (#6968)
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).
2019-06-20 11:46:55 -07:00
Sean Yen 4c7188919a Add version-suffix and maintainer options. 2019-06-19 16:36:48 -07:00
seanyen e5a6c7a7a6 first check-in. 2019-06-19 16:36:47 -07:00
Robert Schumacher e5b92a3911
[vcpkg] Improve vcpkg::Files::Filesystem error handling (#6919)
* [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
2019-06-19 11:49:57 -07:00
Curtis J Bezault b7d6160b80
[icu] Enable parallel builds (#6695)
* Add VCPKG_NUM_LOGICAL_CORES

* break out logic that retries running a command several times into its own function

* Parallelize icu
2019-06-12 14:18:43 -07:00
Phil Christensen d962dc7d65 [vcpkg] Add optional 'Homepage' field to CONTROL (#6844)
* [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.
2019-06-10 16:35:22 -07:00
Robert Schumacher 8045248372
[vcpkg] Apply clang format (#6826) 2019-06-08 18:31:58 -07:00
Sean Warren 17623739df [toolsrc] Optionally allow vcpkg to clean after each build (#6522)
* [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
2019-05-23 11:24:02 -07:00
Robert Schumacher 77af264118
[vcpkg] Fix regression in `--debug`. Remove old `features` featureflag. (#6507) 2019-05-18 18:15:31 -07:00
grdowns eeac6187c9 Merge branch 'depend_info_no_recurse' of https://github.com/jediry/vcpkg into dev/grdowns/6055 2019-04-11 19:10:08 -07:00
Curtis J Bezault 8fe6f4bdd8 Print what port installed confliciting files (#6037) 2019-04-11 08:27:44 -07:00
Ryan Saunders a492caf9d5 Merge branch 'master' into query_deps 2019-04-10 23:07:17 -07:00
Ryan Saunders 80965287d1 Add --no-recurse switch to depend-info command. 2019-04-10 23:01:37 -07:00
Victor Romero 1db72cd0ea Revert "Print what port installed confliciting files"
This reverts commit 79682317c9.
2019-04-09 15:55:20 -07:00
Curtis J Bezault b1b7ec5c0b
Merge branch 'master' into master 2019-04-09 15:22:49 -07:00
Curtis.Bezault 79682317c9 Print what port installed confliciting files 2019-04-09 15:04:44 -07:00
Robert Schumacher b39b0899cb [vcpkg] Synchronize vcpkg-base with external repo (#5934) 2019-04-08 23:26:18 -07:00
Griffin Downs c63e466dd6
Revert "Use feature macro to check for support of filesystem" 2019-03-21 14:10:54 -07:00
Griffin Downs 61922f919f Update check for VS2015 2019-03-12 16:46:40 -07:00
Griffin Downs 1c879a4b92 Use identical check when creating namespace alias 2019-03-12 15:05:49 -07:00
Don 795eb45248 Use feature macro to check for support of filesystem
Rather than defaulting to std::experimental::filesystem in files.h a feature
macro can be used to determine what stdfs uses.
2019-03-12 10:12:18 -07:00
Phil Christensen 8fd34506c3 [vcpkg] improve xunit xml output used in CI tests 2019-02-21 22:24:20 -08:00
Robert Schumacher 39b7876db4 [vcpkg] Randomize topological sort in CI plans to allow concurrent builds to more efficiently interact 2019-01-22 17:11:36 -08:00
Billy O'Neal (VC LIBS) 02839ae4a8 vcpkg was going out of its way to use partition before calling the container erase function which is slower than just using remove_if.
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.
2018-11-15 11:24:24 -08:00
Alexander Karatarakis f19df646a0 Survey times. Refactor Chrono stuff. All times UTC, unless explicitly mentioned
Survey is set to be every 6 months, but you also get one in the first 10 days.
2018-10-17 19:43:15 -07:00
LRFLEW 3d12e5ca72 Handle symlink when installing or removing a library (#4479) 2018-10-17 11:46:27 -07:00
Robert Schumacher df82d21f32 [vcpkg] Fix OSX build for old GCC versions 2018-10-16 05:53:57 -07:00
Robert Schumacher 56e1d2f696 [vcpkg] Wrap all external process spawning in a Ctrl-C catcher to avoid corrupted consoles 2018-10-16 00:35:47 -07:00
Alexander Karatarakis 276da906c5 Remove status_known() 2018-10-09 20:14:51 -07:00
Alexander Karatarakis 1f79c92eb0 Add command x-vsinstances 2018-09-18 20:55:35 -07:00
Robert Schumacher da9850efc7 [vcpkg-ci] Fix bug in "vcpkg ci" which results in different features being installed than originally desired. 2018-07-12 02:24:02 -07:00
Robert Schumacher d977ac231e [vcpkg] Remove vcpkg::Archives from vcpkg::base. Add vcpkg::Hash. 2018-07-09 07:06:29 -07:00
Robert Schumacher 802f51a142 [vcpkg] Split vcpkg::Commands::Fetch into backend and frontend 2018-07-09 06:29:37 -07:00
Robert Schumacher 03a038cb86 [vcpkg] Improve metrics performance on Windows 2018-06-30 19:48:26 -07:00
Robert Schumacher 3ff69f138b [vcpkg] Warn instead of fail on tombstone 2018-06-30 19:48:25 -07:00
Robert Schumacher 3314845a92 [vcpkg] Remove calls to where.exe to improve startup performance 2018-06-27 23:15:48 -07:00
Robert Schumacher 0ad79a67c7 [vcpkg] Enable storing archives across filesystems 2018-06-27 18:58:29 -07:00
Alexander Karatarakis 6b7b82c58a [fetch] Refactor to allow getting the version along with the path 2018-06-19 23:07:31 -07:00
Alexander Karatarakis 31374871f2 Rename VcpkgStringRange -> StringRange 2018-06-19 23:07:31 -07:00
Alexander Karatarakis c256ccf452 Introduce stringrange.h/cpp and visualstudio.h/cpp 2018-06-19 23:07:31 -07:00
Alexander Karatarakis dbae3bfe56 Introduce archives.h/cpp 2018-06-19 23:07:31 -07:00
Alexander Karatarakis 3e76baa163 Introduce downloads.h/cpp 2018-06-19 23:07:31 -07:00
Robert Schumacher 78e4d07e84 [vcpkg] Improve CMake messages to account for case-sensitive filesystems.
Improve CMake messages to display shortest targets first (which are hopefully the "public" ones).
Also, fix bug in StringLiteral.
2018-05-22 03:37:40 -07:00
Alexander Karatarakis 285c69b0fa [c++] Condense powershell helper code into the remaining single usage
`vcpkg integrate powershell` uses it
2018-05-19 19:23:33 -07:00
Alexander Karatarakis f69cce7051 Fix typo 2018-05-16 15:34:13 -07:00
Alexander Karatarakis 1b0682a39e [vcpkg] Significantly reduce usage of powershell. Reduce console font switching bug 2018-05-15 23:27:14 -07:00
Robert Schumacher 8f0ebdf8d5 [vcpkg] Remove utf16 usage from non-Windows 2018-05-03 15:03:35 -07:00
Robert Schumacher a9d989ec05 [vcpkg-integrate-install] Add vcpkg.path.txt to localappdata for more generic consumption. 2018-04-28 14:17:52 -07:00
Alexander Karatarakis 9167511656 Fix #3170 issue with /permissive- 2018-04-25 18:15:54 -07:00
Alexander Karatarakis f6530368eb Remove noexcept from BinaryParagraph() 2018-04-25 00:19:27 -07:00
Robert Schumacher a2aeb2f194 [vcpkg] Mark many types noexcept. Make certain code patterns more transparent to /analyze. #ifdef-out unused code on non-windows. 2018-04-12 00:47:17 -07:00
Robert Schumacher 8da8f3e5b3 [vcpkg] Rework dependencies.cpp to improve type safety and error detection 2018-04-11 23:48:32 -07:00
Alexander Karatarakis 77338ee0df Remove more unused #include directives 2018-04-07 04:55:37 -07:00
Alexander Karatarakis 402bbbc1e2 [Checks] Take parameter by ref 2018-04-06 19:31:20 -07:00
Alexander Karatarakis 80f16f769e Use Cache class 2018-04-06 17:26:59 -07:00
Alexander Karatarakis 1bfb01cfee [vcpkg hash] Add sanity checking 2018-04-06 17:26:58 -07:00
Alexander Karatarakis e712308554 [vcpkg hash] Add string hashing (as opposed to file hashing) 2018-04-06 17:24:46 -07:00
Alexander Karatarakis 870fa61e01 [vcpkg hash] Don't use cmake for non-windows hashes. Use shasum instead 2018-04-06 17:24:46 -07:00
Alexander Karatarakis 0c0f68939e Introduce "vcpkg fetch" 2018-04-06 17:24:46 -07:00
Jacob Zhong 892f7052f9 [vcpkg] Add support of external downloader aria2 2018-04-02 18:48:14 -07:00
Alexander Karatarakis adccba04db [vcpkg.exe] Look for vcpkgTools in downloads/tools/$toolname-$toolversion
(only non-windows currently)
2018-04-02 18:47:37 -07:00
Alexander Karatarakis 3a91b0072d Fix name 2018-03-24 01:28:24 -07:00
Alexander Karatarakis 69dfad795f Introduce Maps::transform_values() 2018-03-24 01:27:40 -07:00
Robert Schumacher 1f62b32641 [vcpkg] Sort abi tags to ensure stability 2018-03-22 10:01:12 -07:00
Alexander Karatarakis d45954a96b System::get_program_files() now returns Optional<fs::path> 2018-03-21 18:21:30 -07:00
Robert Schumacher d80dd5cbc7 [vcpkg] Handle failure to store archive 2018-03-20 19:14:20 -07:00
Alexander Karatarakis ab7985a34b [vcpkg-hash] Use BCrypt on Windows 2018-03-20 19:12:35 -07:00
Robert Schumacher eab1d5c531 [vcpkg-ci] Do not rebuild libraries that were previously successful or failed 2018-03-20 19:12:35 -07:00
Jacob Zhong d253123055 Add options and documentation for env command (#3007)
* [vcpkg] Add options and documentation for env command

* [vcpkg-env] Cleanup. Add tools/*.
2018-03-18 05:24:19 -07:00
Robert Schumacher 90c4b8dbb7 [vcpkg] Further refactoring inside `build_package()` 2018-03-14 09:58:23 -07:00
Robert Schumacher 3c7997215b [vcpkg] Improve default triplets for non-windows 2018-03-13 11:06:22 -07:00
Robert Schumacher f72b46690a [vcpkg] Silence warnings on recent clang 2018-03-13 06:25:59 -07:00
Robert Schumacher 81b9ab1291 [vcpkg] Refactor do_build_package and add archive tombstoning 2018-03-13 04:26:00 -07:00
Robert Schumacher 6670b87c18 [vcpkg] Add VCPKG_DEFAULT_VS_PATH environment variable 2018-03-10 14:19:51 -08:00
Robert Schumacher bad51b0462 [vcpkg] Improve handling of external toolchain files 2018-03-02 09:25:32 -08:00
Robert Schumacher bbbbfb9e79 [vcpkg] Add tests for create_export_plan and remove unused arguments 2018-02-28 12:15:16 -08:00
Robert Schumacher ef4febc7ef [vcpkg] Fix exporting packages with features-depending-on-features 2018-02-28 11:55:29 -08:00
Robert Schumacher 25b8f25dad [vcpkg] Initial commit of experimental compressed binary archiving behind a flag 2018-02-26 18:38:25 -08:00
Robert Schumacher a2e6ffd86d [vcpkg] Refactor VcpkgCmdArguments to not utilize global state 2018-02-26 18:22:17 -08:00
Robert Schumacher e2980c8f91 [vcpkg] Add 7zip internal tool 2018-02-26 18:18:43 -08:00
Robert Schumacher 8b97ae2dc1 [vcpkg] Fix "just-in-time" requirements calculation 2018-02-25 10:40:28 -08:00
Robert Schumacher 0ef0300b8e [vcpkg] Enable metrics on linux 2018-02-21 23:01:54 -08:00
Robert Schumacher 222fa36012 [vcpkg] Fixup previous commit 2018-02-21 22:21:19 -08:00
Robert Schumacher 65e241cf8b [vcpkg] Add non-throwing implementation of write_contents() 2018-02-21 22:18:43 -08:00
Alexander Karatarakis 35e19d5926 Improve error message when we have an error code 2018-02-21 19:35:12 -08:00
Alexander Karatarakis 494f3002bf Add internal option to clean packages\<port> after the build 2018-02-21 15:32:20 -08:00
Robert Schumacher adb0930bc5 [vcpkg-metrics] Adjust reporting of build times 2018-02-20 18:02:09 -08:00
Alexander Karatarakis 9909299039 Expected::check_exit() now always shows line_info if it fails 2018-02-20 16:58:24 -08:00
Robert Schumacher 12f19c7a30 [vcpkg] Remove create_install_plan in favor of create_feature_install_plan 2018-02-19 07:11:30 -08:00
Robert Schumacher 7ed5eb18ec
Merge pull request #2817 from Squareys/fix-build-with-feature-deps
* [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>
2018-02-16 21:32:07 -08:00
Robert Schumacher 452c8ba1ff [vcpkg] Avoid using s::status_known() -- it does not do what you think it does 2018-02-16 15:40:22 -08:00
Squareys f1ce125a28 [vcpkg] Fix build command for packages that depend of features
Signed-off-by: Squareys <squareys@googlemail.com>
2018-02-16 14:27:59 +01:00
Squareys 16faed6785 [vcpkg] Add find/find_installed/is_installed for FeatureSpec
Signed-off-by: Squareys <squareys@googlemail.com>
2018-02-16 14:27:59 +01:00
Jonathan Hale 425d07ef7f [vcpkg] Implement Default-Features (#2697)
* [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>
2018-02-14 16:18:25 -08:00
Robert Schumacher 41a0eee5d1 [vcpkg] Add missing include. Fixes #2700. 2018-02-01 10:44:29 -08:00