1450 Commits

Author SHA1 Message Date
Phil Christensen
051a6fd5b3 [boost] split Build-Depends on multipls lines 2019-08-21 13:48:47 -07:00
Phil Christensen
5a1e992023
[vcpkg] allow multiple spaces in a comma list (#7754) 2019-08-19 13:49:44 -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
Alexander Neumann
f9c92910a7 Change CMakeLists.txt in toolsrc to allow compiling with llvm toolset (#4572)
* llvm warning pessimistic move

* warning missing override

* warning invalid noreturn. ::TerminateProcess ist not marked as noreturn!

* use more modern cmake features instead of adding c++ standard by hand.

* Normalize line endings

* Fix add_executable()

* Fix target commands

* Clean up CMakeLists.txt
2019-08-14 14:06:00 -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
Curtis.Bezault
c605f4eea6 drop uneeded parameter from create_binary_control_file 2019-08-12 11:40:03 -07:00
Curtis.Bezault
44e08d28e7 remove uneeded header 2019-08-12 11:19:16 -07:00
Curtis.Bezault
5c11033ad7 Fix formatting, hash override, don't move pre_build_info 2019-08-12 10:22:05 -07:00
Nicole Mazzuca
29ddf1a5c2 remove clever use of std::ignore 2019-08-10 13:13:21 -07:00
Nicole Mazzuca
58f95cc856 fix two bugs in status 2019-08-10 13:13:21 -07:00
Nicole Mazzuca
a6ae888f4e fix the build on unix 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
5bd45366fb Add public abi override into the private abi 2019-08-09 15:15:22 -07:00
Curtis.Bezault
f0dd7b6296 fix missing abi key mistake 2019-08-09 14:51:16 -07:00
Curtis.Bezault
ad82c38cc1 Actually only override the PUBLIC ABI, not the private one 2019-08-09 14:40:09 -07:00
Curtis.Bezault
724055b4e2 Merge branch 'external_file_abi' of github.com:cbezault/vcpkg into external_file_abi 2019-08-09 14:22:20 -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
6c1423f41d
Merge branch 'master' into external_file_abi 2019-08-09 15:06:54 -04:00
Nicole Mazzuca
67643a0ea3 [vcpkg] fix 7616
There's a bug in `std::experimental::filesystem::status` on
libstdc++ -- it incorrectly sets its `error_code` when a file
doesn't exist, or when a path doesn't exist. In order to get
around this, `error_code` was cleared when the file doesn't exist,
but it was not cleared when the path didn't exist.

Note: in this case, I say "the file doesn't exist" when, if you
look up "a/b/c", "a/b" exists but "c" doesn't. I say "the path
doesn't exist" when, if you look up "a/b/c", either "a" or "a/b"
doesn't exist.
2019-08-09 10:48:37 -07:00
Robert Schumacher
14c792441d [vcpkg] Revert accidental removal of powershell-core usage in bb3a9ddb6ec917f54 2019-08-09 10:47:15 -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
165907550c
Update tests, and add documentation! (#7506)
This PR does the following:

* fix tests -- now, they're always built in the CMake scripts, and they work on VS2015
  *add a new flag, BUILD_TESTING, which allows one to turn off testing builds
* Add documentation for running tests
2019-08-02 09:52:39 -07:00
lukka
ae6ca87221 - remove trailing \r when parsing response file that might have Windows line endings; (#7491)
- when an option is not recognized (perhaps because it has trailing whitespace characters), print it out enclosed with single quote to delimit and highlight potenatial not printable characters.
2019-08-01 17:48:22 -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.Bezault
9da7c5c99e Make comment better 2019-07-25 09:38:05 -07:00
Curtis.Bezault
f81aa47176 convert path to string 2019-07-24 14:53:50 -07:00
Curtis.Bezault
67a749b989 turn path into string 2019-07-24 14:46:55 -07:00
Curtis.Bezault
be59ecce61 Use correct types 2019-07-24 14:43:44 -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
45cd8cda5a move the pre_build_info 2019-07-23 15:49:48 -07:00
Curtis.Bezault
81909e47d1 Remove types from this PR 2019-07-23 15:38:09 -07:00
Curtis.Bezault
f64d2e9103 remove accidental comment 2019-07-23 15:33:36 -07:00
Curtis.Bezault
e181376604 fix condition 2019-07-23 15:31:53 -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
2c20a9d981 fix some of the awful mix of macros 2019-07-22 12:29:17 -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
Dan Nissenbaum
ef48500ac6 Better error message when VCPKG_ROOT is independently defined (#7229) 2019-07-18 13:53:24 -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
Nicole Mazzuca
f599f19bad tests.files.cpp:create_directory_tree -- change magic numbers to names 2019-07-17 18:58:23 -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
f0f615532f always calculate abi 2019-07-17 11:40:27 -07:00
Curtis.Bezault
e81d22ddec Convert name of file to u8 string, to compile on windows 2019-07-17 10:18:20 -07:00
Curtis.Bezault
d4ab567609 first pass at abi additional files 2019-07-17 10:10:36 -07:00
Curtis.Bezault
64198a8109 Add to vcpkg.cmake 2019-07-16 15:51:50 -07:00
Curtis.Bezault
44dcc3d4f3 First pass at port settings 2019-07-16 15:34:13 -07:00
Curtis.Bezault
6bef95b6f5 remove partials 2019-07-16 14:43:56 -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
02c977186e modify files test to include symlinks 2019-07-15 16:43:55 -07:00
Nicole Mazzuca
771e23c665 forgot to test on macos >.< 2019-07-11 18:26:42 -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
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
Victor Romero
7dbe375a2c
Testing for --overlay-ports and --overlay-triplets args (#7243) 2019-07-11 17:00:55 -07:00
Phil Christensen
60bff8d549
allow spaces in pathname on linux (#7216) 2019-07-10 11:36:37 -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
e2049cb975
[vcpkg_configure_cmake] Add NO_CHARSET_FLAG option (#7074)
* [vcpkg_configure_cmake] Add NO_CHARSET_FLAG option

* [vcpkg_configure_cmake] Add documentation for new NO_CHARSET_FLAG option

* [vcpkg_configure_cmake, windows toolchain] Handle NO_CHARSET_FLAG in toolchain

* [build.cpp] Add Windows toolchain to package hash

* [duilib,msix,thrift,tidy-html5] Use NO_CHARSET_FLAG to fix regressions
2019-06-30 09:31:22 -07:00
Phil Christensen
8e747d659c
[vcpkg] fail archived port install when decompression fails (#7086)
* [vcpkg] fail port install when decompression fails

* [vcpkg] clang-format
2019-06-30 00:15:08 -07:00
Robert Schumacher
b9b2a38c7b
[vcpkg-integrate] Improve spelling, help, and autocomplete. (#7095) 2019-06-29 23:05:09 -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 b069ceb2f231

* Report errors from Paragraphs::try_load_port()
2019-06-21 23:50:05 -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
İsmail Dönmez
8c49e565c0 Protect #pragma comment(lib, "foo") with _WIN32 checks (#6867)
lld on Linux can now process #pragma comment(lib, "foo") macros which
results in build failures on Linux when lld is used. Fix this by
protecting these macros with _WIN32 checks.
2019-06-12 16:30:03 -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
myd7349
ce2a6ed835 [vcpkg] Avoid duplication of targets in the CMake message (#6536) 2019-05-20 10:18:24 -07:00
Curtis J Bezault
2bec973d3a
Handle moving files across partitions on macOS (#6506) 2019-05-20 09:29:13 -07:00
Robert Schumacher
77af264118
[vcpkg] Fix regression in --debug. Remove old features featureflag. (#6507) 2019-05-18 18:15:31 -07:00
Phoebe
d3c18ed57e Remove Addtional checks since CMake support vs2019 now (#6265)
Remove Addtional checks since CMake support vs2019 now
2019-05-01 15:11:35 -07:00
Hongxu Xu
48f22127e8 Specify GIT only when VCPKG_FORCE_SYSTEM_BINARIES is set (#6143) 2019-04-24 18:05:53 -05:00
Curtis J Bezault
70f50a2d34 Add exit code (#6175)
* Add exit_fail to vcpkg.cpp

* Adding a comment as per @rastaban
2019-04-23 13:04:04 -07:00
Stefano Sinigardi
821aff946c enable_language(CUDA) should now work as expected (#6069) 2019-04-12 10:50:53 -07:00
grdowns
022cfa2329 Add help entry for depend-info 2019-04-11 20:01:34 -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