diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2017-04-25 17:11:21 -0700 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2017-04-25 17:56:18 -0700 |
| commit | 003693c5ac9b6dd4484341cb8b09c22243cef954 (patch) | |
| tree | d6e01a592e6c3bfc50efbc8ad2fc56b5f1840443 | |
| parent | 09b9340515b98b81d751b5be54376893a22dcbf0 (diff) | |
| download | vcpkg-003693c5ac9b6dd4484341cb8b09c22243cef954.tar.gz vcpkg-003693c5ac9b6dd4484341cb8b09c22243cef954.zip | |
Rework LinkageType enum
| -rw-r--r-- | toolsrc/include/PostBuildLint_BuildInfo.h | 4 | ||||
| -rw-r--r-- | toolsrc/include/PostBuildLint_BuildType.h | 16 | ||||
| -rw-r--r-- | toolsrc/include/PostBuildLint_LinkageType.h | 37 | ||||
| -rw-r--r-- | toolsrc/src/PostBuildLint_BuildInfo.cpp | 4 | ||||
| -rw-r--r-- | toolsrc/src/PostBuildLint_BuildType.cpp | 12 | ||||
| -rw-r--r-- | toolsrc/src/PostBuildLint_LinkageType.cpp | 42 |
6 files changed, 59 insertions, 56 deletions
diff --git a/toolsrc/include/PostBuildLint_BuildInfo.h b/toolsrc/include/PostBuildLint_BuildInfo.h index 4dd1a3228..336fffcb9 100644 --- a/toolsrc/include/PostBuildLint_BuildInfo.h +++ b/toolsrc/include/PostBuildLint_BuildInfo.h @@ -12,8 +12,8 @@ namespace vcpkg::PostBuildLint { static BuildInfo create(std::unordered_map<std::string, std::string> pgh); - LinkageType::Type crt_linkage; - LinkageType::Type library_linkage; + LinkageType crt_linkage; + LinkageType library_linkage; std::map<BuildPolicies, OptBool> policies; }; diff --git a/toolsrc/include/PostBuildLint_BuildType.h b/toolsrc/include/PostBuildLint_BuildType.h index c152ddfc9..fd6b1421a 100644 --- a/toolsrc/include/PostBuildLint_BuildType.h +++ b/toolsrc/include/PostBuildLint_BuildType.h @@ -18,30 +18,30 @@ namespace vcpkg::PostBuildLint::BuildType { Type() = delete; - constexpr explicit Type(const BackingEnum backing_enum, const ConfigurationType::Type config, const LinkageType::Type linkage) : + constexpr explicit Type(const BackingEnum backing_enum, const ConfigurationType::Type config, const LinkageType linkage) : backing_enum(backing_enum), m_config(config), m_linkage(linkage) { } constexpr operator BackingEnum() const { return backing_enum; } const ConfigurationType::Type& config() const; - const LinkageType::Type& linkage() const; + const LinkageType& linkage() const; const std::regex& crt_regex() const; const std::string& to_string() const; private: BackingEnum backing_enum; ConfigurationType::Type m_config; - LinkageType::Type m_linkage; + LinkageType m_linkage; }; static const std::string ENUM_NAME = "vcpkg::PostBuildLint::BuildType"; - static constexpr Type DEBUG_STATIC = Type(BackingEnum::DEBUG_STATIC, ConfigurationType::DEBUG, LinkageType::STATIC); - static constexpr Type DEBUG_DYNAMIC = Type(BackingEnum::DEBUG_DYNAMIC, ConfigurationType::DEBUG, LinkageType::DYNAMIC); - static constexpr Type RELEASE_STATIC = Type(BackingEnum::RELEASE_STATIC, ConfigurationType::RELEASE, LinkageType::STATIC); - static constexpr Type RELEASE_DYNAMIC = Type(BackingEnum::RELEASE_DYNAMIC, ConfigurationType::RELEASE, LinkageType::DYNAMIC); + static constexpr Type DEBUG_STATIC = Type(BackingEnum::DEBUG_STATIC, ConfigurationType::DEBUG, LinkageTypeC::STATIC); + static constexpr Type DEBUG_DYNAMIC = Type(BackingEnum::DEBUG_DYNAMIC, ConfigurationType::DEBUG, LinkageTypeC::DYNAMIC); + static constexpr Type RELEASE_STATIC = Type(BackingEnum::RELEASE_STATIC, ConfigurationType::RELEASE, LinkageTypeC::STATIC); + static constexpr Type RELEASE_DYNAMIC = Type(BackingEnum::RELEASE_DYNAMIC, ConfigurationType::RELEASE, LinkageTypeC::DYNAMIC); static constexpr std::array<Type, 4> values = { DEBUG_STATIC, DEBUG_DYNAMIC, RELEASE_STATIC, RELEASE_DYNAMIC }; - Type value_of(const ConfigurationType::Type& config, const LinkageType::Type& linkage); + Type value_of(const ConfigurationType::Type& config, const LinkageType& linkage); } diff --git a/toolsrc/include/PostBuildLint_LinkageType.h b/toolsrc/include/PostBuildLint_LinkageType.h index e7e26885c..9855b485e 100644 --- a/toolsrc/include/PostBuildLint_LinkageType.h +++ b/toolsrc/include/PostBuildLint_LinkageType.h @@ -1,19 +1,21 @@ #pragma once #include <string> -namespace vcpkg::PostBuildLint::LinkageType +namespace vcpkg::PostBuildLint { - enum class BackingEnum + struct LinkageType final { - NULLVALUE = 0, - DYNAMIC, - STATIC - }; + enum class BackingEnum + { + NULLVALUE = 0, + DYNAMIC, + STATIC + }; - struct Type - { - constexpr Type() : backing_enum(BackingEnum::NULLVALUE) {} - constexpr explicit Type(BackingEnum backing_enum) : backing_enum(backing_enum) { } + static LinkageType value_of(const std::string& as_string); + + constexpr LinkageType() : backing_enum(BackingEnum::NULLVALUE) {} + constexpr explicit LinkageType(BackingEnum backing_enum) : backing_enum(backing_enum) { } constexpr operator BackingEnum() const { return backing_enum; } const std::string& to_string() const; @@ -22,13 +24,14 @@ namespace vcpkg::PostBuildLint::LinkageType BackingEnum backing_enum; }; - static const std::string ENUM_NAME = "vcpkg::PostBuildLint::LinkageType"; - - static constexpr Type NULLVALUE(BackingEnum::NULLVALUE); - static constexpr Type DYNAMIC(BackingEnum::DYNAMIC); - static constexpr Type STATIC(BackingEnum::STATIC); + namespace LinkageTypeC + { + static constexpr const char* ENUM_NAME = "vcpkg::PostBuildLint::LinkageType"; - static constexpr std::array<Type, 2> values = { DYNAMIC, STATIC }; + static constexpr LinkageType NULLVALUE(LinkageType::BackingEnum::NULLVALUE); + static constexpr LinkageType DYNAMIC(LinkageType::BackingEnum::DYNAMIC); + static constexpr LinkageType STATIC(LinkageType::BackingEnum::STATIC); - Type value_of(const std::string& as_string); + static constexpr std::array<LinkageType, 2> VALUES = { DYNAMIC, STATIC }; + } } diff --git a/toolsrc/src/PostBuildLint_BuildInfo.cpp b/toolsrc/src/PostBuildLint_BuildInfo.cpp index af06fbe2b..afba05aae 100644 --- a/toolsrc/src/PostBuildLint_BuildInfo.cpp +++ b/toolsrc/src/PostBuildLint_BuildInfo.cpp @@ -19,11 +19,11 @@ namespace vcpkg::PostBuildLint BuildInfo build_info; const std::string crt_linkage_as_string = details::remove_required_field(&pgh, BuildInfoRequiredField::CRT_LINKAGE); build_info.crt_linkage = LinkageType::value_of(crt_linkage_as_string); - Checks::check_exit(VCPKG_LINE_INFO, build_info.crt_linkage != LinkageType::NULLVALUE, "Invalid crt linkage type: [%s]", crt_linkage_as_string); + Checks::check_exit(VCPKG_LINE_INFO, build_info.crt_linkage != LinkageTypeC::NULLVALUE, "Invalid crt linkage type: [%s]", crt_linkage_as_string); const std::string library_linkage_as_string = details::remove_required_field(&pgh, BuildInfoRequiredField::LIBRARY_LINKAGE); build_info.library_linkage = LinkageType::value_of(library_linkage_as_string); - Checks::check_exit(VCPKG_LINE_INFO, build_info.library_linkage != LinkageType::NULLVALUE, "Invalid library linkage type: [%s]", library_linkage_as_string); + Checks::check_exit(VCPKG_LINE_INFO, build_info.library_linkage != LinkageTypeC::NULLVALUE, "Invalid library linkage type: [%s]", library_linkage_as_string); // The remaining entries are policies for (const std::unordered_map<std::string, std::string>::value_type& p : pgh) diff --git a/toolsrc/src/PostBuildLint_BuildType.cpp b/toolsrc/src/PostBuildLint_BuildType.cpp index 8e7b7bf6b..291984d42 100644 --- a/toolsrc/src/PostBuildLint_BuildType.cpp +++ b/toolsrc/src/PostBuildLint_BuildType.cpp @@ -4,24 +4,24 @@ namespace vcpkg::PostBuildLint::BuildType { - Type value_of(const ConfigurationType::Type& config, const LinkageType::Type& linkage) + Type value_of(const ConfigurationType::Type& config, const LinkageType& linkage) { - if (config == ConfigurationType::DEBUG && linkage == LinkageType::STATIC) + if (config == ConfigurationType::DEBUG && linkage == LinkageTypeC::STATIC) { return DEBUG_STATIC; } - if (config == ConfigurationType::DEBUG && linkage == LinkageType::DYNAMIC) + if (config == ConfigurationType::DEBUG && linkage == LinkageTypeC::DYNAMIC) { return DEBUG_DYNAMIC; } - if (config == ConfigurationType::RELEASE && linkage == LinkageType::STATIC) + if (config == ConfigurationType::RELEASE && linkage == LinkageTypeC::STATIC) { return RELEASE_STATIC; } - if (config == ConfigurationType::RELEASE && linkage == LinkageType::DYNAMIC) + if (config == ConfigurationType::RELEASE && linkage == LinkageTypeC::DYNAMIC) { return RELEASE_DYNAMIC; } @@ -34,7 +34,7 @@ namespace vcpkg::PostBuildLint::BuildType return this->m_config; } - const LinkageType::Type& Type::linkage() const + const LinkageType& Type::linkage() const { return this->m_linkage; } diff --git a/toolsrc/src/PostBuildLint_LinkageType.cpp b/toolsrc/src/PostBuildLint_LinkageType.cpp index 79dbd7397..b3f045750 100644 --- a/toolsrc/src/PostBuildLint_LinkageType.cpp +++ b/toolsrc/src/PostBuildLint_LinkageType.cpp @@ -3,40 +3,40 @@ #include "vcpkg_Enums.h" #include "vcpkg_Checks.h" -namespace vcpkg::PostBuildLint::LinkageType +namespace vcpkg::PostBuildLint { - static const std::string NULLVALUE_STRING = Enums::nullvalue_to_string(ENUM_NAME); + static const std::string NULLVALUE_STRING = Enums::nullvalue_to_string(LinkageTypeC::ENUM_NAME); static const std::string NAME_DYNAMIC = "dynamic"; static const std::string NAME_STATIC = "static"; - const std::string& Type::to_string() const - { - switch (this->backing_enum) - { - case LinkageType::DYNAMIC: - return NAME_DYNAMIC; - case LinkageType::STATIC: - return NAME_STATIC; - case LinkageType::NULLVALUE: - return NULLVALUE_STRING; - default: - Checks::unreachable(VCPKG_LINE_INFO); - } - } - - Type value_of(const std::string& as_string) + LinkageType LinkageType::value_of(const std::string& as_string) { if (as_string == NAME_DYNAMIC) { - return LinkageType::DYNAMIC; + return LinkageTypeC::DYNAMIC; } if (as_string == NAME_STATIC) { - return LinkageType::STATIC; + return LinkageTypeC::STATIC; } - return LinkageType::NULLVALUE; + return LinkageTypeC::NULLVALUE; + } + + const std::string& LinkageType::to_string() const + { + switch (this->backing_enum) + { + case LinkageTypeC::DYNAMIC: + return NAME_DYNAMIC; + case LinkageTypeC::STATIC: + return NAME_STATIC; + case LinkageTypeC::NULLVALUE: + return NULLVALUE_STRING; + default: + Checks::unreachable(VCPKG_LINE_INFO); + } } } |
