diff options
| -rw-r--r-- | toolsrc/include/BuildPolicies.h | 4 | ||||
| -rw-r--r-- | toolsrc/src/BuildPolicies.cpp | 18 |
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) |
