aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2017-01-31 18:55:14 -0800
committerAlexander Karatarakis <alkarata@microsoft.com>2017-02-01 11:42:41 -0800
commitc595fac0ffb8de45f390ab591fbc76fa12ca0442 (patch)
treee311575c9f5bca4a04656f423995ad0c3e49cb33
parentcd0b7d644b2ba61618b70ae58f50d2e880dbe509 (diff)
downloadvcpkg-c595fac0ffb8de45f390ab591fbc76fa12ca0442.tar.gz
vcpkg-c595fac0ffb8de45f390ab591fbc76fa12ca0442.zip
Add BuildPolicies::values()
-rw-r--r--toolsrc/include/BuildPolicies.h4
-rw-r--r--toolsrc/src/BuildPolicies.cpp18
2 files changed, 15 insertions, 7 deletions
diff --git a/toolsrc/include/BuildPolicies.h b/toolsrc/include/BuildPolicies.h
index fbe9b0ff3..8298ffe2d 100644
--- a/toolsrc/include/BuildPolicies.h
+++ b/toolsrc/include/BuildPolicies.h
@@ -11,7 +11,6 @@ namespace vcpkg::PostBuildLint::BuildPolicies
struct type
{
- static constexpr int length() { return 2; }
constexpr explicit type(backing_enum_t backing_enum) : backing_enum(backing_enum) { }
constexpr operator backing_enum_t() const { return backing_enum; }
@@ -23,6 +22,9 @@ namespace vcpkg::PostBuildLint::BuildPolicies
backing_enum_t backing_enum;
};
+ static constexpr int value_count = 2;
+ const std::vector<type>& values();
+
static constexpr type UNKNOWN(backing_enum_t::UNKNOWN);
static constexpr type DLLS_WITHOUT_LIBS(backing_enum_t::DLLS_WITHOUT_LIBS);
diff --git a/toolsrc/src/BuildPolicies.cpp b/toolsrc/src/BuildPolicies.cpp
index 0f7c3c492..ed0f76c38 100644
--- a/toolsrc/src/BuildPolicies.cpp
+++ b/toolsrc/src/BuildPolicies.cpp
@@ -26,17 +26,23 @@ namespace vcpkg::PostBuildLint::BuildPolicies
switch (this->backing_enum)
{
- case DLLS_WITHOUT_LIBS:
- return CMAKE_VARIABLE_DLLS_WITHOUT_LIBS;
- case UNKNOWN:
- Checks::exit_with_message("No CMake command corresponds to UNKNOWN");
- default:
- Checks::unreachable();
+ case DLLS_WITHOUT_LIBS:
+ return CMAKE_VARIABLE_DLLS_WITHOUT_LIBS;
+ case UNKNOWN:
+ Checks::exit_with_message("No CMake command corresponds to UNKNOWN");
+ default:
+ Checks::unreachable();
}
}
type::type(): backing_enum(backing_enum_t::UNKNOWN) {}
+ const std::vector<type>& values()
+ {
+ static const std::vector<type>& v = {UNKNOWN, DLLS_WITHOUT_LIBS};
+ return v;
+ }
+
type parse(const std::string& s)
{
if (s == NAME_DLLS_WITHOUT_LIBS)