40 Commits

Author SHA1 Message Date
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
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
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 65d4bc146bf7c1c21989b680497b1f6f9a09c967.
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
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
Curtis.Bezault
0c7d8f4146 Change purpose of this PR to just overriding the abi 2019-08-09 14:21:58 -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
Curtis.Bezault
d68b9a08b1 only use filename 2019-07-23 16:28:00 -07:00
Curtis.Bezault
62ec13ba36 Merge build.cpp 2019-07-23 15:29:49 -07:00
Curtis.Bezault
459908ae14 add external file hashes to the binary paragraph 2019-07-23 10:07:39 -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
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
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
44dcc3d4f3 First pass at port settings 2019-07-16 15:34:13 -07:00
Curtis.Bezault
684989a1e4 use additional env param 2019-07-16 14:02:13 -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 b069ceb2f231

* Report errors from Paragraphs::try_load_port()
2019-06-21 23:50:05 -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
Robert Schumacher
3ff69f138b [vcpkg] Warn instead of fail on tombstone 2018-06-30 19:48:25 -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
Jacob Zhong
892f7052f9 [vcpkg] Add support of external downloader aria2 2018-04-02 18:48:14 -07:00
Robert Schumacher
1f62b32641 [vcpkg] Sort abi tags to ensure stability 2018-03-22 10:01:12 -07:00
Robert Schumacher
eab1d5c531 [vcpkg-ci] Do not rebuild libraries that were previously successful or failed 2018-03-20 19:12:35 -07:00
Robert Schumacher
25b8f25dad [vcpkg] Initial commit of experimental compressed binary archiving behind a flag 2018-02-26 18:38:25 -08:00
Robert Schumacher
8b97ae2dc1 [vcpkg] Fix "just-in-time" requirements calculation 2018-02-25 10:40:28 -08:00
Alexander Karatarakis
494f3002bf Add internal option to clean packages\<port> after the build 2018-02-21 15:32:20 -08:00
Squareys
f1ce125a28 [vcpkg] Fix build command for packages that depend of features
Signed-off-by: Squareys <squareys@googlemail.com>
2018-02-16 14:27:59 +01:00
Robert Schumacher
eb1a7b099e [vcpkg] Fix regressions introduced with update command. Fixed issue with upgrade where it assumed downloads were not allowed. 2017-12-13 05:43:00 -08:00
Robert Schumacher
5335d17f53 [vcpkg] Initial experimental support for VCPKG_BUILD_TYPE release 2017-11-25 15:25:18 -08:00
Robert Schumacher
141f10801c [vcpkg] Improve external toolchain handling. 2017-11-25 11:50:31 -08:00
Robert Schumacher
468e9e70e6 [vcpkg] Refactor to remove Build::BuildResults -- too similar to ExtendedBuildResult 2017-11-16 19:29:32 -08:00
Robert Schumacher
34b4db1fb4 [vcpkg] Output autodetected CMake usage information after install. 2017-11-16 17:42:15 -08:00
Robert Schumacher
6a91d1ece1 [vcpkg] Refactor argument parsing to use common code paths. 2017-11-02 15:20:42 -07:00
Alexander Karatarakis
79ebd26605 Remove VcpkgCmdArguments.check_and_get_optional_command_arguments() overload
Also, use Util::Sets::contains() where possible.
2017-10-26 19:17:12 -07:00
Alexander Karatarakis
2c9536ce4f [vcpkg ci] Introduce --exclude option 2017-10-26 19:17:12 -07: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