diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2017-01-31 17:09:48 -0800 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2017-02-01 11:42:41 -0800 |
| commit | 459999786960483f6d46229524500543459968ed (patch) | |
| tree | aa3cf7e44325983e693315f698622eb70153ec77 /toolsrc/src/BuildInfo.cpp | |
| parent | bd1a10e5b97b073731cbb97e26611edf317c16d5 (diff) | |
| download | vcpkg-459999786960483f6d46229524500543459968ed.tar.gz vcpkg-459999786960483f6d46229524500543459968ed.zip | |
Introduce BuildPolicies (not used by the post_build checks yet)
Diffstat (limited to 'toolsrc/src/BuildInfo.cpp')
| -rw-r--r-- | toolsrc/src/BuildInfo.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/toolsrc/src/BuildInfo.cpp b/toolsrc/src/BuildInfo.cpp index b401f9d44..82243ebac 100644 --- a/toolsrc/src/BuildInfo.cpp +++ b/toolsrc/src/BuildInfo.cpp @@ -1,6 +1,7 @@ #include "pch.h" #include "BuildInfo.h" #include "vcpkg_Checks.h" +#include "opt_bool.h" #include "vcpkglib_helpers.h" namespace vcpkg::PostBuildLint @@ -44,11 +45,20 @@ namespace vcpkg::PostBuildLint static const std::string LIBRARY_LINKAGE = "LibraryLinkage"; } - BuildInfo BuildInfo::create(const std::unordered_map<std::string, std::string>& pgh) + BuildInfo BuildInfo::create(std::unordered_map<std::string, std::string> pgh) { BuildInfo build_info; - build_info.crt_linkage = details::required_field(pgh, BuildInfoRequiredField::CRT_LINKAGE); - build_info.library_linkage = details::required_field(pgh, BuildInfoRequiredField::LIBRARY_LINKAGE); + build_info.crt_linkage = details::remove_required_field(&pgh, BuildInfoRequiredField::CRT_LINKAGE); + build_info.library_linkage = details::remove_required_field(&pgh, BuildInfoRequiredField::LIBRARY_LINKAGE); + + // The remaining entries are policies + for (const std::unordered_map<std::string, std::string>::value_type& p : pgh) + { + const BuildPolicies::type policy = BuildPolicies::parse(p.first); + Checks::check_exit(policy != BuildPolicies::UNKNOWN, "Unknown policy found: %s", p.first); + const opt_bool_t status = opt_bool::parse(p.second); + build_info.policies.emplace(policy, status); + } return build_info; } |
