aboutsummaryrefslogtreecommitdiff
path: root/docs/users
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2020-02-04 15:50:10 -0800
committerRobert Schumacher <roschuma@microsoft.com>2020-02-04 15:50:10 -0800
commit6f66ad14fe9da11d4bf50f5b25b4da86ed971c53 (patch)
tree0f5dbcd1719cd6a8e486c4058cfefd607d58aa6c /docs/users
parentd502f061bb3ee0258d6453acbf258b9e5d93d564 (diff)
parentd808514c9df44bb97d6eccff952bfe8ec4e156f7 (diff)
downloadvcpkg-6f66ad14fe9da11d4bf50f5b25b4da86ed971c53.tar.gz
vcpkg-6f66ad14fe9da11d4bf50f5b25b4da86ed971c53.zip
Merge remote-tracking branch 'origin/master' into HEAD
Diffstat (limited to 'docs/users')
-rw-r--r--docs/users/triplets.md40
1 files changed, 39 insertions, 1 deletions
diff --git a/docs/users/triplets.md b/docs/users/triplets.md
index 7b75956e8..21dea5c31 100644
--- a/docs/users/triplets.md
+++ b/docs/users/triplets.md
@@ -2,12 +2,29 @@
Triplet is a standard term used in cross compiling as a way to completely capture the target environment (cpu, os, compiler, runtime, etc) in a single convenient name.
-In Vcpkg, we use triplets to describe self-consistent builds of library sets. This means every library will be built using the same target cpu, OS, and compiler toolchain, but also CRT linkage and preferred library type.
+In Vcpkg, we use triplets to describe an imaginary "target configuration set" for every library. Within a triplet, libraries are generally built with the same configuration, but it is not a requirement. For example, you could have one triplet that builds `openssl` statically and `zlib` dynamically, one that builds them both statically, and one that builds them both dynamically (all for the same target OS and architecture). A single build will consume files from a single triplet.
We currently provide many triplets by default (run `vcpkg help triplet`). However, you can easily add your own by creating a new file in the `triplets\` directory. The new triplet will immediately be available for use in commands, such as `vcpkg install boost:x86-windows-custom`.
To change the triplet used by your project, such as to enable static linking, see our [Integration Document](integration.md#triplet-selection).
+## Community triplets
+
+Triplets contained in the `triplets\community` folder are not tested by continuous integration, but are commonly requested by the community.
+
+Because we do not have continuous coverage, port updates may break compatibility with community triplets. Because of this, community involvement is paramount!
+
+We will gladly accept and review contributions that aim to solve issues with these triplets.
+
+### Usage
+
+Community Triplets are enabled by default, when using a community triplet a message like the following one will be printed during a package install:
+
+```no-highlight
+-- Using community triplet x86-uwp. This triplet configuration is not guaranteed to succeed.
+-- [COMMUNITY] Loading triplet configuration from: D:\src\viromer\vcpkg\triplets\community\x86-uwp.cmake
+```
+
## Variables
### VCPKG_TARGET_ARCHITECTURE
Specifies the target machine architecture.
@@ -58,8 +75,29 @@ This option also has forms for configuration-specific and C flags:
- `VCPKG_C_FLAGS_DEBUG`
- `VCPKG_C_FLAGS_RELEASE`
+<a name="VCPKG_DEP_INFO_OVERRIDE_VARS"></a>
+### VCPKG_DEP_INFO_OVERRIDE_VARS
+Replaces the default computed list of triplet "Supports" terms.
+
+This option (if set) will override the default set of terms used for qualified dependency resolution and "Supports" field evaluation.
+
+See the [`Supports`](../maintainers/control-files.md#Supports) control file field documentation for more details.
+
+> Implementers' Note: this list is extracted via the `vcpkg_get_dep_info` mechanism.
+
## Windows Variables
+### VCPKG_ENV_PASSTHROUGH
+Instructs vcpkg to allow additional environment variables into the build process.
+
+On Windows, vcpkg builds packages in a special clean environment that is isolated from the current command prompt to ensure build reliability and consistency.
+
+This triplet option can be set to a list of additional environment variables that will be added to the clean environment.
+
+See also the `vcpkg env` command for how you can inspect the precise environment that will be used.
+
+> Implementers' Note: this list is extracted via the `vcpkg_get_tags` mechanism.
+
<a name="VCPKG_VISUAL_STUDIO_PATH"></a>
### VCPKG_VISUAL_STUDIO_PATH
Specifies the Visual Studio installation to use.