Commit Graph

17 Commits

Author SHA1 Message Date
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
Alexander Neumann
9f051a093f
[libxml2] Add iconv and charset linkage in vcpkg-cmake-wrapper on osx (#11072)
* [libxml2] Add iconv and charset linkage in vcpkg-cmake-wrapper on osx

* update baseline

* update baseline
2020-05-18 10:40:18 -07:00
klaus triendl
102179f879 [libxml2] Embed resources in Windows-based shared library (#9474) (#9492) 2020-01-16 13:33:22 -08:00
Alexander Neumann
45d31c931a [libxml2] Apply fixes to the target of libxml2 (#9636) 2020-01-15 10:33:50 -08: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
myd7349
68a2b4c766 [libxml2] Update to 2.9.9 (#5193)
* [libxml2] Update to 2.9.9

Fix #5177

* [libxml2] Fix static build

* [libxml2] Modernize

* [libxml2] Use vcpkg_from_github

* [libxml2] Get version info from configure.ac

* [libxml2] Install xmlversion.h

* [libxml2] Improve port file

* [libxml2] Move version.h generation into CMakeLists.txt

* [libxml2] Fix misspelled version header

* [libxml2] Add UWP support
2019-03-15 15:29:08 -07:00
Robert Schumacher
a95fbce456 [libxml2] Display usage information 2018-04-19 10:40:06 -07:00
Robert Schumacher
1f7d155b5f [libiconv][libxml2] Fix libxml2 on Linux and OSX 2018-04-04 17:57:54 -07:00
Robert Schumacher
9f9778ccff [many ports] Improve behavior on Linux and general cleanup 2018-03-11 23:42:54 -07:00
Alexander Karatarakis
26516fe485 vcpkg_configure_cmake (and _meson) now embed debug symbols within static libs (/Z7) 2017-09-09 00:12:54 -07:00
Raynor Vliegendhart
345527b365 [libxml2] Add http mirror
On some networks, access to FTP sites is restricted. In order to still download, build and install libxml2, an http mirror has to be added to the cmake file.
2017-08-30 07:19:34 +02:00
Robert Schumacher
4143dc0c2b [libxml2] Switch build to CMake for better triplet support. Add liblzma dependency. 2017-04-05 16:07:40 -07:00
Martin Müller
7ebd074e06 Use different output folder for every triplet, and add debug info to release builds 2016-11-22 09:44:37 +01:00
Martin Müller
971e1dfd0d Fix libxml2 port when building with static linkage 2016-11-21 22:39:34 +01:00
Alexander Karatarakis
1808d461b0 triplet is now automatically included before portfiles.
Also remove trailing whitespaces from portfiles
2016-11-08 14:25:47 -08:00
Alexander Karatarakis
2e8f2d76be [libxml2] Call vcpkg_copy_pdbs() 2016-10-31 13:35:53 -07:00
Martin Müller
c402d53080 Add libxml2 2016-10-16 17:44:49 +02:00