<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vcpkg/toolsrc/include/pch.h, branch update-geos-381</title>
<subtitle>Forked from https://github.com/microsoft/vcpkg</subtitle>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/vcpkg/'/>
<entry>
<title>[vcpkg] Use std::filesystem when Visual Studio is greater than 2015 (#12774)</title>
<updated>2020-08-18T16:23:01+00:00</updated>
<author>
<name>Jack·Boos·Yu</name>
<email>47264268+JackBoosY@users.noreply.github.com</email>
</author>
<published>2020-08-18T16:23:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/vcpkg/commit/?id=0bb8780a60e67320a966421e2923595fa57cbf22'/>
<id>0bb8780a60e67320a966421e2923595fa57cbf22</id>
<content type='text'>
Co-authored-by: Nicole Mazzuca &lt;mazzucan@outlook.com&gt;
Co-authored-by: Billy Robert O'Neal III &lt;bion@microsoft.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Nicole Mazzuca &lt;mazzucan@outlook.com&gt;
Co-authored-by: Billy Robert O'Neal III &lt;bion@microsoft.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[vcpkg] Format the C++ in CI (#11655)</title>
<updated>2020-07-06T23:45:34+00:00</updated>
<author>
<name>nicole mazzuca</name>
<email>mazzucan@outlook.com</email>
</author>
<published>2020-07-06T23:45:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/vcpkg/commit/?id=6a41626eaf33d2f3392e06d98a94c630bfc30977'/>
<id>6a41626eaf33d2f3392e06d98a94c630bfc30977</id>
<content type='text'>
* [vcpkg] Format the C++ in the CI

* format the C++

* CR</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* [vcpkg] Format the C++ in the CI

* format the C++

* CR</pre>
</div>
</content>
</entry>
<entry>
<title>[vcpkg metrics] Allow someone to opt out after build (#11542)</title>
<updated>2020-05-29T21:09:03+00:00</updated>
<author>
<name>nicole mazzuca</name>
<email>mazzucan@outlook.com</email>
</author>
<published>2020-05-29T21:09:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/vcpkg/commit/?id=09319cd79e3bee6a41bb76db739aef3f3644f19f'/>
<id>09319cd79e3bee6a41bb76db739aef3f3644f19f</id>
<content type='text'>
* [vcpkg metrics] start using json library

Additionally, add floats to the JSON library since they're required.

* [vcpkg metrics] allow users to disable metrics after the build

Additionally, as a drive by, fix UUID generation

* fix metrics data

* code review</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* [vcpkg metrics] start using json library

Additionally, add floats to the JSON library since they're required.

* [vcpkg metrics] allow users to disable metrics after the build

Additionally, as a drive by, fix UUID generation

* fix metrics data

* code review</pre>
</div>
</content>
</entry>
<entry>
<title>[vcpkg] fix extern C around ctermid (#11343)</title>
<updated>2020-05-20T17:10:26+00:00</updated>
<author>
<name>nicole mazzuca</name>
<email>mazzucan@outlook.com</email>
</author>
<published>2020-05-20T17:10:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/vcpkg/commit/?id=9d9a50bc9823ca1673019aa18f23d28c7a1d2ff9'/>
<id>9d9a50bc9823ca1673019aa18f23d28c7a1d2ff9</id>
<content type='text'>
Additionally, move the system_header invocations to their own header file,
&lt;vcpkg/base/system_header.h&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Additionally, move the system_header invocations to their own header file,
&lt;vcpkg/base/system_header.h&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[vcpkg] Turn on tests and PREfast in CI, and fix tests to pass. (#11239)</title>
<updated>2020-05-14T19:49:31+00:00</updated>
<author>
<name>Billy O'Neal</name>
<email>bion@microsoft.com</email>
</author>
<published>2020-05-14T19:49:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/vcpkg/commit/?id=5504dfa7da38a65981868fc7885744ac5d8f234e'/>
<id>5504dfa7da38a65981868fc7885744ac5d8f234e</id>
<content type='text'>
Co-authored-by: nicole mazzuca &lt;mazzucan@outlook.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: nicole mazzuca &lt;mazzucan@outlook.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[vcpkg] Clean up CMake build system (#10834)</title>
<updated>2020-04-15T05:08:50+00:00</updated>
<author>
<name>nicole mazzuca</name>
<email>mazzucan@outlook.com</email>
</author>
<published>2020-04-15T05:08:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/vcpkg/commit/?id=22623e35016cae6061e0d9e502577077b3c33fd9'/>
<id>22623e35016cae6061e0d9e502577077b3c33fd9</id>
<content type='text'>
There are quite a few changes to the CMake build system packaged up into
one set here:
* Added `toolsrc/cmake/utilities.cmake`, which contains the following:
  * `vcpkg_detect_compiler` -- get the name of the C++ compiler, as one
    of {gcc, clang, msvc}
  * `vcpkg_detect_standard_library` -- get the name of the standard
    library we're linking to, as one of {libstdc++, libc++, msvc-stl}
  * `vcpkg_detect_std_filesystem` -- figure out how to link and call
    into C++17's filesystem; whether one needs to link to `stdc++fs` or
    `c++fs`, and whether to use `&lt;filesystem&gt;` or
    `&lt;experimental/filesystem&gt;`.
* Added a `VCPKG_WARNINGS_AS_ERRORS`, split off from
  `VCPKG_DEVELOPMENT_WARNINGS`, which allows one to use the development
  warnings without passing -Werror
* Rename `DEFINE_DISABLE_METRICS` to `VCPKG_DISABLE_METRICS` -- the
  former will now print a deprecation message and set the latter.
* Now, print a deprecation message on `WERROR`; it doesn't do anything
  since the behavior it requested is now the default.
* Pass `-std=c++17` if the compiler allows it, instead of `-std=c++1z`
* Do some code movement
* Pass `USE_STD_FILESYSTEM` if possible, instead of only on minGW
  * Renamed to `VCPKG_USE_STD_FILESYSTEM`

Additionally, we now pass `/W4` in Debug mode on x86 in the Visual
Studio build system; this brings it in line with the CMake build system,
and the x64 Visual Studio build system.

And finally, we make some minor code changes to support compiling in
VCPKG_DEVELOPMENT_WARNINGS mode.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are quite a few changes to the CMake build system packaged up into
one set here:
* Added `toolsrc/cmake/utilities.cmake`, which contains the following:
  * `vcpkg_detect_compiler` -- get the name of the C++ compiler, as one
    of {gcc, clang, msvc}
  * `vcpkg_detect_standard_library` -- get the name of the standard
    library we're linking to, as one of {libstdc++, libc++, msvc-stl}
  * `vcpkg_detect_std_filesystem` -- figure out how to link and call
    into C++17's filesystem; whether one needs to link to `stdc++fs` or
    `c++fs`, and whether to use `&lt;filesystem&gt;` or
    `&lt;experimental/filesystem&gt;`.
* Added a `VCPKG_WARNINGS_AS_ERRORS`, split off from
  `VCPKG_DEVELOPMENT_WARNINGS`, which allows one to use the development
  warnings without passing -Werror
* Rename `DEFINE_DISABLE_METRICS` to `VCPKG_DISABLE_METRICS` -- the
  former will now print a deprecation message and set the latter.
* Now, print a deprecation message on `WERROR`; it doesn't do anything
  since the behavior it requested is now the default.
* Pass `-std=c++17` if the compiler allows it, instead of `-std=c++1z`
* Do some code movement
* Pass `USE_STD_FILESYSTEM` if possible, instead of only on minGW
  * Renamed to `VCPKG_USE_STD_FILESYSTEM`

Additionally, we now pass `/W4` in Debug mode on x86 in the Visual
Studio build system; this brings it in line with the CMake build system,
and the x64 Visual Studio build system.

And finally, we make some minor code changes to support compiling in
VCPKG_DEVELOPMENT_WARNINGS mode.</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for building with MinGW (#9137)</title>
<updated>2020-01-17T23:36:08+00:00</updated>
<author>
<name>Cristian Adam</name>
<email>cristian.adam@gmail.com</email>
</author>
<published>2020-01-17T23:36:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/vcpkg/commit/?id=38b959022cec1b865489d97a697eda84b49cc4e5'/>
<id>38b959022cec1b865489d97a697eda84b49cc4e5</id>
<content type='text'>
* Add support for building with MinGW

Tested with MSYS2 MinGW 8.3.0, gcc-mcf.lhmouse MinGW 9.2.1,
and StephanTLavavej/mingw-distro!

* Add MinGW toolchain

From your MinGW configured shell you could just use vcpkg to
configure packages.

An x64-mingw triplet would look like:
```
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_ENV_PASSTHROUGH PATH)

set(VCPKG_CMAKE_SYSTEM_NAME MinGW)
```

* Add MinGW community tripplets

x64 tested with https://github.com/StephanTLavavej/mingw-distro
x86, arm64, arm tested with https://github.com/mstorsjo/llvm-mingw
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add support for building with MinGW

Tested with MSYS2 MinGW 8.3.0, gcc-mcf.lhmouse MinGW 9.2.1,
and StephanTLavavej/mingw-distro!

* Add MinGW toolchain

From your MinGW configured shell you could just use vcpkg to
configure packages.

An x64-mingw triplet would look like:
```
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_ENV_PASSTHROUGH PATH)

set(VCPKG_CMAKE_SYSTEM_NAME MinGW)
```

* Add MinGW community tripplets

x64 tested with https://github.com/StephanTLavavej/mingw-distro
x86, arm64, arm tested with https://github.com/mstorsjo/llvm-mingw
</pre>
</div>
</content>
</entry>
<entry>
<title>[vcpkg] Make Filesystem::remove_all faster #7570</title>
<updated>2019-08-07T23:51:12+00:00</updated>
<author>
<name>Nicole Mazzuca</name>
<email>mazzucan@outlook.com</email>
</author>
<published>2019-08-02T23:49:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/vcpkg/commit/?id=e79f0dc5328f28b2b3942e2cd0e9b0c1accca4a1'/>
<id>e79f0dc5328f28b2b3942e2cd0e9b0c1accca4a1</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>VS 2019 16.3 deprecates &lt;experimental/filesystem&gt;. (#6968)</title>
<updated>2019-06-20T18:46:55+00:00</updated>
<author>
<name>Stephan T. Lavavej</name>
<email>stl@nuwen.net</email>
</author>
<published>2019-06-20T18:46:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/vcpkg/commit/?id=f0902b35370fbebcf257de88e43ee47379185a10'/>
<id>f0902b35370fbebcf257de88e43ee47379185a10</id>
<content type='text'>
VS 2019 16.3 will contain a couple of source-breaking changes:

* &lt;experimental/filesystem&gt; will be deprecated via an
impossible-to-miss preprocessor "#error The &lt;experimental/filesystem&gt;
header providing std::experimental::filesystem is deprecated by
Microsoft and will be REMOVED. It is superseded by the C++17
&lt;filesystem&gt; header providing std::filesystem. You can define
_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING to acknowledge
that you have received this warning."

* &lt;filesystem&gt; will no longer include &lt;experimental/filesystem&gt;.

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
&lt;filesystem&gt;, 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 &lt;filesystem&gt; no longer including &lt;experimental/filesystem&gt;.
I verified that VS 2015 Update 3 contained &lt;experimental/filesystem&gt;
(back then, it simply included the &lt;filesystem&gt; header, where the
experimental implementation was defined; this was later reorganized).
Therefore, all of vcpkg's supported MSVC toolsets have
&lt;experimental/filesystem&gt;, 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).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
VS 2019 16.3 will contain a couple of source-breaking changes:

* &lt;experimental/filesystem&gt; will be deprecated via an
impossible-to-miss preprocessor "#error The &lt;experimental/filesystem&gt;
header providing std::experimental::filesystem is deprecated by
Microsoft and will be REMOVED. It is superseded by the C++17
&lt;filesystem&gt; header providing std::filesystem. You can define
_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING to acknowledge
that you have received this warning."

* &lt;filesystem&gt; will no longer include &lt;experimental/filesystem&gt;.

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
&lt;filesystem&gt;, 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 &lt;filesystem&gt; no longer including &lt;experimental/filesystem&gt;.
I verified that VS 2015 Update 3 contained &lt;experimental/filesystem&gt;
(back then, it simply included the &lt;filesystem&gt; header, where the
experimental implementation was defined; this was later reorganized).
Therefore, all of vcpkg's supported MSVC toolsets have
&lt;experimental/filesystem&gt;, 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).</pre>
</div>
</content>
</entry>
<entry>
<title>[vcpkg] Synchronize vcpkg-base with external repo (#5934)</title>
<updated>2019-04-09T06:26:18+00:00</updated>
<author>
<name>Robert Schumacher</name>
<email>roschuma@microsoft.com</email>
</author>
<published>2019-04-09T06:26:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/vcpkg/commit/?id=b39b0899cb403aa1f2e86f9e111d16d6f1328737'/>
<id>b39b0899cb403aa1f2e86f9e111d16d6f1328737</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
