From d021eae1cf9806282745935391a5ca282f4b5999 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Wed, 15 Dec 2021 20:10:48 +0300 Subject: support VS 2022 --- .github/workflows/basic.yml | 6 +++--- .github/workflows/boost_toolsets.yml | 10 ++++++++-- .github/workflows/example_toolsets.yml | 6 ++++-- .github/workflows/msvc_versions.yml | 6 +++++- project/toolset.py | 10 ++++++++++ 5 files changed, 30 insertions(+), 8 deletions(-) diff --git a/.github/workflows/basic.yml b/.github/workflows/basic.yml index f7d8fc5..6adf3ac 100644 --- a/.github/workflows/basic.yml +++ b/.github/workflows/basic.yml @@ -21,9 +21,9 @@ jobs: os: strategy: matrix: - os: [ubuntu-18.04, ubuntu-20.04, windows-2016, windows-2019, macos-10.15, macos-11] + os: [ubuntu-18.04, ubuntu-20.04, windows-2016, windows-2019, windows-2022, macos-10.15, macos-11] include: - - boost-version: 1.72.0 + - boost-version: 1.78.0 runs-on: '${{ matrix.os }}' name: 'Image: ${{ matrix.os }}' defaults: @@ -56,7 +56,7 @@ jobs: python-version: [3.6, 3.7, 3.8, 3.9, 3.x] include: - os: ubuntu-latest - - boost-version: 1.72.0 + - boost-version: 1.78.0 runs-on: '${{ matrix.os }}' name: 'Python ${{ matrix.python-version }}' defaults: diff --git a/.github/workflows/boost_toolsets.yml b/.github/workflows/boost_toolsets.yml index ba027c6..d7c6fc4 100644 --- a/.github/workflows/boost_toolsets.yml +++ b/.github/workflows/boost_toolsets.yml @@ -15,10 +15,11 @@ jobs: boost-version: [1.58.0, 1.65.0, 1.72.0] toolset: [auto, clang, clang-cl, gcc, mingw, msvc] cygwin: [0, 1] - os: [ubuntu-latest, windows-2016, windows-2019] + os: [ubuntu-latest, windows-2016, windows-2019, windows-2022] include: # Prettier run names. + - {os: windows-2022, name: Windows 2022} - {os: windows-2019, name: Windows 2019} - {os: windows-2016, name: Windows 2016} - {os: ubuntu-latest, name: Ubuntu} @@ -42,6 +43,10 @@ jobs: # This was fixed for 1.61 in this commit: # https://github.com/boostorg/test/commit/c94ef6982e2ebe77f9376579547c228f0d62e45f. # On Linux/Cygwin, everything should be fine though. + - toolset: clang + boost-version: 1.58.0 + os: windows-2022 + libraries: filesystem program_options regex system - toolset: clang boost-version: 1.58.0 os: windows-2019 @@ -58,7 +63,8 @@ jobs: # Cygwin: no MSVC/clang-cl. - {cygwin: 1, toolset: msvc} - {cygwin: 1, toolset: clang-cl} - # Cygwin is the same on Windows Server 2016 & 2019. + # Cygwin is the same on different Windows versions. + - {os: windows-2019, cygwin: 1} - {os: windows-2016, cygwin: 1} # clang-cl is only supported by Boost.Build since 1.69 (see the # boost_clang_windows.yml workflow). diff --git a/.github/workflows/example_toolsets.yml b/.github/workflows/example_toolsets.yml index a55c7b7..d98cfe0 100644 --- a/.github/workflows/example_toolsets.yml +++ b/.github/workflows/example_toolsets.yml @@ -15,10 +15,11 @@ jobs: example: [simple, static, dynamic] toolset: [auto, clang, clang-cl, gcc, mingw, msvc] cygwin: [0, 1] - os: [ubuntu-latest, windows-2016, windows-2019] + os: [ubuntu-latest, windows-2016, windows-2019, windows-2022] include: # Prettier run names. + - {os: windows-2022, name: Windows 2022} - {os: windows-2019, name: Windows 2019} - {os: windows-2016, name: Windows 2016} - {os: ubuntu-latest, name: Ubuntu} @@ -58,7 +59,8 @@ jobs: # Cygwin: no MSVC/clang-cl. - {cygwin: 1, toolset: msvc} - {cygwin: 1, toolset: clang-cl} - # Cygwin is the same on Windows Server 2016 & 2019. + # Cygwin is the same on different Windows versions. + - {os: windows-2019, cygwin: 1} - {os: windows-2016, cygwin: 1} runs-on: '${{ matrix.os }}' diff --git a/.github/workflows/msvc_versions.yml b/.github/workflows/msvc_versions.yml index 91d49c9..c1b2700 100644 --- a/.github/workflows/msvc_versions.yml +++ b/.github/workflows/msvc_versions.yml @@ -16,21 +16,25 @@ jobs: - msvc140 - msvc141 - msvc142 + - msvc143 - vs2015 - vs2017 - vs2019 + - vs2022 include: # Runner image. - {toolset: msvc140, os: windows-2016} - {toolset: msvc141, os: windows-2016} - {toolset: msvc142, os: windows-2019} + - {toolset: msvc143, os: windows-2022} - {toolset: vs2015, os: windows-2016} - {toolset: vs2017, os: windows-2016} - {toolset: vs2019, os: windows-2019} + - {toolset: vs2022, os: windows-2022} # Boost version. - - boost-version: 1.72.0 + - boost-version: 1.78.0 # Some Boost libraries commonly used by me. - libraries: filesystem program_options regex system test diff --git a/project/toolset.py b/project/toolset.py index 136e6dd..001eefb 100644 --- a/project/toolset.py +++ b/project/toolset.py @@ -49,6 +49,7 @@ class MSVCVersion(Enum): VS2015 = '140' VS2017 = '141' VS2019 = '142' + VS2022 = '143' def __str__(self): return str(self.value) @@ -66,6 +67,8 @@ class MSVCVersion(Enum): return 'Visual Studio 2017' if self is MSVCVersion.VS2019: return 'Visual Studio 2019' + if self is MSVCVersion.VS2022: + return 'Visual Studio 2022' raise NotImplementedError(f'unsupported MSVC version: {self}') @staticmethod @@ -95,6 +98,8 @@ class MSVCVersion(Enum): return VisualStudioVersion.VS2017 if MSVCVersion.VS2019: return VisualStudioVersion.VS2019 + if MSVCVersion.VS2022: + return VisualStudioVersion.VS2022 raise NotImplementedError(f'unsupported MSVC version: {self}') def to_boost_msvc_version(self): @@ -117,6 +122,7 @@ class VisualStudioVersion(Enum): VS2015 = '2015' VS2017 = '2017' VS2019 = '2019' + VS2022 = '2022' def __str__(self): return str(self.value) @@ -134,6 +140,8 @@ class VisualStudioVersion(Enum): return f"Same as '{ToolsetType.MSVC}{MSVCVersion.VS2017}'" if self is VisualStudioVersion.VS2019: return f"Same as '{ToolsetType.MSVC}{MSVCVersion.VS2019}'" + if self is VisualStudioVersion.VS2022: + return f"Same as '{ToolsetType.MSVC}{MSVCVersion.VS2022}'" raise NotImplementedError(f'unsupported Visual Studio version: {self}') @staticmethod @@ -160,6 +168,8 @@ class VisualStudioVersion(Enum): return MSVCVersion.VS2017 if self is VisualStudioVersion.VS2019: return MSVCVersion.VS2019 + if self is VisualStudioVersion.VS2022: + return MSVCVersion.VS2022 raise NotImplementedError(f'unsupported Visual Studio version: {self}') def to_visual_studio_version(self): -- cgit v1.2.3