Commit Graph

68 Commits

Author SHA1 Message Date
nicole mazzuca
0fec1340eb
[vcpkg manifest] Add documentation! (#13488)
* [vcpkg docs] add docs for manifest files

These are just for the maintainer docs,
not user docs.

* [vcpkg] EBNF-ify platform expression parsing

this modifies nothing about what strings are accepted or rejected,
it just moves stuff around.

also adds tests.

* [vcpkg docs] add manifest mode example

* [wip] docs for augustin

also fix tabs

* [vcpkg manifest] switch to using maps for features

* Apply suggestions from code review

* un-experimentize format-manifest

* flesh out the user manifest mode docs

* CRs

* billy CRs

* final personal pass-thru
2020-09-14 15:07:02 -07:00
Dico
cfe88ab476
[abseil] Fix CMake warning (#12781)
* abseil: Patch to fix CMake Threads dependency warning.

* abseil: Make portfile comment more concise
2020-08-07 11:13:09 -07:00
nicole mazzuca
1c2af99415
[vcpkg format-manifest] Add convert-control flag (#12471)
* [vcpkg format-manifest] initial convert-control attempt

TODO: manifest comments! we should keep $directives

* Finalize x-format-manifest

First, fix Json::parse -- "\c", for any c, was incorrectly parsed.
It would emit the escaped character, and then parse the character, so
that `\b` would give you { '\b', 'b' }.

Second, canonicalize source paragraphs as we're parsing them. This found
an error in qt5 -- The `declarative` feature was listed twice, and we
now catch it, so I removed the second paragraph.

Add PlatformExpression::complexity to allow ordering platform
expressions in a somewhat reasonable way.

Notes:
  - We allow `all_modules` as a feature name for back-compat with
    paraview
  - In order to actually convert CONTROL to vcpkg.json, we'd need to
    rename the qt5 `default` feature.
  - We need to add support for $directives in x-format-manifest

* fix qt5 port

* format

* fix compile

* fix tests for canonicalization

* Clean up code

* add error message for nothing to format

* add extra_info field

* add `const X&` overloads for `Object::insert[_or_replace]`

* fix compile

* simple CRs

* add tests

* format

* Fix mosquitto port file

also unmerge a line

* fail the tests on malformed manifest

* fix format_all

* fix coroutine port-version

* format manifests
2020-08-02 10:08:07 -07:00
nicole mazzuca
1d8f0acc9c
[vcpkg manifest] Manifest Implementation (#11757)
==== Changes Related to manifests ====

* Add the `manifests` feature flag
  * This only says whether we look for a `vcpkg.json` in the cwd, not
    whether we support parsing manifests (for ports, for example)
* Changes to the manifests RFC
  * `"authors"` -> `"maintainers"`
  * `--x-classic-mode` -> `-manifests` \in `vcpkg_feature_flags`
  * reserve `"core"` in addition to `"default"`, since that's already
    reserved for features
  * Add a small helper note about what identifiers must look like
  * `<license-string>`: SPDX v3.8 -> v3.9
  * `"feature"."description"` is allowed to be an array of strings as well
  * `"version"` -> `"version-string"` for forward-compat with versions
    RFC
* Add the `--feature-flags` option
* Add the ability to turn off feature flags via passing
  `-<feature-flag>` to `VCPKG_FEATURE_FLAGS` or `--feature-flags`
* Add CMake toolchain support for manifests
  * Requires either:
    * a feature flag of `manifests` in either `Env{VCPKG_FEATURE_FLAGS}`
      or `VCPKG_FEATURE_FLAGS`
    * Passing the `VCPKG_ENABLE_MANIFESTS` option
  * The toolchain will install your packages to
    `${VCPKG_MANIFEST_DIR}/vcpkg_installed`.
* Add MSBuild `vcpkg integrate install` support for manifests
  * Requires `VcpkgEnableManifest` to be true
* `vcpkg create` creates a port that has a `vcpkg.json` instead of a
  `CONTROL`
* argparse, abseil, 3fd, and avisynthplus ports switched to manifest
  from CONTROL
* Add support for `--x-manifest-root`, as well as code for finding it if
  not passed
* Add support for parsing manifests!
* Add a filesystem lock!

==== Important Changes which are somewhat unrelated to manifests ====

* Rename `logicexpression.{h,cpp}` to `platform-expression.{h,cpp}`
* Add `PlatformExpression` type which takes the place of the old logic
  expression
  * Split the parsing of platform expressions from checking whether
    they're true or not
  * Eagerly parse PlatformExpressions as opposed to leaving them as
    strings
* Add checking for feature flag consistency
  * i.e., if `-binarycaching` is passed, you shouldn't be passing
    `--binarysource`
* Add the `Json::Reader` type which, with the help of user-defined
  visitors, converts JSON to your internal type
* VcpkgArgParser: place the switch names into a constant as opposed to
  using magic constants
  * In general update the parsing code so that this ^ works
* Add `Port-Version` fields to CONTROL files
  * This replaces the existing practice of
    `Version: <my-version>-<port-version>`

==== Smaller changes ====
* small drive-by cleanups to some CMake
  * `${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}` ->
    `${CURRENT_INSTALLED_DIR}`
  * Remove `-analyze` when compiling with clang-cl, since that's not a
    supported flag (vcpkg's build system)
  * Add a message about which compiler is detected by vcpkg's build
    system machinery
* Fix `Expected::then`
* Convert `""` to `{}` for `std::string` and `fs::path`, to avoid a
  `strlen` (additionally, `.empty()` instead of `== ""`, and `.clear()`)
* Add `Strings::strto` which converts strings to numeric types
* Support built-in arrays and `StringView` for `Strings::join`
* Add `operator<` and friends to `StringView`
* Add `substr` to `StringView`
* SourceParagraphParser gets some new errors
2020-06-30 10:40:18 -07:00
Jack·Boos·Yu
cc06e46a36
[abseil] Fix usage issue (#12022) 2020-06-23 13:07:02 -07:00
Jack·Boos·Yu
b0fbae8b83
[abseil] Enable dynamic build on Windows (#11827)
* [abseil] Enable dynamic build on Windows

* re-fix arm build
2020-06-10 17:56:46 -07:00
Jack·Boos·Yu
2f28b35d77
[abseil] Fix arm build (#11630)
* [abseil] Fix arm build

* update baseline
2020-06-01 16:15:54 -07:00
Carsten Neumann
41f360b833
[abseil] Use std:: types when feature cxx17 is enabled (#11039)
Adds a patch changing macros in absl/base/options.h to
always use the std:: namespace types instead of the
absl:: namespace replacements (for any, optional,
string_view, variant).
The upstream version of options.h uses compiler/library
feature detection to decide this, but patch
fix-lnk2019-error.patch hard codes use of absl:: types,
thus rendering setting CMAKE_CXX_STANDARD to 17 in the
port file ineffective. Since auto detection is problematic
from an ABI point of view (see comments in
absl/base/options.h for details), this applies an
alternate patch for fix-lnk2019-error.patch when feature
cxx17 is enabled.
2020-04-30 17:22:56 -07:00
Lily
87ebede041
[abseil] Fix CompressedTuple move constructor on MSVC (#10721)
* [abseil] Fix CompressedTuple move constructor on MSVC

* [abseil] Add comment for new patch
2020-04-17 14:15:00 -07:00
Lily
32d29d6df4
[abseil] Fix feature name error (#10620) 2020-04-03 10:26:50 -07:00
Lily
f933c30226
[abseil] Add compiler C++17. (#8248)
* [abseil] Add compiler C++17.

* Add feature c++17.
2020-03-27 20:52:58 -07:00
nicole mazzuca
f9e78dcc68
[abseil] Add uwp support (#10301)
* [abseil] Add uwp support

* [abseil] Drop support with arm/arm64

* [opencensus-cpp] Add keyword supports

* update baseline

* [abseil] Enable arm support
2020-03-05 16:01:57 -08: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
NancyLi1013
6723668f7f [abseil] Update to the latest and fix link failure error using StrCat (#9367)
* [abseil] Update to the latest and fix link failure for StrCat with > 4 arguments

* Remove message from vcpkg_fail_port_install

* Update lnk2019-error patch
2019-12-23 15:44:37 -08:00
Phoebe
4fd3b5bfbb [abseil fix cmake config issue (#7745) 2019-08-27 15:52:18 -07:00
Cloud Han
ac00ef2070 use abseil's official cmake for build (#7018) 2019-07-15 11:37:40 -07:00
pravic
18b029a5e3 [WIP] Add a Homepage URL entry for vcpkg ports (#2933)
* [vcpkg] Add "Homepage" field to the CONTROL files.
2019-06-15 16:54:47 -07:00
Robert Schumacher
3d9c55d2e0 [many ports] Updates 2019.05.08 (#6382)
* [many ports] Updates 2019.05.08

* Undo changes for failure ports grpc libjpeg-turbo curl cartographer

* [guetzli] Patch to handle breaking changes in butteraugli
2019-05-09 22:53:05 -07:00
Robert Schumacher
223d5d82ac
[many ports] Updates 2019.05.07 (#6338)
* [many ports] Updates 2019.05.07

* Undo assimp and gdcm2 changes since they caused regressions
2019-05-08 17:51:44 -07:00
Victor Romero
050e71d01d
Remove references to CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS (#5937)
* [various ports] remove references to CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS

* [alac,benchmark,capnproto] Fix  check_linkage call

* [fastlz] Fix SHA512

* [coroutine] Fix dynamic build

* [folly] Find double-conversion

* [gamma] Use vcpkg_from_github

* [librsync] Enable static builds

* [netcdf-cxx4] Fix SHA512

* [octomap] Fix static build

* [tidy-html5] Fix static build

* [various ports] remove custom messages for shared/static builds, modernize some scripts in the meantime

* [folly] Use ras0219's fix for link paths

* [octomap] Fix exported targets

* [uvatlas] Set tool download SHA512

* [duktape+python2] fix portfile to call configure with correct python version, manage python2 also outside win32

* [suitesparse] osx fix

* [gtkmm] Call vcpkg_check_linkage after including vcpkg functions

* [duktape] Resolve conflicts

* [duktape] FIxed typo in Python paths

* [wangle] Find zlib

* [openssl-uwp] Fix SHA512

* [glib] Allow static builds on non-Windows

* [suitesparse] Fix build on Windows

* [multiple ports] Bump CONTROL version

* [multiple ports] Fix description indent

* [directxtk] Fix CONTROL file

* [bde,duktape,qpid-proton] Build packages with python2 installed

* [binn] remove CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS

* [gdal,live555,uriparser] Fix regressions

* [live555] Update to 2019.04.24
2019-05-02 22:57:43 -07:00
Robert Schumacher
516d10bb68 [many ports] Updates 2019.04.19 (#6155)
* [many ports] Updates 2019.04.19
2019-04-30 09:20:18 -07:00
Robert Schumacher
c95512aaf6 [many ports] Updates 2019.03.29 (#5698)
* Updates 2019.03.29

* Undo changes to 4 ports(rocksdb tbb thrift uwebsockets) due to failures

* [folly] Fix target files in debug mode

* Undo glog changes since it caused sophus openmvg and cartographer failures

* Undo Folly changes since it cause wangle failed

* Undo Folly portfile
2019-04-15 22:30:11 -07:00
Phil Christensen
f5c04ea6b4
Removes string replacement on Abseil headers (#5850)
Abseil now has all uses of min and max wrapped in parens to prevent macro expansion. This will continue to be the case going forward, so these replacements are no longer needed.

Also, the Github web UI is forcing an extra change that updates the return character to the proper Windows CR+LF
2019-03-29 23:28:03 -07:00
JackBoosY
1c05aa9770 [abseil]Fix link error when using abseil library. (#5860)
* [jemalloc]Fix dll generated when generating static library

* Revert "[jemalloc]Fix dll generated when generating static library"

This reverts commit a833bf5593.

* [abseil]Fix link error when using abseil library.
2019-03-29 23:03:56 -07:00
CJ Johnson
8d8cea2be0
Removes string replacement on Abseil headers
Abseil now has all uses of min and max wrapped in parens to prevent macro expansion. This will continue to be the case going forward, so these replacements are no longer needed.

Also, the Github web UI is forcing an extra change that updates the return character to the proper Windows CR+LF
2019-03-28 11:11:30 -04:00
Robert Schumacher
1207951b7b Updates 2019.01.30 2019-02-12 17:38:31 -08:00
Robert Schumacher
c6db2c880a Updates 2019.01.09 2019-01-18 14:08:49 -08:00
Robert Schumacher
bb1bb1c94a Updates 2018.12.14 2019-01-09 12:27:19 -08:00
Phil Christensen
8a71f22e88 [abseil] bump dash version number in CONTROL
Bump dash version number so it will trigger a rebuild for those who already the package installed.
2018-12-04 14:28:14 -08:00
kjpus
0dcfc13003
Update CMakeLists.txt to include hash/* 2018-11-30 13:25:05 -05:00
Robert Schumacher
ab567d90b7 Upgrades for 2018.11.08 2018-11-20 15:14:12 -08:00
Robert Schumacher
9fe14bc18e Updates 2018.11.01 2018-11-08 00:17:59 -08:00
Robert Schumacher
c538d6d996 Upgrades 2018.10.25 2018-10-26 18:49:29 -07:00
Robert Schumacher
9c62c6a37a Upgrades 2018.10.11 2018-10-25 10:27:26 -07:00
Robert Schumacher
4ff1f50221 [abseil] Remove cctz dependency. Install all headers. Fixes #4442. Fixes #4373. 2018-10-11 21:10:13 -07:00
Robert Schumacher
64a7483a4a Upgrades 2018.09.18 2018-09-19 14:13:12 -07:00
Robert Schumacher
7e5bb652fb Upgrades 2018.08.03 2018-09-18 02:11:05 -07:00
Robert Schumacher
c3d34e7d8e Upgrades 2018.06.31 2018-08-03 00:09:21 -07:00
Robert Schumacher
86fecfc61c Upgrades 2018.07.08 2018-07-08 22:29:53 -07:00
Robert Schumacher
c0ec4809b1 Upgrades for 2018.07.03 2018-07-03 21:44:16 -07:00
Robert Schumacher
feb0e9af9a Upgrades 2018.07.01 2018-07-03 00:52:10 -07:00
Robert Schumacher
a650bad523 Updates 2018.06.15 2018-06-15 22:16:58 -07:00
Robert Schumacher
2a0bf9c488 Upgrades for 2018.06.12 2018-06-12 21:14:14 -07:00
Robert Schumacher
fcb303331e [abseil][aws-sdk-cpp][folly][jsonnet][ms-gsl][mujs][openimageio][re2][rs-core-lib][thrift][unicorn-lib][zeromq] Upgrades
[robin-map] Initial commit
2018-05-14 17:56:34 -07:00
Robert Schumacher
8eac561107 [abseil][aws-sdk-cpp][directxmesh][directxtex][directxtk][discord-rpc][exiv2][folly][jsonnet][libuv][ms-gsl][nuklear][rocksdb][rs-core-lib][thrift][unicorn][zeromq] Upgrades 2018-05-01 15:49:11 -07:00
Robert Schumacher
0764aafbd0 [abseil][aws-sdk-cpp][breakpad][chakracore][cimg][date][exiv2][libzip][rs-core-lib] Upgrades 2018-04-12 23:32:09 -07:00
Robert Schumacher
05edef9223 [abseil][aws-sdk-cpp][exiv2][forest][jsonnet][rs-core-lib][thrift][unicorn-lib] Upgrades 2018-04-09 22:56:38 -07:00
Robert Schumacher
89201f4aec [abseil][aws-sdk-cpp][azure-c-shared-utility][azure-iot-sdk-c][azure-uamqp-c][azure-umqtt-c][breakpad][exiv2][gdcm2][grpc][nuklear][rocksdb][rs-core-lib][thrift][zeromq] Upgrades 2018-04-05 22:02:37 -07:00
Robert Schumacher
d1ecca1c7d [abseil][aws-sdk-cpp][clara][eastl][exiv2][libuv][nuklear][openimageio][thrift] Upgrades 2018-04-03 12:36:28 -07:00
Robert Schumacher
3d87445cb0 [abseil][aws-sdk-cpp][exiv2][rs-core-lib][tbb][thrift][zeromq] Upgrades 2018-03-29 13:17:53 -07:00