diff options
| author | Egor Tensin <egor@tensin.name> | 2026-10-09 12:08:53 +0500 |
|---|---|---|
| committer | Egor Tensin <egor@tensin.name> | 2026-10-09 12:08:53 +0500 |
| commit | b6078e1d19235301948766721a7d9f4903b98745 (patch) | |
| tree | 1ccc8ea3988fc23f543e7955a047335ffadee3ba /project/toolset.py | |
| parent | minor imports refactoring (diff) | |
| download | cmake-common-b6078e1d19235301948766721a7d9f4903b98745.tar.gz cmake-common-b6078e1d19235301948766721a7d9f4903b98745.zip | |
ugprade to StrEnum
Diffstat (limited to 'project/toolset.py')
| -rw-r--r-- | project/toolset.py | 27 |
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" |
