From d67e7d27268fc3cc1ec2fed78eb003513f500af0 Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 15 Sep 2025 20:41:55 -0400 Subject: [PATCH] VS: Factor out Visual Studio `Version` enumeration --- Source/CMakeLists.txt | 1 + Source/cmGlobalVisualStudioGenerator.h | 11 ++--------- Source/cmVSVersion.h | 19 +++++++++++++++++++ 3 files changed, 22 insertions(+), 9 deletions(-) create mode 100644 Source/cmVSVersion.h diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index d1e6ad9477..892a7d2e5f 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -975,6 +975,7 @@ if(WIN32) cmVisualStudioWCEPlatformParser.cxx cmVSSetupHelper.cxx cmVSSetupHelper.h + cmVSVersion.h ) # Add a manifest file to executables on Windows to allow for diff --git a/Source/cmGlobalVisualStudioGenerator.h b/Source/cmGlobalVisualStudioGenerator.h index 9a919cbaa3..46d98f7e99 100644 --- a/Source/cmGlobalVisualStudioGenerator.h +++ b/Source/cmGlobalVisualStudioGenerator.h @@ -14,6 +14,7 @@ #include "cmGlobalGenerator.h" #include "cmTargetDepend.h" +#include "cmVSVersion.h" #include "cmValue.h" class cmCustomCommand; @@ -31,15 +32,7 @@ class cmake; class cmGlobalVisualStudioGenerator : public cmGlobalGenerator { public: - /** Known versions of Visual Studio. */ - enum class VSVersion : uint16_t - { - VS14 = 140, - VS15 = 150, - VS16 = 160, - VS17 = 170, - VS18 = 180, - }; + using VSVersion = cm::VS::Version; ~cmGlobalVisualStudioGenerator() override; diff --git a/Source/cmVSVersion.h b/Source/cmVSVersion.h new file mode 100644 index 0000000000..3fe0d2fb72 --- /dev/null +++ b/Source/cmVSVersion.h @@ -0,0 +1,19 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file LICENSE.rst or https://cmake.org/licensing for details. */ +#pragma once + +#include + +namespace cm { +namespace VS { +/** Known versions of Visual Studio. */ +enum class Version : std::uint16_t +{ + VS14 = 140, + VS15 = 150, + VS16 = 160, + VS17 = 170, + VS18 = 180, +}; +} +}