Commit Graph

73 Commits

Author SHA1 Message Date
Julian Xhokaxhiu
ae5b1cf41b
[binarycaching.md] Improve Azure DevOps example (#18807)
Add a missing, but required task for Azure DevOps Pipelines, to automatically authenticate against the Artifacts registry.
This should help any vcpkg newcomer to integrate easily.
2021-07-06 13:37:15 -07:00
autoantwort
876e67c26e
[vcpkg.cmake] PREPEND CMAKE_FIND_ROOT_PATH (#17336)
* [vcpkg.cmake] PREPEND CMAKE_FIND_ROOT_PATH

* [vcpkg.cmake] make PREPEND optional (default off, option VCPKG_PREFER_VCPKG_LIBS)

* Apply suggestions from code review

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update scripts/buildsystems/vcpkg.cmake

Co-authored-by: nicole mazzuca <83086508+strega-nil-ms@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2021-06-23 15:30:46 -07:00
pastdue
38d2893b30
Add VCPKG_MAKE_CONFIGURE_OPTIONS (that can be set in the triplet) (#18132)
* Add VCPKG_MAKE_CONFIGURE_OPTIONS that can be set in the triplet

To append options to the configure command

* Add documentation

* Expand without quotes

Co-Authored-By: ras0219 <533828+ras0219@users.noreply.github.com>

* Add VCPKG_CMAKE_CONFIGURE_OPTIONS that can be set in the triplet

Co-Authored-By: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>

* Bump vcpkg-cmake port-version

* Run x-add-version vcpkg-cmake

* Apply suggestions from code review

* [vcpkg-cmake] add version

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: nicole mazzuca <83086508+strega-nil-ms@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2021-06-08 09:50:09 -07:00
ras0219
8c497bb647
[vcpkg] Add experimental $X_VCPKG_ASSET_SOURCES for source caching (#13639)
* [vcpkg] Add experimental $VCPKG_X_READWRITE_MIRROR_URL_TEMPLATE for source caching

* [vcpkg] Use prerelease version for testing

* [docs] Add assetcaching.md

* Revert bootstrap changes

* [vcpkg_download_distfile] Deprecate SILENT_EXIT

* cmake_parse_arguments() always defines option arguments

* Adjust CI baseline

* [vcpkg_download_distfile] Address CR comments, restore ARIA2

* [CI] Add source caching to Linux and OSX CI passes

* [ci.baseline.txt] Skip chartdir on more platforms
2021-06-04 16:48:26 -07:00
Mats Taraldsvik
9411ed741e
[docs] Updated list of off-by-default features (#18258) 2021-06-03 12:26:40 -07:00
Augustin Popa
ce6253b6f4
[Doc] Update binarycaching.md with clearer description (#18033)
* Update binarycaching.md with clearer description

We received user feedback about the binary caching feature not being clear. I rewrote some of the opening section to try to describe it better. Feedback is appreciated.

* Apply suggestions from code review

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
2021-05-26 10:28:37 -07:00
nicole mazzuca
a3db16a447
[native supports-expr] docs changes (#16971) 2021-05-21 13:14:02 -07:00
Kai Pastor
5a271a9290
[doc] Fix spelling errors (#17560)
* [doc] Fix spelling errors in docs

* [doc] Fix spelling errors in scripts

* Bump version

* x-add-version

* Fix another typo

* Rebuild
2021-05-09 10:48:42 -07:00
nicole mazzuca
6e80675573
[docs registries] Add reference documentation (#17672)
* using registries reference documentation

* start work on "creating registries" document

also fix minor issue in "using registries" doc

* Robert's comments, continue working

* finish creating registries docs

* add links to example registries

* aupopa cr
2021-05-06 12:13:29 -07:00
Robert Schumacher
2924119c1e
[docs] Consolidate versioning documentation (#17580)
Co-authored-by: Robert Schumacher <ras0219@outlook.com>
2021-05-03 09:43:34 -07:00
autoantwort
44d94c2edb
[docs] binarycaching.md: Move Configuration section to the top. Add table of… (#17060)
* binarycaching.md: Move Configuration section to the top. Add table of contents. Make clear that file location must be absolute. Add that read is the default mode.

* Apply suggestions from code review

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
2021-04-30 12:40:18 -07:00
Phoebe
713e3aeb3f
[docs] Fix broken links (#17566)
* [docs] Fix broken links

* Fix the charactor

* Update the charactor
2021-04-29 13:39:50 -07:00
Kai Pastor
6240751612
[docs] Add mingw documentation (#17219)
* Add mingw documentation

* Minor edits

* Fix typos

* Revise comments about tools

* Make mingw-w64 explicit

* Fix another typo

* How to avoid mixing different installations

* Ban '/bin' from 'PATH', too

* Update mingw.md

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2021-04-28 14:49:21 -07:00
Kai Pastor
99a179d84d
Fix broken link (#17484) 2021-04-28 13:52:32 -07:00
Robert Schumacher
0f1ca21567
[docs-triplets] Suggest overlay triplets (#16867) 2021-03-29 09:40:08 -07:00
Park DongHa
2b903edac3
[docs] Vulkan SDK usage for Android triplets (#16881)
* [docs] Vulkan SDK usage for Android triplets

* [docs] update links

* redirect to developer.android.com for some keywords

* Update docs/users/android.md

Co-authored-by: Cheney Wang <38240633+Cheney-W@users.noreply.github.com>

* [docs] add detailed path for libvulkan.so

Co-authored-by: Cheney Wang <38240633+Cheney-W@users.noreply.github.com>
2021-03-29 09:30:34 -07:00
ras0219
75522bb1f2
[docs] Improve inter-document linking; add 'latest' links (#16502)
* [docs] Improve inter-document linking; add 'latest' links

* [docs] Apply suggestions from code review

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2021-03-11 16:37:49 -08:00
Carlos O'Ryan
8010840071
[docs/users/binarycaching.md] a little blurb about using GCS (#16337)
* [docs/users/binarycaching.md] a little blurb about using GCS

* Address review comments

* Small tweaks
2021-03-10 19:34:12 -06:00
nicole mazzuca
fe2a6bb789
[host dependencies] add support in the scripts (#16627)
This contains all the docs and scripts changes from #16479,
without any of the ports changes, for easier CR
2021-03-10 15:33:16 -08:00
ras0219
45ae65fd93
[docs] Add CMake Integration to manifests.md (#16323)
* [docs] Add CMake Integration to manifests.md

* [docs] Add command line reference to manifests.md

* Update docs/users/manifests.md

Co-authored-by: Adam Johnson <AdamJohnso@gmail.com>

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Adam Johnson <AdamJohnso@gmail.com>
2021-02-26 13:10:37 -08:00
Carlos O'Ryan
a09f19c379
[docs/users/manifests.md] add a link to the specification (#16336)
* [docs/users/manifests.md] add a link to the specification

* Accept review suggestions

Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>

Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
2021-02-24 13:55:16 -08:00
Phoebe
5c1731cf74
[vcpkg docs] Update the versioning.getting-started.md (#16324) 2021-02-20 21:17:04 -08:00
nicole mazzuca
8d7cd1d09e
[vcpkg integrate install] Allow setting the vcpkg installed dir (#16173)
* [vcpkg integrate install] Allow setting the vcpkg installed dir

* fix the cache-y thing

* robert crs
2021-02-10 16:22:33 -08:00
ras0219
4502f8ed68
[vcpkg.targets] Add an additional options parameter for MSBuild integration (#16155)
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2021-02-09 15:35:06 -08:00
Robert Schumacher
50651b1680
[docs/users/manifests.md] Prioritize examples. Fix example. Add MSBuild integration documentation. (#16069)
* [docs/users/manifests.md] Prioritize examples. Fix example. Add MSBuild integration documentation.

* Update docs/users/manifests.md

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update docs/users/manifests.md

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2021-02-09 14:03:41 -08:00
Victor Romero
3187f09a3c
[vcpkg] More versioning docs (#15693)
* [vcpkg] Versioning docs: Getting started

* Versioning docs: Getting started [revised]

* Link to example of manifests in msbuild

* [WIP] Reference docs

* [vcpkg] Fix links in Getting Started with Versioning
2021-02-08 12:03:37 -08:00
Kevin Lalumiere
f60b947e13
[vcpkg] Allow to use Nuget's cache for Nuget binary caching sources (fix #15169) (#15512)
* Fix warning on clang version 10.0.0-4ubuntu1

The warning was

```shell
../src/vcpkg/commands.porthistory.cpp:55:14: error: unused function 'is_date' [-Werror,-Wunused-function]
```

* Add environment variable VCPKG_USE_NUGET_CACHE

As the name suggests, this environment variable allow tu use Nuget
cache for Nuget binary caching sources.

* Document NuGet's Cache environment variable
2021-01-24 23:11:02 -08:00
ras0219
4f8fb510ba
[vcpkg] Add initial versioning documentation (#15565)
* [vcpkg] Improve efficiency and tests of versioning

* [vcpkg] Add initial versioning documentation and rename x-default-baseline to builtin-baseline

* [vcpkg] Enable metrics for builtin-baseline & overrides

* [vcpkg] Address PR comments

* [vcpkg] Add support for  syntax in version>=

* [vcpkg] Remove port-version from dependency syntax

* [vcpkg] Address CR comment

* [vcpkg] Minor docs fixup
2021-01-15 12:35:48 -08:00
ras0219
6b346462ba
[vcpkg] Improve docs for binarycaching (#15396) 2021-01-05 14:37:04 -08:00
ras0219
9a81392e48
[vcpkg] VCPKG_ENV_PASSTHROUGH_UNTRACKED (#15115)
* [vcpkg] Add VCPKG_ENV_PASSTHROUGH_UNTRACKED

* [vcpkg] CR comments

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-12-17 11:35:08 -08:00
ras0219
acb6b10e7f
[vcpkg] Fix uploading to Azure DevOps Artifacts (#14952) 2020-12-08 10:46:46 -08:00
ras0219
5c48bee451
[vcpkg] Add experimental x-azblob binary provider (#13626)
* [vcpkg] Add experimental x-azblob binary provider

* [vcpkg] Test azblob storage provider in CI

* [vcpkg] Address some CR comments from #13639

* [vcpkg] Fixup azure-pipelines

* [vcpkg] Fix regression where the downloaded package is purged before decompressing

* [vcpkg] Further refactor vcpkg::Downloads

* [vcpkg] Enable OSX for x-azblob testing

* [vcpkg] Reduce diff against master

* [vcpkg] Extract Downloads::details::split_uri_view

* [vcpkg] Address PR comments

* [vcpkg] Add testing and metrics for x-azblob

* [vcpkg] Add docs for x-azblob

This includes a note that it is currently experimental

* [vcpkg] Address CR comments

* [vcpkg] Revert pipeline changes except OSX to minimize disruption

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-11-18 12:21:23 -08:00
miheer vaidya
b36ada7d75
[vcpkg] User help: selecting-library-features.md (#14189) 2020-11-02 17:26:25 -08:00
ras0219
d1ba685e97
[vcpkg] Further JSON error improvements (#13399)
* [vcpkg] Split vcpkg/base/json.h into vcpkg/base/jsonreader.h

* [vcpkg] Extract definitions of Configuration-Deserializer (& friends)

These types are only used by VcpkgPaths during the initial parse.

* [vcpkg] Introduce levenshtein-distance suggestions for json errors

* [vcpkg] Fix regression in supports handling

* [vcpkg] Fix signed/unsigned mismatch

* [vcpkg] Address CR comments

* [vcpkg] Address CR comments

* Fix compiler error from merge conflict.

* [vcpkg] Change parameters of Reader::check_for_unexpected_fields to better match declaration

* [vcpkg] Improve errors from features set

* [vcpkg] Fix includes

* [vcpkg] Reuse code

* [vcpkg] Check the "name" field always to maximize error information

* [docs] Improve english phrasing in manifests.md

* [vcpkg] Correct docs link for manifests

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-10-12 10:22:47 -07:00
Alexander Neumann
0c1c43742d
[vcpkg] add env var VCPKG_OVERLAY_TRIPLETS (#12790)
* [vcpkg] add env var VCPKG_OVERLAY_TRIPLETS

* shorten way to complicated doc

* run clang format

* Apply CR

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>

* Apply CR2

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-09-28 07:51:16 -07:00
ras0219
c98fd09290
[vcpkg-docs] Add note about GitHub hosted agents (#13641)
* [vcpkg_docs] Add note about GitHub hosted agents

* [vcpkg-docs] Add ./ prefixes to GitHub example

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-09-27 17:52:09 -07:00
Rafael Rivera
9c605a5efe
[vcpkg_docs] Fix feature flags option typo (#13578) 2020-09-17 13:10:02 -07:00
ras0219
54a09ff4ef
[vcpkg-docs] Add docs/users/binarycaching.md (#13517)
* [vcpkg-docs] Add docs/users/binarycaching.md

* [vcpkg] Address PR Comments

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-09-15 18:04:12 -07:00
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
Paul
6c7f2d95d8
11129: Add VCPKG_LINKER_FLAGS_<CONFIG>. (#11290)
Co-authored-by: Nicole Mazzuca <mazzucan@outlook.com>
Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-09-03 11:00:35 -07:00
Frank Theile
5c056a65bb
Fix bullet lists for integration.md on readthedocs.io (#12873) 2020-08-19 21:13:37 -07:00
Alexander Neumann
4fb846bd44
[vcpkg] add environment variable VCPKG_OVERLAY_PORTS (#12640)
* [vcpkg] add environment variable VCPKG_OVERLAY_PORTS

* add documentation for VCPKG_OVERLAY_PORTS

* append env overlay instead of prepending to give explicitly listed overlays priority

* fix formating (manually)

* manually fixing formating

* improve help text

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
2020-08-05 11:21:42 -07:00
Jonathan Hale
5e40afca0d
[corrade,magnum,*-plugins,*-extras,*-integration] Update to v2020.06 (#12211)
* [magnum] Improve maintainability of feature to cmake flag conversion

* [magnum] Ignore features not supported on current platform

Allows `vcpkg install magnum[*]` on any platform.

Signed-off-by: Squareys <squareys@googlemail.com>

* [magnum] Add cglcontext and windowlesscglapplication features

* docs: Update valid VCPKG_CMAKE_SYSTEM_NAME values

Signed-off-by: Squareys <squareys@googlemail.com>

* [magnum-plugins] Replace deprecated basisu with archive download

Signed-off-by: Squareys <squareys@googlemail.com>

* [magnum-plugins] Add meshoptimizersceneconverter feature

Signed-off-by: Squareys <squareys@googlemail.com>

* [magnum-plugins] Also use vcpkg_check_features

Analog to magnum port.

Signed-off-by: Squareys <squareys@googlemail.com>

* [corrade,magnum,*-plugins,*-extras,*-integration] Update to v2020.06

Signed-off-by: Squareys <squareys@googlemail.com>

* [meshoptimizer] Add initial port

Signed-off-by: Squareys <squareys@googlemail.com>

* [magnum-plugins] Replace meshoptimizer download with feature dependency

Signed-off-by: Squareys <squareys@googlemail.com>

* [corrade,magnum-*] Fix license installation command

Signed-off-by: Squareys <squareys@googlemail.com>

* [meshoptimizer] Use vcpkg_fixup_cmake_targets

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-14 08:38:18 -07:00
Phoebe
bd2dbb2ce5
[vcpkg] Update message in bootstrap.ps1 (#12145)
* [vcpkg] Update message in bootstrap.ps1

* Update docs/users/integration.md
2020-07-01 16:58:04 -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
Mohammed Alyousef
a6257ac262
[vcpkg] add x86-wasm.cmake to community triplets (#11323)
* add x86-wasm.cmake to community triplets

The EMSDK enviroment variable is normally defined when first installing Emscripten.

* Rename x86-wasm.cmake to wasm32-emscripten.cmake

* Update wasm32-emscripten.cmake

* Update wasm32-emscripten.cmake

* Add wasm32 and wasm64 arch to docs

* Create wasm64-emscripten.cmake

* remove wasm64

* Delete wasm64-emscripten.cmake

* Add wasm32 to list of identifiers

* add emscripten VCPKG_CMAKE_SYSTEM_NAME support

* add path check to EMSDK cmake toolchain
2020-06-02 16:07:41 -07:00
Pascal Thomet
55be137d5b
[vcpkg] Improve Android doc (triplets, usage with cmake and prefab) (#11264)
* Android: add docs/examples/vcpkg_android_example_cmake/

* Add docs/users/android.md

* Improve Android prefab doc

Following additional informations given by @atkawa7 at
https://github.com/microsoft/vcpkg/pull/11264

* Link to android.md
* Update the prefab usage instructions: "vcpkg install"
    the 4 archs before exporting a prefab
* added --prefab-debug flag
* added gradle integration info
* reviewed the prefab output directory structure
  (from a dump of an actual export)

* docs/users/triplets.md: link to android.md

* docs/index.md: link to android.md

* android.md: specify 2 possibiities for android_ndk_home

* Added examples/vcpkg_android_example_cmake_script/cmake/vcpkg_android.cmake

Usage:

1. Main CMakeLists:
  if (VCPKG_TARGET_ANDROID)
      include("cmake/vcpkg_android.cmake")
  endif()

2. cmake invocation:
  cmake .. -DVCPKG_TARGET_ANDROID=ON -DANDROID_ABI=armeabi-v7a

* trigger pipeline build

* trigger pipelines
2020-05-13 16:42:13 -07:00
alcroito
c5f01e1dee
Add initial iOS support (#6275)
* Add iOS community triplets and toolchain support

Added an iOS toolchain to enable building packages for iOS.
The toolchain is used when a triplet's VCPKG_CMAKE_SYSTEM_NAME is set
to iOS.

To configure which architecture should be built, as well as other
iOS specifics, the following triplet variables can be set:
- VCPKG_TARGET_ARCHITECTURE
- VCPKG_OSX_SYSROOT
- VCPKG_OSX_DEPLOYMENT_TARGET
- VCPKG_OSX_ARCHITECTURES

The following VCPKG_TARGET_ARCHITECTURE values are currently
supported:
 - arm, arm64, x64, x86.

The following VCPKG_OSX_SYSROOT values are currently supported:
 - iphoneos, iphonesimulator, or an absolute path to the device or
   simulator Xcode SDK.

VCPKG_OSX_DEPLOYMENT_TARGET can be set to control the minimum iOS
delopyment target for the built libraries.

CMAKE_OSX_ARCHITECTURES is derived from VCPKG_TARGET_ARCHITECTURE,
so generally it should not be set. In case if someone needs to target
a more specific architecture (like armv7k or arm64e), it can
be set in the triplet via VCPKG_OSX_ARCHITECTURES.

Note that only certain combinations of the architecture and sysroot
will work: simulator SDKs only provide x86-based libraries, etc.

The toolchain also sets CMAKE_SYSTEM_PROCESSOR for certain
configurations, because certain packages (like libpng) depend on the
processor type.

Added 4 community iOS triplets that build static libraries:
- arm-ios, arm64-ios, x86-ios, x64-ios.
The non-arm triplets target the iOS simulator.

The triplets build static libraries because they are easiest to
integrate into an iOS project. Dynamic libraries or frameworks require
code signing on iOS, which complicates integration.

Added heuristics to try and automatically detect what iOS triplet to
use when building your own CMake project (so when a CMake project sets
CMAKE_TOOLCHAIN_FILE to buildsystems/vcpkg.cmake), if no explicit
triplet is provided (VCPKG_TARGET_TRIPLET is undefined).

The heuristic checks for the values of CMAKE_SYSTEM_NAME and
CMAKE_OSX_ARCHITECTURES. Note that for this to work,
CMAKE_OSX_ARCHITECTURES needs to be set before the first project()
call in your CMake project.

Added workaround so find_package finds vcpkg installed packages
when targeting iOS.
This is done by saving / restoring the value of CMAKE_FIND_ROOT_PATH
while also adding the vcpkg package root in the find_package override
macro.
The workaround can be removed once vcpkg upgrades to CMake 3.15.0
or higher where the issue is fixed.

Fixes: #6003

* Fix building libpng and pcre2 targetting iOS

Fixes: #6003
2020-04-15 13:06:55 -07:00
Alexander Neumann
aeffa625e5
[vcpkg] Add the possibility to load vcvars.bat with external toolchain. (#10399)
* Add VCPKG_LOAD_VCVARS_ENV
allow loading vcvars.bat if an external toolchain file is used.

* add documentation
2020-03-27 20:19:53 -07: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