aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/project/toolset.py
diff options
context:
space:
mode:
authorEgor Tensin <egor@tensin.name>2026-10-09 12:08:53 +0500
committerEgor Tensin <egor@tensin.name>2026-10-09 12:08:53 +0500
commitb6078e1d19235301948766721a7d9f4903b98745 (patch)
tree1ccc8ea3988fc23f543e7955a047335ffadee3ba /project/toolset.py
parentminor imports refactoring (diff)
downloadcmake-common-b6078e1d19235301948766721a7d9f4903b98745.tar.gz
cmake-common-b6078e1d19235301948766721a7d9f4903b98745.zip
ugprade to StrEnum
Diffstat (limited to 'project/toolset.py')
-rw-r--r--project/toolset.py27
1 files changed, 9 insertions, 18 deletions
diff --git a/project/toolset.py b/project/toolset.py
index 8b6ea07..f93881f 100644
--- a/project/toolset.py
+++ b/project/toolset.py
@@ -25,7 +25,7 @@ import abc
import argparse
from contextlib import contextmanager
from decimal import Decimal
-from enum import Enum
+from enum import auto, StrEnum
import logging
import os.path
import shutil
@@ -36,7 +36,7 @@ from project.platform import Platform
from project import utils
-class MSVCVersion(Enum):
+class MSVCVersion(StrEnum):
# It's the MSVC "toolset" version, or whatever.
# Source: https://cmake.org/cmake/help/latest/variable/MSVC_TOOLSET_VERSION.html
VS2010 = "100"
@@ -49,9 +49,6 @@ class MSVCVersion(Enum):
VS2026 = "145"
# ^^^ Update the mappings below.
- def __str__(self):
- return str(self.value)
-
def help(self):
if self in _msvc_to_vs_version:
return f"Visual Studio {_msvc_to_vs_version[self]}"
@@ -91,7 +88,7 @@ class MSVCVersion(Enum):
return f"v{self}"
-class VisualStudioVersion(Enum):
+class VisualStudioVersion(StrEnum):
VS2010 = "2010"
VS2012 = "2012"
VS2013 = "2013"
@@ -102,9 +99,6 @@ class VisualStudioVersion(Enum):
VS2026 = "2026"
# ^^^ Update the mappings below.
- def __str__(self):
- return str(self.value)
-
def help(self):
if self in _vs_to_msvc_version:
return f"Same as '{ToolsetType.MSVC}{_vs_to_msvc_version[self]}'"
@@ -145,18 +139,15 @@ _msvc_to_vs_version = {
_vs_to_msvc_version = {v: k for k, v in _msvc_to_vs_version.items()}
-class ToolsetType(Enum):
- AUTO = "auto"
- MSVC = "msvc"
+class ToolsetType(StrEnum):
+ AUTO = auto()
+ MSVC = auto()
VISUAL_STUDIO = "vs"
- GCC = "gcc"
- MINGW = "mingw"
- CLANG = "clang"
+ GCC = auto()
+ MINGW = auto()
+ CLANG = auto()
CLANG_CL = "clang-cl"
- def __str__(self):
- return str(self.value)
-
def help(self):
if self is ToolsetType.AUTO:
return "Means 'gcc' on Linux and 'msvc' on Windows"