Commit Graph

79 Commits

Author SHA1 Message Date
nicole mazzuca
22623e3501
[vcpkg] Clean up CMake build system (#10834)
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 `<filesystem>` or
    `<experimental/filesystem>`.
* 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.
2020-04-14 22:08:50 -07:00
Victor Romero
2523a19f70
Omit telemetry message when bootstrapping with -disableMetrics (#10061)
* Don't show telemetry message when passing --disableMetrics to bootstrap.sh

* Don't show telemetry message when passing -disableMetrics to bootstrap-vcpkg.bat
2020-02-13 18:12:12 -08:00
dan-shaw
0a0440c1a8 update telemetry 2019-11-22 15:07:00 -08:00
dan-shaw
552296a741 [vcpkg] update telemetry 2019-11-14 13:12:36 -08:00
Joel Pelaez Jorge
db3e74fa9c Fix CMake checks for Apple Clang 11.0 on macOS 10.15 (#8580)
* Fix CMake checks for Apple Clang 11.0 on macOS 10.15

* Use clang++ instance clang if allowAppleClang is enabled
2019-10-14 16:04:05 -07:00
Stefano Sinigardi
726c111481 [vcpkg] fatal_error when patch fails to apply (#8087)
vcpkg will now fail on failure to apply patches except when using `--head`.
2019-10-07 10:35:13 -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
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
past-due
4b0b0c5731 bootstrap.sh: Retry up to 3 times for transient download errors (#6952) 2019-06-19 12:08:42 -07:00
Robert Schumacher
8a6c7f375b
[vcpkg-bootstrap.sh] Enable finding gcc 9 (#6417) 2019-05-13 11:43:24 -07:00
Miro Knejp
7e8d7b381d Run bootstrap-vcpkg.bat when bootstrapped from git-bash (#6142)
* Bootstrap for windows when called from within bash for windows

When calling `bootstrap-vcpkg.sh` from within a git-bash script it fails
with the error message `Unknown uname: MINGW64_NT-10.0`.

This change delegates bootstrapping to `bootstrap-vcpkg.bat` by
executing it in a `cmd` session when the result of `uname -s` matches
the pattern `MINGW*_NT*`.

* [vcpkg-bootstrap] Avoid using bash extensions and keep ./bootstrap-vcpkg.sh as a simple forwarder.
2019-04-19 17:24:05 -07:00
soroshsabz
246bd61ba1 Add -allowAppleClang option to bootstrap.sh. (fixes #4698) (#5915)
* Add -allowAppleClang option to bootstrap.sh. (fixes #4698)

* [vcpkg-bootstrap] Simplify appleclang changes and reformat

* [vcpkg-bootstrap] Remove enviroment variable VCPKG_ALLOW_APPLE_CLANG
2019-04-11 00:32:03 -07:00
Robert Schumacher
e9c47b0a8a [vcpkg] Update to CMake 3.14.0 2019-03-20 16:23:02 -07:00
ivysnow
2d63525a15 [vcpkg] add support for FreeBSD (#4917)
* [vcpkg] add support for FreeBSD

* [x64-freebsd] Remove triplet because it is not currently in the set of supported triplets
2019-01-07 16:03:35 -08:00
Robert Schumacher
828cedb755 [vcpkg] Add support for muslc, static crt linkage, and forcing the system binaries for cmake and ninja 2018-12-12 09:19:37 -08:00
Billy O'Neal
cf7e2f3906 Allow redirection of the downloads folder with an environment variable. (#4883)
* Add detection for VCPKG_DOWNLOADS environment variable in vcpkgpaths.cpp.

* Pass the downloads directory from VcpkgPaths to cmake.

* Also fixup bootstrap on *nix.

* Make error message a little prettier.

* Make that bash script actually work :)

* [vcpkg] Alter Optional<> usage style

* [vcpkg-docs] Add section on Environment Variables to the docs
2018-12-11 11:48:41 -08:00
Michael Hofmann
42fd0c982a Fix unterminated quoted string in bootstrapping script. (#4946) 2018-12-11 02:12:21 -08:00
Andrew Sayman
3fb47a376f Include instructions for CentOS bootstrapping (#4892)
Currently only includes Ubuntu or apt oriented system. CentOS provides similarly working compilers through devtoolsets.
2018-12-10 23:30:37 -08:00
Alexander Karatarakis
db3004459f Improve disableMetrics propagation when consuming CMakeLists directly 2018-06-11 17:01:13 -07:00
Alexander Karatarakis
9508d4aad2 Add -disableMetrics for linux 2018-06-08 18:40:20 -07:00
Alexander Karatarakis
52f01eefa6 [bootstrap.sh] Fix whitespace-in-path issues 2018-05-16 04:51:08 +00:00
Robert Schumacher
8ce9265485 [bootstrap-vcpkg.sh] Find g++-8. Fixes #3486. 2018-05-15 21:42:58 -07:00
Francois Budin
540a32c841 Require the version of g++ to be at least 6
On Ubuntu 16.04, old versions of g++ such as 4.9 are available. Other
Linux distributions may also ship with g++ versions older than 5. With
the previous test, the bootstrap script was not failing fast and instead
was starting to compile vcpkg before it encountered the unsupported flag
-std=c++1z. The error message was not very explicit and that was making
it difficult to the developer to understand what the problem was. However,
when using g++ 5, an clear error message was printed to help the user.
This commit shows the helpful error message anytime g++ is older than
version 6.
2018-04-27 13:00:41 -04:00
Alexander Karatarakis
ef59460782 [bootstrap.sh] Minor refactoring for clarity 2018-04-25 22:23:45 -07:00
Alexander Karatarakis
aa423c999b
Merge pull request #3329 from rudilee/master
Checking for sha512sum on OS which doesn't have shasum
2018-04-25 21:26:24 -07:00
Alexander Karatarakis
c78a609dab [sh] Tweak so only the sh forwarder needs to be +x 2018-04-26 02:11:04 +00:00
Rudi Lee
6a3c1db30b Checking for sha512sum on OS which doesn't have shasum 2018-04-26 07:38:45 +07:00
Alexander Karatarakis
f12ded7fd0 [sh] Fix permission 2018-04-24 22:44:46 +00:00
Alexander Karatarakis
a11086e3b9 Introduce bootstrap.sh 2018-04-23 19:00:56 -07:00