aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include
diff options
context:
space:
mode:
authorCurtis J Bezault <curtbezault@gmail.com>2019-07-18 09:02:21 -0700
committerGitHub <noreply@github.com>2019-07-18 09:02:21 -0700
commitbb3a9ddb6ec917f549e991f6bd344ce77054bb67 (patch)
treefff6dcc363c397df752f1b638703e1e51ec454e0 /toolsrc/include
parent5a41488a51d93e4c8cfc15ac42c14f4b02b64741 (diff)
downloadvcpkg-bb3a9ddb6ec917f549e991f6bd344ce77054bb67.tar.gz
vcpkg-bb3a9ddb6ec917f549e991f6bd344ce77054bb67.zip
[vcpkg] Environment Variable Passthrough (#7290)
* use additional env param * remove partials * remove change to linux triplet * Fix some issues that vicroms pointed out * whitespace change
Diffstat (limited to 'toolsrc/include')
-rw-r--r--toolsrc/include/vcpkg/build.h24
-rw-r--r--toolsrc/include/vcpkg/sourceparagraph.h2
2 files changed, 26 insertions, 0 deletions
diff --git a/toolsrc/include/vcpkg/build.h b/toolsrc/include/vcpkg/build.h
index 04cd7cf87..e26597376 100644
--- a/toolsrc/include/vcpkg/build.h
+++ b/toolsrc/include/vcpkg/build.h
@@ -117,6 +117,29 @@ namespace vcpkg::Build
std::string create_error_message(const BuildResult build_result, const PackageSpec& spec);
std::string create_user_troubleshooting_message(const PackageSpec& spec);
+ enum class VcpkgTripletVar
+ {
+ TARGET_ARCHITECTURE = 0,
+ CMAKE_SYSTEM_NAME,
+ CMAKE_SYSTEM_VERSION,
+ PLATFORM_TOOLSET,
+ VISUAL_STUDIO_PATH,
+ CHAINLOAD_TOOLCHAIN_FILE,
+ BUILD_TYPE,
+ ENV_PASSTHROUGH,
+ };
+
+ const std::unordered_map<std::string, VcpkgTripletVar> VCPKG_OPTIONS = {
+ {"VCPKG_TARGET_ARCHITECTURE", VcpkgTripletVar::TARGET_ARCHITECTURE},
+ {"VCPKG_CMAKE_SYSTEM_NAME", VcpkgTripletVar::CMAKE_SYSTEM_NAME},
+ {"VCPKG_CMAKE_SYSTEM_VERSION", VcpkgTripletVar::CMAKE_SYSTEM_VERSION},
+ {"VCPKG_PLATFORM_TOOLSET", VcpkgTripletVar::PLATFORM_TOOLSET},
+ {"VCPKG_VISUAL_STUDIO_PATH", VcpkgTripletVar::VISUAL_STUDIO_PATH},
+ {"VCPKG_CHAINLOAD_TOOLCHAIN_FILE", VcpkgTripletVar::CHAINLOAD_TOOLCHAIN_FILE},
+ {"VCPKG_BUILD_TYPE", VcpkgTripletVar::BUILD_TYPE},
+ {"VCPKG_ENV_PASSTHROUGH", VcpkgTripletVar::ENV_PASSTHROUGH},
+ };
+
/// <summary>
/// Settings from the triplet file which impact the build environment and post-build checks
/// </summary>
@@ -135,6 +158,7 @@ namespace vcpkg::Build
Optional<fs::path> visual_studio_path;
Optional<std::string> external_toolchain_file;
Optional<ConfigurationType> build_type;
+ std::vector<std::string> passthrough_env_vars;
};
std::string make_build_env_cmd(const PreBuildInfo& pre_build_info, const Toolset& toolset);
diff --git a/toolsrc/include/vcpkg/sourceparagraph.h b/toolsrc/include/vcpkg/sourceparagraph.h
index 6232a3fd2..9fbd83475 100644
--- a/toolsrc/include/vcpkg/sourceparagraph.h
+++ b/toolsrc/include/vcpkg/sourceparagraph.h
@@ -23,6 +23,8 @@ namespace vcpkg
std::vector<std::string> filter_dependencies(const std::vector<Dependency>& deps, const Triplet& t);
std::vector<FeatureSpec> filter_dependencies_to_specs(const std::vector<Dependency>& deps, const Triplet& t);
+ std::vector<Features> filter_dependencies_to_features(const std::vector<vcpkg::Dependency>& deps,
+ const Triplet& t);
// zlib[uwp] becomes Dependency{"zlib", "uwp"}
std::vector<Dependency> expand_qualified_dependencies(const std::vector<std::string>& depends);