diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2017-02-09 18:26:16 -0800 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2017-02-10 14:00:11 -0800 |
| commit | 47a4bff2d11881f95bd0eb0b659360ff1b7465c0 (patch) | |
| tree | 6f0bd80f1ccd881822c397d5922a8de2168a7762 | |
| parent | a0696395afddf492968a76ac38b1c8f14aba0e1f (diff) | |
| download | vcpkg-47a4bff2d11881f95bd0eb0b659360ff1b7465c0.tar.gz vcpkg-47a4bff2d11881f95bd0eb0b659360ff1b7465c0.zip | |
Add vcpkg_Enums
| -rw-r--r-- | toolsrc/include/vcpkg_Enums.h | 11 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg_Enums.cpp | 21 | ||||
| -rw-r--r-- | toolsrc/vcpkglib/vcpkglib.vcxproj | 2 | ||||
| -rw-r--r-- | toolsrc/vcpkglib/vcpkglib.vcxproj.filters | 6 |
4 files changed, 40 insertions, 0 deletions
diff --git a/toolsrc/include/vcpkg_Enums.h b/toolsrc/include/vcpkg_Enums.h new file mode 100644 index 000000000..5c4dc8b06 --- /dev/null +++ b/toolsrc/include/vcpkg_Enums.h @@ -0,0 +1,11 @@ +#pragma once +#include <string> + +namespace vcpkg::Enums +{ + std::string nullvalue_toString(const std::string& enum_name); + + __declspec(noreturn) void nullvalue_used(const std::string& enum_name); + + __declspec(noreturn) void unreachable(const std::string& enum_name); +} diff --git a/toolsrc/src/vcpkg_Enums.cpp b/toolsrc/src/vcpkg_Enums.cpp new file mode 100644 index 000000000..5e698659d --- /dev/null +++ b/toolsrc/src/vcpkg_Enums.cpp @@ -0,0 +1,21 @@ +#include "pch.h" +#include "vcpkg_Enums.h" +#include "vcpkg_Checks.h" + +namespace vcpkg::Enums +{ + std::string nullvalue_toString(const std::string& enum_name) + { + return Strings::format("%s_NULLVALUE", enum_name); + } + + void nullvalue_used(const std::string& enum_name) + { + Checks::exit_with_message("NULLVALUE of enum %s was used", enum_name); + } + + void unreachable(const std::string& enum_name) + { + Checks::exit_with_message("Unreachable code for enum, %s", enum_name); + } +} diff --git a/toolsrc/vcpkglib/vcpkglib.vcxproj b/toolsrc/vcpkglib/vcpkglib.vcxproj index ad15ea7ea..537b2fb0f 100644 --- a/toolsrc/vcpkglib/vcpkglib.vcxproj +++ b/toolsrc/vcpkglib/vcpkglib.vcxproj @@ -165,6 +165,7 @@ <ClInclude Include="..\include\vcpkg_cmd_arguments.h" /> <ClInclude Include="..\include\vcpkg_Commands.h" /> <ClInclude Include="..\include\vcpkg_Dependencies.h" /> + <ClInclude Include="..\include\vcpkg_Enums.h" /> <ClInclude Include="..\include\vcpkg_Environment.h" /> <ClInclude Include="..\include\vcpkg_Files.h" /> <ClInclude Include="..\include\vcpkg_Graphs.h" /> @@ -227,6 +228,7 @@ <ClCompile Include="..\src\vcpkg_Checks.cpp" /> <ClCompile Include="..\src\vcpkg_cmd_arguments.cpp" /> <ClCompile Include="..\src\vcpkg_Dependencies.cpp" /> + <ClCompile Include="..\src\vcpkg_Enums.cpp" /> <ClCompile Include="..\src\vcpkg_Environment.cpp" /> <ClCompile Include="..\src\vcpkg_Files.cpp" /> <ClCompile Include="..\src\vcpkg_Input.cpp" /> diff --git a/toolsrc/vcpkglib/vcpkglib.vcxproj.filters b/toolsrc/vcpkglib/vcpkglib.vcxproj.filters index 99cbf7037..519331b49 100644 --- a/toolsrc/vcpkglib/vcpkglib.vcxproj.filters +++ b/toolsrc/vcpkglib/vcpkglib.vcxproj.filters @@ -168,6 +168,9 @@ <ClCompile Include="..\src\PostBuildLint_BuildType.cpp"> <Filter>Source Files</Filter> </ClCompile> + <ClCompile Include="..\src\vcpkg_Enums.cpp"> + <Filter>Source Files</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="..\include\package_spec.h"> @@ -290,5 +293,8 @@ <ClInclude Include="..\include\PostBuildLint_BuildType.h"> <Filter>Header Files</Filter> </ClInclude> + <ClInclude Include="..\include\vcpkg_Enums.h"> + <Filter>Header Files</Filter> + </ClInclude> </ItemGroup> </Project>
\ No newline at end of file |
