aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/project/ci/appveyor/generator.py
diff options
context:
space:
mode:
Diffstat (limited to 'project/ci/appveyor/generator.py')
-rw-r--r--project/ci/appveyor/generator.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/project/ci/appveyor/generator.py b/project/ci/appveyor/generator.py
new file mode 100644
index 0000000..dc1fa13
--- /dev/null
+++ b/project/ci/appveyor/generator.py
@@ -0,0 +1,51 @@
+# Copyright (c) 2020 Egor Tensin <Egor.Tensin@gmail.com>
+# This file is part of the "cmake-common" project.
+# For details, see https://github.com/egor-tensin/cmake-common.
+# Distributed under the MIT License.
+
+from enum import Enum
+
+from project.utils import env
+
+
+class Image(Enum):
+ VS_2013 = 'Visual Studio 2013'
+ VS_2015 = 'Visual Studio 2015'
+ VS_2017 = 'Visual Studio 2017'
+ VS_2019 = 'Visual Studio 2019'
+
+ def __str__(self):
+ return self.value
+
+ @staticmethod
+ def parse(s):
+ try:
+ return Image(s)
+ except ValueError as e:
+ raise ValueError(f'unsupported AppVeyor image: {s}') from e
+
+ @staticmethod
+ def get():
+ return Image.parse(env('APPVEYOR_BUILD_WORKER_IMAGE'))
+
+
+class Generator(Enum):
+ VS_2013 = 'Visual Studio 12 2013'
+ VS_2015 = 'Visual Studio 14 2015'
+ VS_2017 = 'Visual Studio 15 2017'
+ VS_2019 = 'Visual Studio 16 2019'
+
+ def __str__(self):
+ return self.value
+
+ @staticmethod
+ def from_image(image):
+ if image is Image.VS_2013:
+ return Generator.VS_2013
+ if image is Image.VS_2015:
+ return Generator.VS_2015
+ if image is Image.VS_2017:
+ return Generator.VS_2017
+ if image is Image.VS_2019:
+ return Generator.VS_2019
+ raise RuntimeError(f"don't know which generator to use for image: {image}")