22 Commits

Author SHA1 Message Date
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
5b76f24f35 make this compile on macos 2019-07-11 18:20:36 -07:00
Nicole Mazzuca
2d6df16849 remove_all parallelized, and fix the issues with symlink 2019-07-11 18:20:35 -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
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
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
LRFLEW
3d12e5ca72 Handle symlink when installing or removing a library (#4479) 2018-10-17 11:46:27 -07:00
Alexander Karatarakis
276da906c5 Remove status_known() 2018-10-09 20:14:51 -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
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
d80dd5cbc7 [vcpkg] Handle failure to store archive 2018-03-20 19:14:20 -07: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
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
Alexander Karatarakis
786d53c002 Fix vcpkg integrate install for unicode usernames 2017-11-20 19:15:47 -08:00
Robert Schumacher
7214c3583b [vcpkg] Push use of UTF-16 to only around Win32 call boundaries. 2017-10-16 11:44:04 -07:00
Robert Schumacher
e17de99599 [vcpkg] Re-layout all files using new organization scheme.
All filenames and directories are lowercase. Use dots for namespace separation.
2017-10-13 18:37:41 -07:00