Commit Graph

1975 Commits

Author SHA1 Message Date
Billy Robert O'Neal III 347d8ef530 Implement a warning when running vcpkg inside a developer command prompt if the set of packages to install all target a different architecture than the prompt. 2020-03-10 23:44:48 -07:00
Robert Schumacher 60cd1202d9 [vcpkg] Introduce Job Objects to improve ctrl-c performance on Windows 2020-03-10 10:27:36 -07:00
shihaonan369 264982215c
[vcpkg-export-nuget] Fix a import bug of nuget package, give priority to nuget package to set $(VcpkgRoot). (#6214)
* fix bug that caused exported nuget package import failure.

* Give priority to nuget package to set $(VcpkgRoot).

* [vcpkg] Remove trailing whitespace

Co-authored-by: 施浩男 <shihaonan@zhongli360.com>
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-03-10 10:05:39 -07:00
miseri 2eed725614
[vcpkg] Added command line switch --all-installed to allow exporting of all packages without needing to specify individual packages (#10304)
* Added command line switch --all-installed to allow exporting of all packages without needing to specify individual packages

* Changed --all-installed to --x-all-installed https://github.com/microsoft/vcpkg/pull/10304

* [vcpkg] Clang-format export.cpp

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-03-10 10:03:23 -07:00
Robert Schumacher 6b55c62144 Merge remote-tracking branch 'origin/master' into HEAD 2020-03-09 09:19:05 -07:00
Jack·Boos·Yu 8241578dbf
Fix log write failure when installing port for the first time (#10287) 2020-03-03 09:37:49 -08:00
Robert Schumacher f6d52648ec
[vcpkg] Fix issue #9916; `vcpkg upgrade` did not `load_tag_vars()` (#10202) 2020-02-24 14:38:51 -08:00
Victor Romero ef60f1d9b9
Fix build for VS2015 (#10126)
* Add missing constructors for TexRowCol required by VS2015

* Make TextRowCol() constexpr and noexcept
2020-02-19 16:51:09 -08:00
Robert Schumacher 0ebb462870
[vcpkg] Record output from build process into log file (#10063) 2020-02-13 21:11:01 -08:00
Robert Schumacher e21400c7ca [vcpkg] Fix VS2015 compile 2020-02-12 15:50:39 -08:00
Victor Romero b9273daa20 Add binarycaching.(h|cpp) to project files 2020-02-12 14:25:47 -08:00
Robert Schumacher 3d841c9b6a [vcpkg] Compute all ABIs upfront instead of during build_package() 2020-02-11 23:52:56 -08:00
Robert Schumacher b9942d0744 [vcpkg] Extract binary caching functionality into separate interface 2020-02-11 18:41:03 -08:00
Robert Schumacher 411b4cc8a0 [vcpkg] Remove superfluous BuildPackageConfig struct (#9997)
BuildPackageConfig held essentially the same information as InstallPlanAction, so deduplicate
2020-02-09 18:55:49 -08:00
Robert Schumacher a33044c186
[vcpkg] Track parser row/col state in Paragraph (renamed from RawParagraph) (#9987) 2020-02-09 14:50:26 -08:00
Robert Schumacher f7fb56decd [vcpkg] Use CreateProcess on Windows. Improve EnvVars manipulation and handling. (#9897)
* [vcpkg] Rewrite process spawning on windows to always use CreateProcess, enabling better environment handling

* [vcpkg] Use environment cache to avoid calling vcvars multiple times

* [vcpkg] Increase buffer size while computing hashes

* [vcpkg] Remove unneeded cmd.exe wrapper process on all CreateProcess calls

* [vcpkg] Fix .vcxproj{,.filters}

* [vcpkg] Upgrade Ctrl-C state machine to handle multiple background processes.

* [vcpkg] Fix regression while launching metrics: 'start' can't be passed directly to CreateProcessW

* [vcpkg] Fix typo on non-Windows

* [vcpkg] Fix various uses of >NUL across the code

* [vcpkg] Fix various uses of >NUL across the code
2020-02-08 22:45:36 -08:00
Robert Schumacher 8db6db5dac
[vcpkg] Further parser improvements (#9895)
* [vcpkg] Consolidate several internal parsers together (packagespecs + logicexpression + control) and enhance error messages

* [vcpkg] Migrate Build-Depends parsing to new framework

* [vcpkg] Fix tests. Re-enable underscores in feature names due to libwebp[vwebp_sdl] -- todo: rename this feature and remove underscores.
2020-02-07 11:24:35 -08:00
Robert Schumacher 5affb590fd
Merge pull request #9901 from Neumann-A/skip_dumpbin
[vcpkg] Add policy VCPKG_POLICY_SKIP_DUMPBIN_CHECKS
2020-02-06 15:41:38 -08:00
Robert Schumacher 5162592a3a [vcpkg] Improve error messages when failing to find a backing port 2020-02-06 14:40:28 -08:00
Alexander Neumann d12f839d2e
[vcpkg] fix missing " around path include (#9912)
* fix missing " around path

* Update VERSION.txt

* [vcpkg] Add quotes to include() in generated dep info file

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-02-05 11:23:36 -08:00
Alexander Neumann 877ebc4324
Move " to correct position
and change copyright copy to use configure_file
2020-02-05 08:59:05 +01:00
Alexander Neumann 9298dec358
rename string variable to NAME_SKIP_DUMPBIN_CHECKS 2020-02-04 20:36:54 +01:00
Alexander Neumann bd8c07217a [vcpkg] Add skip dumpbin checks
and correct some cmake advices.
Paths should always be handled with "${PATH}" due to possible spaces
2020-02-04 10:58:38 +01:00
Phil Christensen e62d136128
[vcpkg] Add Supports: field. Use contents of triplets instead of names for dependency resolution. (#8601)
* remove unfinished "supports" tag

* extract "supports" from control files
But do nothing with the value

* Start `Supports` documentation

* Use Supports in a bunch of control files

I only tried matching the already existing logic in the portfile.cmake.

* Cmake var provider (#8)

* Cmake var provider (#9)

* fix windows build (#10)

* Add missing files to build

* Fix test (#11)

* adding hooks for cmake variables in expressions

* Adding hooks for 'supports' in CI test

* Fix test (#12)

* Add overrides to evaluation environment

* use "supported" tag in CI testing

* cleanup comment

* Fix issues with PR

* [var_provider] Get library linkage variables from triplet

* Fix compilation errors in tests

* Add unimplemented functions

* Fix unit tests part 1

* Fix issue when buildtrees dir does not exist

* Change binary output hash

* Fix handling of * feature

* Add core feature when using *

* Do not add Default-Features when installing 'core'

* [vcpkg] WIP. 6 failing tests.

* [vcpkg] WIP. 1 failing tests.

* [vcpkg] WIP. 0 failing tests.

* [vcpkg] Removed 'remove_graph'. 0 failing tests.

* [vcpkg] Removed 'install_graph'. 0 failing tests.

* [vcpkg] Remove AnyAction; replace with ActionPlan

* [vcpkg] Minor cleanup.

* [vcpkg][z3][qt5-connectivity][qt5-purchasing] Improve error messages while parsing. Fix a few trivial port issues.

* [vcpkg] Work around ICE with MSVC v140

* [vcpkg] Add purge on fail to decompress for CI

* [vcpkg] Fix parsing of nested parentheses in qualifiers

* [vcpkg] Fix Linux builds (explicit qualification in declaration)

* [vcpkg] Fix Build-Depends implying default features. Fix qualified dependencies regression.

* [mmx] Add to skip list and full rebuild -- mmx causes problems by installing 'sched.h'

* [libpqxx][mqtt-cpp] Prevent installing include/CMakeLists.txt

* [cppitertools] Fix installed include namespace (should be include/cppitertools)

* [libsoundio] Move headers into soundio/ subdirectory as per original cmake

* [ci.baseline] Temporarily skip charls due to conflict with dcmtk

* [vcpkg] Add restricted include files post build check -- bump global abi version

* [libsoundio] Hotfix stray line in portfile

* [vcpkg] Fix regression: CMake information was not being displayed for build-and-install actions

* [jsonnet] Fix installation of internal headers; use system nlohmann-json

* [grpc][upb] Teach grpc to use packaged upb. Add find_package(upb). Remove inappropriate upb features.

* [zfp] Move problematic 'include/bitstream.h' to 'include/zfp/bitstream.h'

* [x265] Bump control version to trigger rebuild after zfp conflict

* [akali] Disable parallel configure

* [dirent][dlfcn-win32][getopt-win32][pthreads] Grandfather into VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS

* [ci.baseline] Update baseline for improved upb support

* [tgui] Disable parallel configure

* [libiconv] Enable VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS

* [aws-sdk-cpp] Disable parallel configure

* [vcpkg] Implement policy VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS

* [aws-sdk-cpp] Fix amount of escaping semicolons -- Note: I do not know the root cause requiring this change

* [libodb-sqlite] Fix configuring into source directory

* [gettext] Grandfather into VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS

* [libodb] DISABLE_PARALLEL_CONFIGURE

* [vcpkg] Add 'config.h' and 'local.h' to restricted header list

* [mcpp] Remove unused and problematic include 'config.h' from installed files

* [teemo] Move installed headers into subdirectory to prevent conflicts with x265

* [ci.baseline] Update current OSX. Skip libmesh on all platforms due to heavy conflicts.

* [vcpkg] Add 'slice.h' as a restricted header

* [osg] Improve accuracy of dependencies (disable some, add some to Depends)

* [vcpkg] Skip invoking a subprocess for 0 specs in load_tag_vars

* [ci.baseline] Skip mongo-c-driver on osx due to flakiness

* [teemo] Fix incorrect include file read

* [osg] Fix dependency typo: glut -> freeglut

* [vcpkg] Recover some lost performance with the addition of vcpkg_get_tags.

A huge performance cost was loading the triplet files over and over; instead, we splice the sources into a macro and load it once, then just call that macro for each port.
Remove use of hashing because we aren't cross-process-safe anyway (global static will do instead).

* [vcpkg] Change Supports atom 'windows' to include UWP. Improve Supports field documentation.

* [vcpkg] Add docs for VCPKG_ENV_PASSTHROUGH and VCPKG_DEP_INFO_OVERRIDE_VARS

* Fix typo

Co-authored-by: Curtis J Bezault <curtbezault@gmail.com>
Co-authored-by: Victor Romero <romerosanchezv@gmail.com>
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-02-03 14:22:52 -08:00
Cristian Adam 38b959022c Add support for building with MinGW (#9137)
* 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
2020-01-17 15:36:08 -08:00
Victor Romero f56645c3fd
Community Triplets 🤝 (#7976)
* Move untested triplets to Community Triplets

* Document community triplets

* Load community triplets by default and alert when using one

* [triplets] Merge documentation of community triplets

* Bump version
2020-01-17 14:21:19 -08:00
Kristof 24a97b16e7 [toolsrc] Added missing @ to FATAL_ERROR message (#9720)
To install a specific version of a package via homebrew, an `@` symbol must be placed in-between the package name and its version.
Added missing symbol to `toolsrc/CMakeLists.txt`

See homebrew console output for reference:
```
Kristofs-Mac-Pro:vcpkg kristofdaja$ brew search gcc
==> Formulae
gcc                     gcc@5                   gcc@7                   x86_64-elf-gcc
gcc@4.9                 gcc@6                   gcc@8
```
2020-01-16 15:11:27 -08:00
xabbudm e3dfd4a9fa [VCPKG] WinHTTPOption for company Proxy not correctly taken into account (#9372)
* fixes to get vcpkg up and running when behind corporate proxy

* clean up of code to check if HTTP_PROXY environment variable is set

*  fixed compiler errors for non win32 systems

* [vcpkg] Simplify HTTPS_PROXY code for WinHTTP

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-01-16 13:56:28 -08:00
Darrell 28eee51adb Minor edit to help message for cli depend-info option. Fix for #9534. (#9536) 2020-01-13 16:57:03 -08:00
martin-s 299c7c730c Introduce new policy to skip post verification of dll exports (#9642)
* - Introduce new policy to skip post verification of dll exports (see issue #9641).

* - Fixed line endings.
2020-01-13 16:31:58 -08:00
Maher Jendoubi 891a840ffa Contributing: Fix a typo (#9566) 2020-01-09 14:31:48 -08:00
Curtis J Bezault 7b61b7b515 Allow ARM64 to build x86 things (#9578) 2020-01-09 14:27:03 -08:00
dpoliarush 37265f7a45 [vcpkg] Removed unused template function. (#9287) 2019-12-20 17:26:40 -08:00
Robert Schumacher cda348b6a3
Merge pull request #9080 from dan-shaw/telemetry-update
[vcpkg] update telemetry
2019-11-22 16:08:34 -08:00
dan-shaw 0a0440c1a8 update telemetry 2019-11-22 15:07:00 -08:00
Robert Schumacher 018c265d71 [vcpkg] Fix build breaks and run clang-format 2019-11-22 10:33:45 -08:00
Robert Schumacher 45f4b820e5
Merge branch 'master' into vcpkg_nuget 2019-11-22 09:47:40 -08:00
fradav 483257fbfb Update to clang 9.* (removed libc++fs) (#8924) 2019-11-21 17:11:57 -08:00
dan-shaw 552296a741 [vcpkg] update telemetry 2019-11-14 13:12:36 -08:00
Sergey Zolotarev 78c0fd26c4 Fix compile error in Visual Studio 2017 15.1 2019-10-17 15:23:15 +06: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
Chris-SG 9f26ae8bf0 Find default for text/plain on Linux and Windows (#567) (#8435)
* Find default for text/plain on machines with xdg (#567)

* Add unicode aware detection of text/plain on windows
2019-10-07 21:00:59 -07:00
Phil Christensen 2f4cb2d5be
[CI system] Add features to test result xml (#8342)
* Add features to test result xml
2019-09-26 11:10:26 -07:00
Alexander Neumann 54173e7fe2 Fix #8193 (#8200) 2019-09-17 09:55:47 -07:00
Phoebe b4a0c8d574 [vcpkg] Continue on malformed paths in PATH (#8129)
Previously vcpkg would exit on malformed paths. We now will continue and ignore the malformed path.
2019-09-17 09:35:50 -07:00
martin-s 191c864927 Fix bug in `.vcpkg-root` detection that breaks `--overlay-triplets` (#7954)
* - Added scripts variable to ports file.
- Added check if triplet file is not available (NPE).

* - Fixed line endings.

* Provide location of .vcpkg-root to ports.cmake

* vcpkg sets VCPKG_ROOT_PATH in ports.cmake

* [vcpkg] Fail if VCPKG_ROOT_PATH is not passed from vcpkg.exe

* [vcpkg] Fix vcpkg rooth path

* [vcpkg] Make --x-scripts-root an experimental command
2019-09-12 23:52:52 -07:00
Victor Romero cb0fc1a5f9
[vcpkg] Fix depend-info command arguments (#8135) 2019-09-11 11:10:31 -07:00
JackBoosY 90c3f80fff fix x-history help desc. (#8101) 2019-09-09 08:53:24 -07:00
Victor Romero 84ba23ad33
[x-history] Prints CONTROL version history of a port 👻 (#7377)
* [port-history] Print port CONTROL version history

* Add commands.porthistory.cpp to VS project

* Get most recent commit for each version

* Apply clang-format

* Fix output format

* Rename command to x-history
2019-09-06 11:35:56 -07:00
Victor Romero f5c732b40d
Download Mode (#7950)
* [portfile functions] Override execute_process() to accept ALLOW_IN_DOWNLOAD_MODE option

* [vcpkg install] Set VCPKG_DOWNLOAD_MODE when using --only-downloads option

* [vcpkg_find_acquire_program] Allow in Download Mode

* Don't stop when build fails for a package

* Download sources for all packages in dependency graph

* Improve output messages

* Enable acquiring MSYS packages in download mode

* Documentation

* Update documentation

* execute_process() always fails on Download Mode

* Regenerate docs and fix formatting

* Run clang-format

* Use _execute_process on vcpkg_from_<source> helpers

* Fix calls to _execute_process() when not in Download Mode
2019-08-28 13:49:29 -07:00
Victor Romero 4b404e8cfb
Revert "[vcpkg install] Enable Download Mode (#7797)" (#7949)
This reverts commit 65d4bc146b.
2019-08-28 11:59:30 -07:00
Victor Romero 65d4bc146b
[vcpkg install] Enable Download Mode (#7797)
* [portfile functions] Override execute_process() to accept ALLOW_IN_DOWNLOAD_MODE option

* [vcpkg install] Set VCPKG_DOWNLOAD_MODE when using --only-downloads option

* [vcpkg_find_acquire_program] Allow in Download Mode

* Don't stop when build fails for a package

* Download sources for all packages in dependency graph

* Improve output messages

* Enable acquiring MSYS packages in download mode

* Documentation

* Update documentation

* execute_process() always fails on Download Mode

* Regenerate docs and fix formatting

* Run clang-format

* Use _execute_process on vcpkg_from_<source> helpers
2019-08-28 11:47:17 -07:00
nicole mazzuca 32a53e1f37 [vcpkg] fix bug in StringView::operator== 😱 (#7930)
Before this change, `lhs == rhs` missed the check for
`lhs.size() == rhs.size()`, and then did a `memcmp` on the buffers up to
`lhs.size()`. This means that, if `lhs.size() < rhs.size()`, it would
allow two unequal strings to compare equal if, up to `lhs.size()` they
are the same; and if `lhs.size() > rhs.size()`, then it would read out
of bounds.
2019-08-27 14:03:49 -07:00
Phil Christensen 0eb7305102
[vcpkg] fix list parsing logic and add error messages
fix list parsing logic and add error messages
2019-08-27 11:00:37 -07:00
Phil Christensen 8bae937e17 avoid assembling error strings unless there is an error 2019-08-26 16:39:38 -07:00
Phil Christensen 6d8e66ff4f Run clang-format and add more error messages 2019-08-26 16:21:57 -07:00
Nicole Mazzuca 7827239593 (#7757) [vcpkg] Switch to internal hash algorithms 📜
On non-Windows platforms, there is no standard way to get the hash of an
item -- before this PR, what we did was check for the existence of a few
common utility names (shasum, sha1, sha256, sha512), and then call that
utility on a file we created containing the contents we wish to hash.
This PR adds internal hashers for sha1, sha256, and sha512, and
standardizes the interface to allow anyone to implement hashers in the
future.

These hashers are not extremely optimized, so it's likely that in the
future we could get more optimized, but for now we just call out to
BCryptHasher on Windows, since it's standard and easy to use (and about
2x faster for sha1 and sha256, and 1.5x faster for sha512). However,
they are reasonably fast for being unoptimized. I attempted a few minor
optimizations, which actually made the code slower! So as of right now,
it's implemented as just a basic conversion of the code on Wikipedia to
C++. I have tested these on the standard NIST test vectors (and those
test vectors are located in vcpkg-test/hash.cpp).
2019-08-26 12:35:22 -07:00
Robert Schumacher 373aeff922 [vcpkg] Move do_build_package_and_clean_buildtrees() above generating cpkg_abi_info.txt so it will be included in the package. (#7864) 2019-08-24 13:01:57 -07:00
Phil Christensen bd4678610b
Merge branch 'master' into multi_line_depends 2019-08-23 11:18:34 -07:00
Phil Christensen 1245f1dbfc [vcpkg] bump version 2019-08-23 11:05:56 -07:00
Phil Christensen 13c95f16bf clean up list parsing logic and add clear warnings 2019-08-23 10:20:18 -07:00
Nicole Mazzuca cc35672763 (#7798) [vcpkg] Fix the build on FreeBSD 😈
Add a `#else` line to `toolsrc/src/vcpkg/base/files.cpp`. On Linux
and macOS, there are specific ways to copy from file descriptor to file
descriptor, but on FreeBSD there isn't (as far as I could tell). This
change does a copy using the POSIX standard `read` and `write` calls.
(This change was to `RealFilesystem::rename_or_copy`).

We expect to have people on FreeBSD install CMake themselves, and use
`./bootstrap.sh -useSystemBinaries`, in order to build vcpkg.
Since CMake 3.15.2 exists in the FreeBSD 12 (latest stable) package
manager, it's trivial to install it.
2019-08-23 07:01:03 -07:00
Curtis J Bezault 94ef325828
[vcpkg] Fix gcc-9 warning (#7816)
* drop one usage of span in export. Span is not appropriate for rvalues

* Add back reference

* Fix @ubsan 's comments
2019-08-21 14:23:15 -07:00
Phil Christensen 051a6fd5b3 [boost] split Build-Depends on multipls lines 2019-08-21 13:48:47 -07:00
Curtis J Bezault 4da95d667c
[vcpkg]Port toolchains (#7687)
* checkpoint commit

* Only set VCPKG_ENV_OVERRIDES_FILE if it exists

* First pass at working port-toolchain

* Update VERSION.txt

* Return rvalue

* Fix compilation error

* Some fixes are requested by @ubsan

* Fix another compilation error
2019-08-20 08:47:26 -07:00
Phil Christensen 5a1e992023
[vcpkg] allow multiple spaces in a comma list (#7754) 2019-08-19 13:49:44 -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
Curtis J Bezault b47ca1b012
Merge pull request #7305 from cbezault/external_file_abi
[vcpkg] Public ABI override option
2019-08-16 13:51:22 -07:00
Victor Romero edaf3bf91e
[depend-info] Fix bugs, add `--sort`, `--show-depth` and `--max-recurse` options (#7643)
* [depend-info] Follow same rules as vcpkg install

* [depend-info] Add --max-depth and --sort options

* [depend-info] Improve output readability (a tiny bit)

* [depend-info] Add --show-depth option

* [depend-info] Fix build on VS 2015

* [depend-info] Fix output of --dot and --dgml
2019-08-14 15:38:07 -07:00
Alexander Neumann f9c92910a7 Change CMakeLists.txt in toolsrc to allow compiling with llvm toolset (#4572)
* llvm warning pessimistic move

* warning missing override

* warning invalid noreturn. ::TerminateProcess ist not marked as noreturn!

* use more modern cmake features instead of adding c++ standard by hand.

* Normalize line endings

* Fix add_executable()

* Fix target commands

* Clean up CMakeLists.txt
2019-08-14 14:06:00 -07:00
nicole mazzuca 875648e10b [vcpkg] Fix the build on VS2015 debug (#7637)
The VS2015 standard library requires, in debug mode, a comparison
operator on `T × U` and `U × T` to also be a comparison operator on
`T × T` and on `U × U`, and so in
vcpkg::Install::install_package::intersection_compare, I've added two
new `operator()` overloads which take those respectively, on VS2015.

Also, `[nodiscard]` was added to somewhere in `vcpkg/base/strings.h`,
which gives a warning in VS2015 -- thus, I added the `vcpkg/pragmas.h`
include, since that fixes the warning.
2019-08-12 14:02:59 -07:00
Curtis.Bezault c605f4eea6 drop uneeded parameter from create_binary_control_file 2019-08-12 11:40:03 -07:00
Curtis.Bezault 44e08d28e7 remove uneeded header 2019-08-12 11:19:16 -07:00
Curtis.Bezault 5c11033ad7 Fix formatting, hash override, don't move pre_build_info 2019-08-12 10:22:05 -07:00
Nicole Mazzuca 29ddf1a5c2 remove clever use of std::ignore 2019-08-10 13:13:21 -07:00
Nicole Mazzuca 58f95cc856 fix two bugs in status 2019-08-10 13:13:21 -07:00
Nicole Mazzuca 420dbffaa0 clang-format, and fix a leftover 2019-08-10 13:13:21 -07:00
Nicole Mazzuca a6ae888f4e fix the build on unix 2019-08-10 13:13:21 -07:00
Nicole Mazzuca 52b2e740de [vcpkg] Fix build under /W4
I was building under /W3, because CMake hadn't been set up to build
under /W4 -- therefore, I didn't see some warnings.

We also decided to remove the niebloids and instead break ADL by using
`= delete`, since otherwise we get warnings when we define a local
variable with the same name as a niebloid. I also removed `status` and
`symlink_status` from the `files` header, since it's unnecessary now,
and they're just implementation details of `RealFilesystem`.

I also removed some existing uses of unqualified `status(path)`, since
that no longer compiles. I also added `Filesystem::canonical`, to remove
another use of `fs::stdfs` in a function I was already working in.
2019-08-10 13:13:21 -07:00
Curtis.Bezault 5bd45366fb Add public abi override into the private abi 2019-08-09 15:15:22 -07:00
Curtis.Bezault f0dd7b6296 fix missing abi key mistake 2019-08-09 14:51:16 -07:00
Curtis.Bezault f9561a08db remove unnecessary include, fix variable extraction 2019-08-09 14:47:58 -07:00
Curtis.Bezault ad82c38cc1 Actually only override the PUBLIC ABI, not the private one 2019-08-09 14:40:09 -07:00
Curtis.Bezault 724055b4e2 Merge branch 'external_file_abi' of github.com:cbezault/vcpkg into external_file_abi 2019-08-09 14:22:20 -07:00
Curtis.Bezault 0c7d8f4146 Change purpose of this PR to just overriding the abi 2019-08-09 14:21:58 -07:00
Curtis J Bezault 6c1423f41d
Merge branch 'master' into external_file_abi 2019-08-09 15:06:54 -04:00
Nicole Mazzuca 67643a0ea3 [vcpkg] fix 7616
There's a bug in `std::experimental::filesystem::status` on
libstdc++ -- it incorrectly sets its `error_code` when a file
doesn't exist, or when a path doesn't exist. In order to get
around this, `error_code` was cleared when the file doesn't exist,
but it was not cleared when the path didn't exist.

Note: in this case, I say "the file doesn't exist" when, if you
look up "a/b/c", "a/b" exists but "c" doesn't. I say "the path
doesn't exist" when, if you look up "a/b/c", either "a" or "a/b"
doesn't exist.
2019-08-09 10:48:37 -07:00
Robert Schumacher 14c792441d [vcpkg] Revert accidental removal of powershell-core usage in bb3a9ddb6e 2019-08-09 10:47:15 -07:00
Curtis J Bezault c4f1a91ef2
Merge branch 'master' into external_file_abi 2019-08-09 11:59:32 -04:00
Nicole Mazzuca e79f0dc532 [vcpkg] Make Filesystem::remove_all faster #7570
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.
2019-08-07 16:51:12 -07:00
Phil Christensen 22e0b9f376
improve logic expression evaluation (#7508)
* 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.
2019-08-02 21:37:49 -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
lukka ae6ca87221 - remove trailing \r when parsing response file that might have Windows line endings; (#7491)
- 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.
2019-08-01 17:48:22 -07:00
nicole mazzuca f990dfaa5b [vcpkg] Fix RealFilesystem::remove_all (#7430)
* fix remove_all

we were attempting to remove READONLY files before this, and so set them to non-READONLY

* fix linux/macos support

* whee fix vs2015
2019-07-26 16:32:33 -07:00
Curtis.Bezault 9da7c5c99e Make comment better 2019-07-25 09:38:05 -07:00
Curtis.Bezault f81aa47176 convert path to string 2019-07-24 14:53:50 -07:00
Curtis.Bezault 67a749b989 turn path into string 2019-07-24 14:46:55 -07:00
Curtis.Bezault be59ecce61 Use correct types 2019-07-24 14:43:44 -07:00
Curtis J Bezault d60047280d
Merge branch 'master' into external_file_abi 2019-07-24 14:26:34 -07:00
Curtis.Bezault 0c7669d009 store fs::path instead of std::string 2019-07-24 14:24:49 -07:00
nicole mazzuca aeecc01fbd Modify CMakeLists to split up vcpkglib (#7407)
Before this, we had vcpkg and vcpkg-test taking the vcpkglib source
files directory -- this commit makes vcpkglib an object library.
2019-07-24 13:50:45 -07:00
Curtis.Bezault d68b9a08b1 only use filename 2019-07-23 16:28:00 -07:00
Curtis.Bezault 45cd8cda5a move the pre_build_info 2019-07-23 15:49:48 -07:00
Curtis.Bezault 81909e47d1 Remove types from this PR 2019-07-23 15:38:09 -07:00
Curtis.Bezault 829f99b506 remove needs_rebuild from statusparagraphs 2019-07-23 15:36:13 -07:00
Curtis.Bezault f64d2e9103 remove accidental comment 2019-07-23 15:33:36 -07:00
Curtis.Bezault e181376604 fix condition 2019-07-23 15:31:53 -07:00
Curtis.Bezault 62ec13ba36 Merge build.cpp 2019-07-23 15:29:49 -07:00
Curtis.Bezault 2f2a45595f Prompt rebuild if external hash changes 2019-07-23 15:26:13 -07:00
Curtis.Bezault 459908ae14 add external file hashes to the binary paragraph 2019-07-23 10:07:39 -07:00
Nicole Mazzuca 2c20a9d981 fix some of the awful mix of macros 2019-07-22 12:29:17 -07:00
Nicole Mazzuca 0d8bba52e4 allow tests to run on older standard libraries 2019-07-19 23:20:28 -07:00
Nicole Mazzuca c55ea0a0d5 switch to new test framework 2019-07-19 12:56:24 -07:00
Nicole Mazzuca b3caf67749 Merge branch 'trunk' into parallel-file-ops 2019-07-19 12:17:22 -07:00
Curtis J Bezault 3b808a48ce
Update VERSION.txt 2019-07-19 08:08:56 -07:00
Curtis J Bezault 18c849daea
Merge branch 'master' into external_file_abi 2019-07-19 08:08:08 -07:00
Curtis J Bezault 618fa203c1
[vcpkg] Portfile Settings (#7292) 2019-07-19 08:01:38 -07:00
nicole mazzuca 8250553789 Rewrite the tests! now they're cross-platform! (#7315)
* begin exploratory rewriting of tests

* continue working on tests

* more test work! holy butts vcpkg-tests/plan.cpp was a bunch of work

* finish writing new tests

  - [x] write catch2 tests
  - [ ] rewrite/at least delete the VS project files
  - [ ] document running tests

* Fix tests to work on WSL, rewrite test vcxproj

still need to test on macOS
also, delete tests.pch.h

* Condense add_test calls
2019-07-18 19:07:00 -07:00
Nicole Mazzuca fddebb75da clang-format all the things 2019-07-18 19:03:46 -07:00
Curtis J Bezault 9b5ee99412
Update VERSION.txt 2019-07-18 16:20:00 -07:00
Dan Nissenbaum ef48500ac6 Better error message when VCPKG_ROOT is independently defined (#7229) 2019-07-18 13:53:24 -07:00
Curtis.Bezault d39bd70d53 add needs_rebuild, should probably be moved to somewhere else 2019-07-18 13:24:31 -07:00
Curtis J Bezault bb3a9ddb6e
[vcpkg] Environment Variable Passthrough (#7290)
* use additional env param

* remove partials

* remove change to linux triplet

* Fix some issues that vicroms pointed out

* whitespace change
2019-07-18 09:02:21 -07:00
Nicole Mazzuca f599f19bad tests.files.cpp:create_directory_tree -- change magic numbers to names 2019-07-17 18:58:23 -07:00
Curtis.Bezault f18ffe9968 Add type field 2019-07-17 16:04:05 -07:00
Curtis.Bezault 58958eb0ea sourceparagraph changes 2019-07-17 14:27:18 -07:00
Curtis.Bezault f0f615532f always calculate abi 2019-07-17 11:40:27 -07:00
Curtis.Bezault e81d22ddec Convert name of file to u8 string, to compile on windows 2019-07-17 10:18:20 -07:00
Curtis.Bezault d4ab567609 first pass at abi additional files 2019-07-17 10:10:36 -07:00
Curtis.Bezault 7d9d457f58 revert unecessary reordering 2019-07-16 16:09:30 -07:00
Curtis.Bezault 64198a8109 Add to vcpkg.cmake 2019-07-16 15:51:50 -07:00
Curtis.Bezault 44dcc3d4f3 First pass at port settings 2019-07-16 15:34:13 -07:00
Curtis.Bezault 6bef95b6f5 remove partials 2019-07-16 14:43:56 -07:00
Curtis.Bezault 684989a1e4 use additional env param 2019-07-16 14:02:13 -07:00
Nicole Mazzuca 65d34c5e55 wheeeee more fixes 2019-07-15 18:51:03 -07:00
Nicole Mazzuca 02c977186e modify files test to include symlinks 2019-07-15 16:43:55 -07:00
Nicole Mazzuca 771e23c665 forgot to test on macos >.< 2019-07-11 18:26:42 -07:00
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 3190235875 fix some comments from code reviewers 2019-07-11 18:20:36 -07:00
Nicole Mazzuca bb57907207 make it compile on macos under g++6 2019-07-11 18:20:36 -07:00
Nicole Mazzuca 5b76f24f35 make this compile on macos 2019-07-11 18:20:36 -07:00
Nicole Mazzuca 3b6d6b3465 actually get the code compiling 2019-07-11 18:20:35 -07:00
Nicole Mazzuca 43493b56df delete the random number generator 2019-07-11 18:20:35 -07:00
Nicole Mazzuca 2d6df16849 remove_all parallelized, and fix the issues with symlink 2019-07-11 18:20:35 -07:00
Nicole Mazzuca 5857e2c680 initial remove-in-parallel
doesn't actually do parallel remove yet
2019-07-11 18:20:35 -07:00
Victor Romero 7dbe375a2c
Testing for --overlay-ports and --overlay-triplets args (#7243) 2019-07-11 17:00:55 -07:00
Phil Christensen 60bff8d549
allow spaces in pathname on linux (#7216) 2019-07-10 11:36:37 -07:00
gnaggnoyil 7f80c0e2d3 Make handle features (#6797) 2019-07-09 16:02:48 -04:00
Robert Schumacher 2b8e225b2e
[vcpkg] Fix powershell font corruption bug (#7094)
* [vcpkg] Fix font corruption bug on Windows by downloading Powershell Core

* [vcpkg] Rename subtool to powershell-core

* [vcpkg] Add missing includes to project files
2019-07-06 13:29:46 -07:00
Victor Romero 269fa0e6be
Bump version to 2019.06.26 (#7136) 2019-07-02 17:19:46 -07:00
martin-s 91da4aab4c Allow redirection of the scripts folder. (#6552)
* Allow redirection of the scripts folder with an environment variable.

* - Updated feature from environment variable to argument.

* Fix crash when no scripts override is given and use --scripts-root=<PATH> format

* Update help messages to use --scripts-root=<PATH> format
2019-07-01 22:51:07 -07:00
Victor Romero 96994f8ede
Revert Visual Studio projects versions (#7117) 2019-07-01 22:49:05 -07:00
Victor Romero e2049cb975
[vcpkg_configure_cmake] Add NO_CHARSET_FLAG option (#7074)
* [vcpkg_configure_cmake] Add NO_CHARSET_FLAG option

* [vcpkg_configure_cmake] Add documentation for new NO_CHARSET_FLAG option

* [vcpkg_configure_cmake, windows toolchain] Handle NO_CHARSET_FLAG in toolchain

* [build.cpp] Add Windows toolchain to package hash

* [duilib,msix,thrift,tidy-html5] Use NO_CHARSET_FLAG to fix regressions
2019-06-30 09:31:22 -07:00
Phil Christensen 8e747d659c
[vcpkg] fail archived port install when decompression fails (#7086)
* [vcpkg] fail port install when decompression fails

* [vcpkg] clang-format
2019-06-30 00:15:08 -07:00
Robert Schumacher b9b2a38c7b
[vcpkg-integrate] Improve spelling, help, and autocomplete. (#7095) 2019-06-29 23:05:09 -07:00
Victor Romero 35e985d3cc
Triplets Overlay Implementation (#7053)
* Triplets Overlay Implementation

* Use cache for get_triplet_file_path()

* Code cleanup
2019-06-27 12:20:12 -07:00
Victor Romero 9e565e9867
[--overlay-ports] Show location of overriden ports during install plan (#7002)
* [--overlay-ports] Show source location of overlayed ports during install plan

* Code cleanup

* Code cleanup
2019-06-24 12:09:48 -07:00
Victor Romero f3db66b403
Ports Overlay partial implementation (#6981)
* Ports Overlay feature spec

* Ports Overlay implementation

* [--overlay-ports] Refactor handling of additional paths

* Code cleanup

* [--overlay-ports] Add help

* [depend-info] Support --overlay-ports

* Add method to load all ports using PathsPortFileProvider

* Make PortFileProvider::load_all_control_files() const

* Remove unused code

* [vcpkg] Avoid double-load of source control file between Build::perform_and_exit and Build::perform_and_exit_ex

* [vcpkg] Clang format

* [vcpkg] Fixup build failure introduced in b069ceb2f2

* Report errors from Paragraphs::try_load_port()
2019-06-21 23:50:05 -07:00
Farwaykorse 31184ac70d Bump version to 2019.06.21 (#6987) 2019-06-21 21:26:10 -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
Sean Yen 62d67d3bf8 rebase and fix build breaks. 2019-06-19 16:39:04 -07:00
Sean Yen f54151fff6 make options to be experimental. 2019-06-19 16:36:49 -07:00
Sean Yen 4c7188919a Add version-suffix and maintainer options. 2019-06-19 16:36:48 -07:00
seanyen 11d2fc9f81 add depends version restrictions. 2019-06-19 16:36:48 -07:00
seanyen c63af255e3 add chocolatey install scripts. 2019-06-19 16:36:48 -07:00
seanyen 9a3999d8e2 add dependencies. 2019-06-19 16:36:48 -07:00
seanyen 31482e4d09 add nuget packaging logic. 2019-06-19 16:36:48 -07:00
seanyen e5a6c7a7a6 first check-in. 2019-06-19 16:36:47 -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
İsmail Dönmez 8c49e565c0 Protect #pragma comment(lib, "foo") with _WIN32 checks (#6867)
lld on Linux can now process #pragma comment(lib, "foo") macros which
results in build failures on Linux when lld is used. Fix this by
protecting these macros with _WIN32 checks.
2019-06-12 16:30:03 -07:00
Curtis J Bezault b7d6160b80
[icu] Enable parallel builds (#6695)
* Add VCPKG_NUM_LOGICAL_CORES

* break out logic that retries running a command several times into its own function

* Parallelize icu
2019-06-12 14:18:43 -07:00
Phil Christensen d962dc7d65 [vcpkg] Add optional 'Homepage' field to CONTROL (#6844)
* [control file] Add optional 'Homepage' tag

This allows a 'Homepage' tag to be added to a port in order to support
changes such as PR #2933.  It currently does not do anything with it.

* [docs]

Add Homepage to the control file documentation

* move urls from descriptions to homepage field.
2019-06-10 16:35:22 -07:00
Robert Schumacher 8045248372
[vcpkg] Apply clang format (#6826) 2019-06-08 18:31:58 -07:00
Sean Warren 17623739df [toolsrc] Optionally allow vcpkg to clean after each build (#6522)
* [toolsrc] Optionally allow vcpkg to clean packages, buildtrees and downloads after each build
Adds switch --clean-after-build

* [toolsrc] Clarify that --clean-after-build deletes downloads

* [toolsrc] Revert changes to ci download caching behaviour
2019-05-23 11:24:02 -07:00
myd7349 ce2a6ed835 [vcpkg] Avoid duplication of targets in the CMake message (#6536) 2019-05-20 10:18:24 -07:00
Curtis J Bezault 2bec973d3a
Handle moving files across partitions on macOS (#6506) 2019-05-20 09:29:13 -07:00
Robert Schumacher 77af264118
[vcpkg] Fix regression in `--debug`. Remove old `features` featureflag. (#6507) 2019-05-18 18:15:31 -07:00
lukka 46a77b9006 appleclang 10.01 does not have <filesystem> (#6413)
support
2019-05-13 04:11:35 -07:00
Phoebe d3c18ed57e Remove Addtional checks since CMake support vs2019 now (#6265)
Remove Addtional checks since CMake support vs2019 now
2019-05-01 15:11:35 -07:00
Hongxu Xu 48f22127e8 Specify GIT only when VCPKG_FORCE_SYSTEM_BINARIES is set (#6143) 2019-04-24 18:05:53 -05:00
Curtis J Bezault 70f50a2d34 Add exit code (#6175)
* Add exit_fail to vcpkg.cpp

* Adding a comment as per @rastaban
2019-04-23 13:04:04 -07:00
fradav 5ab041409b Updated libc++fs link for libc++ 8.0 (#6029) 2019-04-15 22:50:09 -07:00
Stefano Sinigardi 821aff946c enable_language(CUDA) should now work as expected (#6069) 2019-04-12 10:50:53 -07:00
grdowns 022cfa2329 Add help entry for depend-info 2019-04-11 20:01:34 -07:00
grdowns eeac6187c9 Merge branch 'depend_info_no_recurse' of https://github.com/jediry/vcpkg into dev/grdowns/6055 2019-04-11 19:10:08 -07:00
Curtis J Bezault 8fe6f4bdd8 Print what port installed confliciting files (#6037) 2019-04-11 08:27:44 -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
Ryan Saunders a492caf9d5 Merge branch 'master' into query_deps 2019-04-10 23:07:17 -07:00
Ryan Saunders 80965287d1 Add --no-recurse switch to depend-info command. 2019-04-10 23:01:37 -07:00
Robert Schumacher 705f9f4919 Complete revert of accidental merge b1b7ec5c0b 2019-04-09 16:04:41 -07:00
Victor Romero 1db72cd0ea Revert "Print what port installed confliciting files"
This reverts commit 79682317c9.
2019-04-09 15:55:20 -07:00
Curtis J Bezault b1b7ec5c0b
Merge branch 'master' into master 2019-04-09 15:22:49 -07:00
Curtis.Bezault 79682317c9 Print what port installed confliciting files 2019-04-09 15:04:44 -07:00
Robert Schumacher b39b0899cb [vcpkg] Synchronize vcpkg-base with external repo (#5934) 2019-04-08 23:26:18 -07:00
Curtis.Bezault e9d2a83020 Check scripts/cmake/* and buildsystems/vcpkg.cmake for changes when hashing 2019-04-02 11:04:05 -07:00
Don d71ad4800b Allow additional environment variables to be set in a clean environment (#5650)
* Allow additional environment variables to be set in a clean environment

* Add documentation for VCPKG_KEEP_ENV_VARS
2019-03-28 14:34:26 -07:00
Griffin Downs c63e466dd6
Revert "Use feature macro to check for support of filesystem" 2019-03-21 14:10:54 -07:00
Robert Schumacher 184fd3a1b1 [vcpkg] Fix infinite loop bug on certain filesystem implementations when searching up 2019-03-14 16:55:23 -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
Bo Rydberg eafe9ebcdf Fix missing terminator .bashrc integration (#5616)
Add NL to last line in ~/.bashrc file
2019-03-10 11:05:15 -07:00
myd7349 32f1120b9f [vcpkg edit] Update find_from_registry (#5393) 2019-03-08 14:38:23 -08:00
Peter Bright fd183d9ad1 Mark overridden functions with override. (#5585)
* Update files.cpp

* Mark overrides with override.
2019-03-07 09:28:12 -08:00
Mathieu Ropert bf4af7afdc Fix vcpkg build with clang on Linux (#5360) 2019-03-05 14:52:26 -08:00
Victor Romero 8641dfd9dd
Modify `vcpkg_fixup_cmake_targets()` (#5459)
* some libraries export <PackageName>LibraryDepends.cmake
instead of <PackageName>Targets.cmake.
Those file also need the fix of #1044

should close #4753

* prefered the general solution #4622.
hopefully solved the issue within #4150
replaced the regex with something more readable
(also ident is lost)

should close:
#4753
#4633
#4150
and maybe more

* Hash vcpkg_fixup_cmake_targets.cmake

* [boost] Fix use of find_package(Boost) with cache variables
[socket-io-client] Fix install

* reversed change back to use regex replace

* [glbinding] Fix _IMPORT_PREFIX depth in *-export.cmake files

* [tinyspline] Ignore warnings treated as errors

* [libevent, liblemon, libpng, smpeg2, zlib] Fix apply patches

* [libsodium] Fix apply patches

* [folly] Link correct libraries in debug and release

* [vtk] Remove unset of _IMPORT_PREFIX

* [tinyspline] Do not treat warnings as errors

* [smpeg2] Fix double* to int comparison

* [nvtt] Define value for HAVE_UNISTD_H in MacOS

* [libui] Fix MacOS X build

* [zlib] Fix download URL

* [qhull] Update to v7.2.1

* [podofo] Set value for HAVE_UNISTD_H in MacOS

* [mongo-cxx-driver,ogre,podofo,qhull] Bump CONTROL version

* [mongo-c-driver] Set _IMPORT_PREFIX

* [tmxparser] Bump CONTROL version

* [qhull,vxl] Bump CONTROL version
2019-02-28 23:53:42 -08:00
Alexander Karatarakis 233c4c358a [vcpkg edit] Check for VS Code onlinux (#5391) 2019-02-22 11:31:35 -08:00
Phil Christensen 8fd34506c3 [vcpkg] improve xunit xml output used in CI tests 2019-02-21 22:24:20 -08:00
Phil Christensen 92f57e460a [vcpkg] Save failure logs in tombstone in CI tests 2019-02-17 00:46:16 -08:00
Marco Craveiro d82f37b4bf [vcpkg] Fix warning on Apple (#5333)
Return type of _NSGetExecutablePath is int rather than bool [1],
causing a warning on Apple.

[1] https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/dyld.3.html
2019-02-08 18:06:08 -08:00
Robert Schumacher 52f165ef3b [vcpkg] Respect the documented VS environment variable %VCPKG_VISUAL_STUDIO_PATH% 2019-02-05 14:46:17 -08:00
Phil Christensen 61e2cac730 [vcpkg] improve port depend hash used in CI build
also fixed a few unstable ports that somtimes fail in CI tests
2019-02-01 23:38:44 -08:00
Yang Shen 92bd67970d Adding #elif macros for ARM and ARM64 (#5232) 2019-01-31 12:06:58 -08:00
Robert Schumacher 74e0c1a784 [vcpkg] Add additional checks for 32-bit hosted and targetting windows store when using VS2019 2019-01-30 14:27:10 -08:00
Robert Schumacher 660745956a [boost][python3] Fix building with VS 2019 2019-01-30 14:27:10 -08:00
Wim Leflere cde34211a5 Generate dependeny tree graph (#5185)
* use dashed link for optional dependency

* output full dependency tree

* add warning if requested package does not exist

* [vcpkg] Formatting

* [vcpkg] Fix issue when parsing qualified dependencies

Before this change, "harfbuzz[glib] (!x86)" would parse as "harfbuzz[glib]||!x86" instead of the desired "harfbuzz|glib|!x86"

* [vcpkg] Improve depend-info handling of features and qualified dependencies.
2019-01-29 13:40:47 -08:00
Robert Schumacher 39b7876db4 [vcpkg] Randomize topological sort in CI plans to allow concurrent builds to more efficiently interact 2019-01-22 17:11:36 -08: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
Phil Christensen edec46528d
Merge pull request #4974 from alexkaratarakis/dev/alkarata/bashcompletion
[autocomplete] Add tab-completion support for bash
2018-12-20 00:02:21 -08:00
Bradley Austin Davis b2996e1fd4 Support custom Android NDK, better ABI specification (#4986) 2018-12-17 16:45:09 -08:00
Łukasz Mendakiewicz 9cbdb33caf get_versions should return all versions so the best match can be found (#4945)
* get_versions should return all versions so the best match can be found

* [vcpkg] Consider more than one path when searching for system binaries
2018-12-17 16:15:15 -08:00
Alexander Karatarakis fed9a24526 [autocomplete] Add tab-completion support for bash 2018-12-13 14:02:02 -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
Billy O'Neal 5ff5ab7ae2 Remove constructor for type that was using aggregate initialization; in C++20 any user declared constructor means a type is no longer an aggregate. (#4906) 2018-12-07 17:34:13 -08:00
Raynor Vliegendhart f3b5ed1d24 Add IE Proxy fallback for Win7 (#4838) 2018-11-28 18:22:05 -08:00
Alexander Karatarakis 95f9ce56f3 Update CHANGELOG and bump version to 2018.11.23 2018-11-23 14:18:46 -08:00
Robert Schumacher 105622619d [vcpkg] Enable major version greater than 15 2018-11-22 14:18:16 -08:00
Alexander Karatarakis 7a931c922f Use Checks::check_exit() 2018-11-20 19:11:50 -08:00
Robert Schumacher 5f4af89cff [vcpkg] Improve error messages while installing 2018-11-19 17:16:29 -08:00
Billy O'Neal (VC LIBS) 02839ae4a8 vcpkg was going out of its way to use partition before calling the container erase function which is slower than just using remove_if.
remove_if is already stable, so separate stable and unstable versions are unnecessary.

https://iterator.wordpress.com/2016/01/31/algorithms_0/

Unstable remove_if algorithms are possible that might win, as indicated in that article; but plain remove_if provides the most consistent behavior.
2018-11-15 11:24:24 -08:00
Mark Ian Holland f1eb3aa4b9 Vulkan port (#4664)
* [Vulkan] Add a vulkan port based on the cuda port

* Add VULKAN_SDK env variable to whitelist

* * Added some additional diagnostic information
* Corrected if NOT exists statement
2018-11-14 15:25:50 -08:00
Robert Schumacher 273b8ce3d0 [vcpkg-fetch] Switch back to 18.1.0; add hack in vcpkg.exe to map the hashes together. 2018-11-07 17:10:51 -08:00
Agustín Rodríguez f194e98593 added vscode autodetection in macOS (#4589) 2018-11-06 17:48:34 -08:00
crackedmind 315ef424f8 [autocomplete] Add autocompletion for `vcpkg upgrade` 2018-11-04 02:15:07 +03:00
Mark Salisbury 1c2c69529e When downloading a tool, print URL and filepath (#4640)
I'm seeing the error below:

  Building package zlib[core]:x86-windows...
  A suitable version of git was not found (required v2.17.1). Downloading portable git v2.17.1...
  Downloading git...
  WinHttpSendRequest() failed: 12002

I suspect the WinHttpSendRequest error is due to being behind a proxy -
most download issues seem to be this.  Or perhaps because a sys admin
somewhere has disabled WinInet, somehow.  I don't know.  I don't know
how to debug WinHttpSendRequest(); a quick google search didn't help.

By printing the URL that vcpkg is trying to download, and where it's
trying to download to, I can pop the URL in my browser, save it at the
location specified, and move on with my life.
2018-11-02 16:20:02 -07:00
Alexander Karatarakis 5a1a75d2d6 [vcxproj] Explicitly specify intermediate and output directories
Avoids case-sensitivity issues, flattens the layout, no Win32 but x86 instead
Issue #4586
2018-11-01 01:26:31 -07:00
Alexander Karatarakis 0ad199727e
Merge pull request #4620 from Farwaykorse/no_user_props
Suggestion: Remove import of user property pages when building vcpkg
2018-10-31 17:21:36 -07:00
Roelf-Jilling a107942920 Remove import of user property pages when building vcpkg 2018-10-31 11:00:41 +01:00
Alexander Karatarakis 60eca2d4cd [vcpkg hash] Try all shaXXXsum tools 2018-10-30 13:54:35 -07:00
Alexander Karatarakis 7136958e6a [vcpkg hash] Also try sha512sum 2018-10-30 13:54:35 -07:00
Robert Schumacher ac1dd2022a [vcpkg-edit] Don't launch the editor in a clean environment 2018-10-26 21:31:59 -07:00
Robert Schumacher 9c62c6a37a Upgrades 2018.10.11 2018-10-25 10:27:26 -07:00
Alexander Karatarakis 4202405411 [vcpkg ci] Add --purge-tombstones flag 2018-10-23 20:44:47 -07:00
Alexander Karatarakis eb46ce1fbb Update CHANGELOG and bump version to 2018.10.20 2018-10-20 17:06:02 -07:00
Simon Hausmann dac6bba3f6 Add support for response files with vcpkg (#4507)
Response files are a convenient way of specifying bulk parameters,
typically supported by compilers and linkers. For vcpkg response files
provide a convenient way of installing sets of packages from simple
newline separate list files.
2018-10-20 12:16:38 -07:00
Robert Schumacher 90ebb375f6 [vcpkg-edit] Open package folders when passed --all 2018-10-19 09:07:24 -07:00
Alexander Karatarakis f19df646a0 Survey times. Refactor Chrono stuff. All times UTC, unless explicitly mentioned
Survey is set to be every 6 months, but you also get one in the first 10 days.
2018-10-17 19:43:15 -07:00
Alexander Karatarakis cf199dba42 Survey prompts are now shown only for intall/remove/export/update 2018-10-17 19:43:14 -07:00
LRFLEW 3d12e5ca72 Handle symlink when installing or removing a library (#4479) 2018-10-17 11:46:27 -07:00
Robert Schumacher df82d21f32 [vcpkg] Fix OSX build for old GCC versions 2018-10-16 05:53:57 -07:00
Alex Dewar 9cf7cfeeb9 Display names of environment variables correctly for non-Windows (#4471)
platforms in help
Currently vcpkg displays environment variable names in the help as
%VARIABLENAME% on non-Windows platforms, where it should be
$VARIABLENAME. This patch adds a macro to fix this.
2018-10-16 03:43:36 -07:00
Robert Schumacher f451d95a39 [vcpkg] Fix blocking on `vcpkg edit` with VSCode 2018-10-16 01:35:11 -07:00
Robert Schumacher faf7c2db7d [vcpkg] Improve handling of ctrl-c inside `install` or `build`. 2018-10-16 01:26:04 -07:00
Robert Schumacher 56e1d2f696 [vcpkg] Wrap all external process spawning in a Ctrl-C catcher to avoid corrupted consoles 2018-10-16 00:35:47 -07:00
Alexander Karatarakis 10e7bd5772 Print out the error when dumpbin fails 2018-10-15 21:32:01 -07:00
Alexander Karatarakis 20a8e393a0 [vcpkg env] Add argument to run a command 2018-10-15 21:31:18 -07:00
Alexander Karatarakis 7970ab0251 clang-formatting 2018-10-09 20:14:51 -07:00
Alexander Karatarakis efffda88f0 [vcpkg ci] Remove src as well 2018-10-09 20:14:51 -07:00
Alexander Karatarakis 276da906c5 Remove status_known() 2018-10-09 20:14:51 -07:00
Alexander Karatarakis e8e8c14998 `vcpkg edit` now checks the default user-installer location for VSCode 2018-10-04 14:39:48 -07:00
Robert Schumacher 1faf5c7d28 [vcpkg] Hotfix build break on non-windows platforms in commands.xvsinstances.cpp 2018-09-19 17:09:27 -07:00
Alexander Karatarakis a1a18eada1 Add -all flag to vswhere.exe call 2018-09-18 21:03:00 -07:00
Alexander Karatarakis 1f79c92eb0 Add command x-vsinstances 2018-09-18 20:55:35 -07:00
Ofek 555ccaaf67 nuget export: fix displayed file name (#4068)
* Initial addition of native visualizer, to improve debugging experience.

* Fix displayed export name, to match the real file name
2018-08-11 23:45:27 -07:00
Ofek 2815c4fb66 Initial addition of native visualizer, to improve debugging experience. (#3906) 2018-08-01 10:58:25 -07:00
menuet 1f4dde2b22 fix small bug in find_from_PATH (which prevents from using already installed tool) (#3904) 2018-07-17 16:57:39 -07:00
Robert Schumacher 97828a4be0 [vcpkg] Use -fPIC in all builds to enable mixing static libs with shared objects. 2018-07-17 16:09:12 -07:00
Robert Schumacher da9850efc7 [vcpkg-ci] Fix bug in "vcpkg ci" which results in different features being installed than originally desired. 2018-07-12 02:24:02 -07:00
Robert Schumacher d977ac231e [vcpkg] Remove vcpkg::Archives from vcpkg::base. Add vcpkg::Hash. 2018-07-09 07:06:29 -07:00
Robert Schumacher 802f51a142 [vcpkg] Split vcpkg::Commands::Fetch into backend and frontend 2018-07-09 06:29:37 -07:00
Robert Schumacher 2cfcdd174a [vcpkg] Fix missing include 2018-06-30 19:57:14 -07:00
Robert Schumacher 03a038cb86 [vcpkg] Improve metrics performance on Windows 2018-06-30 19:48:26 -07:00
Robert Schumacher 3ff69f138b [vcpkg] Warn instead of fail on tombstone 2018-06-30 19:48:25 -07:00
Alexander Karatarakis 1c64424122 [cmake] Include cmake version to abi-tag. Update to 3.11.4. 2018-06-28 16:34:40 -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
Konstantin Podsvirov a6986fdbea [vcpkg] Link bcrypt via CMake on Windows (#3765) 2018-06-26 11:40:44 -07:00
Robert Schumacher 1296b14f5a [vcpkg] Hotfix for non-Windows. Don't include <VersionHelpers.h> 2018-06-26 03:42:44 -07:00
AL 617be1b01d Use WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY instead of WINHTTP_ACCESS_TYPE_DEFAULT_PROXY when Windows 8.1 and newer (#3785) 2018-06-26 02:13:56 -07:00
Alexander Karatarakis bf6708576c
Merge pull request #3676 from martin-s/feature-graph
Dependency graph as new command
2018-06-20 00:34:13 -07:00
Alexander Karatarakis 6b7b82c58a [fetch] Refactor to allow getting the version along with the path 2018-06-19 23:07:31 -07:00
Alexander Karatarakis 31374871f2 Rename VcpkgStringRange -> StringRange 2018-06-19 23:07:31 -07:00
Alexander Karatarakis c256ccf452 Introduce stringrange.h/cpp and visualstudio.h/cpp 2018-06-19 23:07:31 -07:00
Alexander Karatarakis dbae3bfe56 Introduce archives.h/cpp 2018-06-19 23:07:31 -07:00
Alexander Karatarakis 3e76baa163 Introduce downloads.h/cpp 2018-06-19 23:07:31 -07:00
Alexander Karatarakis 7ba1c76781 Add retries to post-extract rename 2018-06-14 14:01:47 -07: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
martin-s 0f6953e385
Update commands.dependinfo.cpp 2018-06-08 18:29:44 +00:00
martin-s dfef4b8dd7 - Moved graph switches from search command to depend-info command.
- Added option to generate dgml graph.
2018-06-06 21:57:43 +02:00
Robert Schumacher 3fc54807cb [vcpkg] Fix warnings on non-Windows 2018-05-31 10:51:00 -07:00
Alexander Karatarakis 1d52df8140 Fix toolchain for linux 2018-05-30 17:19:29 -07:00
Alexander Karatarakis 2a73e13344 Direct-init instead of copy-init 2018-05-22 17:14:30 -07:00
Robert Schumacher 78e4d07e84 [vcpkg] Improve CMake messages to account for case-sensitive filesystems.
Improve CMake messages to display shortest targets first (which are hopefully the "public" ones).
Also, fix bug in StringLiteral.
2018-05-22 03:37:40 -07:00
Alexander Karatarakis b07568da41 Update CHANGELOG and bump version to v0.0.113 2018-05-19 19:29:31 -07:00
Alexander Karatarakis 285c69b0fa [c++] Condense powershell helper code into the remaining single usage
`vcpkg integrate powershell` uses it
2018-05-19 19:23:33 -07:00
Alexander Karatarakis 8549a095a8 Remove stray entries 2018-05-19 19:23:32 -07:00
Alexander Karatarakis a739df905c Merge VcpkgPowershellUtils into bootstrap.ps1 2018-05-19 19:23:32 -07:00