Commit Graph

16 Commits

Author SHA1 Message Date
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
b39b0899cb [vcpkg] Synchronize vcpkg-base with external repo (#5934) 2019-04-08 23:26:18 -07:00
Robert Schumacher
f72b46690a [vcpkg] Silence warnings on recent clang 2018-03-13 06:25:59 -07:00
Robert Schumacher
71f8958a06 [vcpkg-contact-survey] Add monthly survey prompt 2017-12-01 16:08:09 -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
Alexander Karatarakis
e25a31eca8 Suppress 4768 warning from shlobj.h 2017-10-02 17:29:11 -07:00
Robert Schumacher
98ee8a949a [vcpkg] Trap Ctrl-C, enable thread safety for global data structures 2017-08-25 16:03:57 -07:00
Robert Schumacher
247a6cec90 [vcpkg] Improve diagnostics upon port load failure 2017-06-08 04:32:57 -07:00
Robert Schumacher
6be01a12db [vcpkg] Refactored to simplify BuildPolicies into BuildPolicy.
Restrict policy consumers to a simpler interface than std::map.
Rename vcpkg::getMachineType -> vcpkg::to_machine_type.
2017-05-24 00:44:00 -07:00
Alexander Karatarakis
eb6c65abc8 [pch.h] Put windows.h at the top to solve compilation errors 2017-03-29 13:16:23 -07:00
Olaf van der Spek
15e1da0dcf Sort includes 2017-03-28 09:02:33 +02:00
Alexander Karatarakis
6860b461a1 Introduce System::cmd_execute_clean() for sanitized executions 2017-03-10 17:04:29 -08:00
Alexander Karatarakis
9da07d4540 Add <filesystem> and <chrono> to pch.h 2017-01-30 21:52:42 -08:00
Alexander Karatarakis
6f363339d8 Reorganize pch.h 2017-01-30 21:52:42 -08:00
Alexander Karatarakis
050e4a0f7a Introduce precompiled headers 2017-01-30 21:52:42 -08:00