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.
* Add googleapis proto libraries port.
Compile protos from github.com/googleapis/googleapis into C++ libraries.
* Updated google-cloud-cpp to 0.12.0
* [google-cloud-cpp] Fix flaky build
* [libevent] update to 2.1.11
* [libevent] Move scripts to tools folder
* [libevent] Fix non-Windows build
* [libevent] remove bin folder only for static build
and move script to tools folder no matter static or dynamic
* Repair compression dependency bugs in cpprestsdk
* Make it possible to turn off HTTP compression entirely to remove the
zlib dependency in cpprestsdk.
* Use the actual default features feature instead of a default features
feature hack.
* Actually hook up the Brotli setting so that someone installing that
feature actually gets it.
* Attempt to fix default-features.
* Corrade: Make sure to drop vs2017 workaround when building HEAD for vs2019
Otherwise building HEAD is broken.
Also add a warning about current Corrade release not supporting vs2019,
suggesting to use HEAD instead.
* [corrade] this option name is wrong.
* 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.
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
* [ccfits]Regenerate patches and modify how the patches are used.
* [itpp]Regenerate patches and modify how the patches are used.
* [mpg123]Regenerate patches and modify how the patches are used.
* [qwt]Regenerate patches and modify how the patches are used.
* [sdl1]Remove a patche and modify how the patches are used.
* [easyhook]Add new port.
* [easyhook]Replace files with a patch, add Description, use .Net framework 4.0.
* [easyhook]Set ONLY_DYNAMIC_CRT.
* [easyhook]Print error message when building static library.
- 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.