10 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
Billy O'Neal
4fb2256085
[vcpkg] Allow CI to pass in all relevant directories and remove use of symbolic links (#11483) 2020-06-03 19:31:28 -07:00
Alexander Neumann
18ab20050c
[gmp,nettle,hogweed] Add new ports (#10613)
* add new function vcpkg_fixup_pkgconfig

* make message with changed files a debug_message

* add two more cases to the debug *.pc files

* comment out prefix.
use --define-variable=prefix=INSTALL_PATH

* changed the comment header.

* add missing word

* finish vcpkg_fixup_pkgconfig.cmake

* Update vcpkg_fixup_pkgconfig.cmake

Note: since CMake is run in script mode the description of VCPKG_FIXUP_PKGCONFIG_CALLED cannot be viewed

* transfer changes from x windows pr

* fix typo in regex

* add port for vs yasm integration within VCPKG

* add gmp

* add nettle

* add missing windows flag in control

* CI workaround
CI seems to not pass env YASMPATH correctly to cl.
Since YASM is on PATH -> remove $(VCInstallDir) as the default for YasmPath

* overwrite correct import.

* If CI does not give logs just display some extra info

* target replacement was mising

* apply same replacements for nettle

* remove unnecessary status message

* remove unnecessary platform code

* update supports field for vs-yasm

* apply replacement also to libhogweed

* fix static builds

* remove not working code

* remove debug/release options

* add additional replacement for the case the SOURCE dir has already been patched within VCPKG

* add triplet selection to vcpkg_install_msbuild

* fix missing ; in patches

* remove gmp dependency in static builds since they are not required

* cleanup portfiles

* add missing vcpkg_fixup_pkgconfig() call
2020-05-08 13:55:11 -07:00
Voskrese
b8c5ede662
[msbuild] Hotfix /p:UseEnv=True to be a port-local setting (#11058)
* Update vcpkg_build_msbuild.cmake

* Update vcpkg_install_msbuild.cmake

* Update CONTROL

* Update CONTROL

* Update portfile.cmake

* Update portfile.cmake

* Update ci.baseline.txt
2020-04-30 10:11:20 -07:00
Voskrese
ed9511fcf6
[libvpx][mpg123] Fix use of YASM in MSBuild (via path) (#10952)
* Update vcpkg_build_msbuild.cmake

* Update vcpkg_install_msbuild.cmake

* Update portfile.cmake

* Update CONTROL

* Update portfile.cmake

* Update CONTROL

* Update ci.baseline.txt.

* Update ci.baseline.txt

* Update ci.baseline.txt

* Update ci.baseline.txt

* Update portfile.cmake

* Update CONTROL

* Update CONTROL

* Update portfile.cmake

* [mpg123][libvpx] UWP is a target

Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-04-23 21:18:56 -07:00
Phoebe
9d1048e612 [libusb] upgrade and support arm64 (#8976) 2019-11-19 11:02:13 -08: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
Don
a421f43ed1 Add headers to vcpkg_download_distfile (#5640)
* Add headers to vcpkg_download_distfile

Allows headers to be appended when downloading a distribution. This allows for setting
authentication headers to download from a private repository.

* [scripts,docs] Regenerate docs for portfile functions

* [docs,scripts] Fix typo regressions

* [docs,scripts] Fix broken link
2019-03-14 13:43:49 -07:00
Roger Leigh
6d5eba6a6d xalan-c: Install headers correctly (#4565)
* Add SKIP_CLEAN option to vcpkg_install_msbuild

Also add vcpkg_clean_msbuild function to factor out clean
logic and allow re-use in portfiles.

* xalan-c: Correct header globbing

* vcpkg_install_msbuild: SKIP_CLEAN documentation correction

* [xalan-c] Add explicit check for localmsgindex header.
[docs] Regenerate
2018-10-25 12:34:45 -07:00
Frederik Carlier
cc00cf05fb New packages: libimobiledevice, getopt, readline (#3504)
* Add libplist

* Add libusbmuxd

* Fix typos

* Add getopt

* Add libimobiledevice

* Fix typos

* Add libideviceactivation

* Add ideviceinstaller

* Include utilities

* Install usbmuxd

* Add readline

* Fix readline on 64-bit windows

* Add libirecovery

* libideviceactivation: include tools

* Bump versions to fix build issues

* Bump versions

* Add idevicerestore

* [getopt][getopt-win32] Rename to getopt-win32 and only install on Windows Desktop

* [readline][readline-win32] Rename to readline-win32 and only install for Windows Desktop

* [vcpkg_from_github][vcpkg_apply_patches] Make PATCHES relative to the current port directory

* [vcpkg_install_msbuild][vcpkg_check_linkage] Introduce vcpkg_install_msbuild() and vcpkg_check_linkage().

* [libimobiledevice et al] Use vcpkg_from_github() and vcpkg_install_msbuild()

* [readline] Fix static builds
2018-08-08 04:15:13 -07:00