Skip to content

Update compiler workarounds for MSVC 2022 #124

@NancyLi1013

Description

@NancyLi1013

Hi @mosra,

I'm a member of Microsoft vcpkg team. In our latest internal test, corrade installation failed with following error:

FAILED: src/Corrade/Utility/CMakeFiles/CorradeUtilityObjects.dir/TweakableParser.cpp.obj 
"E:\Visual Studio\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\cl.exe"   /TP -DCORRADE_IS_DEBUG_BUILD -DCorradeUtilityObjects_EXPORTS -DNOMINMAX -DUNICODE -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -IC:\vcpkg_1011\vcpkg\buildtrees\corrade\src\v2020.06-2e11614b58\src -IC:\vcpkg_1011\vcpkg\buildtrees\corrade\x64-windows-dbg\src /nologo /DWIN32 /D_WINDOWS  /utf-8 /GR /EHsc /MP  /D_DEBUG /MDd /Z7 /Ob0 /Od /RTC1  /W4 /wd4251 /wd4244 /wd4267 /wd4351 /wd4373 /wd4510 /wd4610 /wd4512 /wd4661 /wd4702 /wd4706 /wd4800 /wd4910 /showIncludes /Fosrc\Corrade\Utility\CMakeFiles\CorradeUtilityObjects.dir\TweakableParser.cpp.obj /Fdsrc\Corrade\Utility\CMakeFiles\CorradeUtilityObjects.dir\ /FS -c C:\vcpkg_1011\vcpkg\buildtrees\corrade\src\v2020.06-2e11614b58\src\Corrade\Utility\TweakableParser.cpp
C:\vcpkg_1011\vcpkg\buildtrees\corrade\src\v2020.06-2e11614b58\src\Corrade\Utility\TweakableParser.cpp(40): error C2666: '+': 2 overloads have similar conversions
C:\vcpkg_1011\vcpkg\buildtrees\corrade\src\v2020.06-2e11614b58\src\Corrade\Utility\TweakableParser.cpp(40): note: could be 'built-in C++ operator+(bool, int)'
C:\vcpkg_1011\vcpkg\buildtrees\corrade\src\v2020.06-2e11614b58\src\Corrade\Utility\TweakableParser.cpp(40): note: or       'built-in C++ operator+(const T, __int64)'
        with
        [
            T=const char
        ]
C:\vcpkg_1011\vcpkg\buildtrees\corrade\src\v2020.06-2e11614b58\src\Corrade\Utility\TweakableParser.cpp(40): note: while trying to match the argument list '(Corrade::Containers::ArrayView<const char>, int)'
C:\vcpkg_1011\vcpkg\buildtrees\corrade\src\v2020.06-2e11614b58\src\Corrade\Utility\TweakableParser.cpp(40): error C2440: 'return': cannot convert from 'initializer list' to 'std::pair<const char *,int>'
C:\vcpkg_1011\vcpkg\buildtrees\corrade\src\v2020.06-2e11614b58\src\Corrade\Utility\TweakableParser.cpp(40): note: No constructor could take the source type, or constructor overload resolution was ambiguous
C:\vcpkg_1011\vcpkg\buildtrees\corrade\src\v2020.06-2e11614b58\src\Corrade\Utility\TweakableParser.cpp(42): error C2666: '+': 2 overloads have similar conversions
C:\vcpkg_1011\vcpkg\buildtrees\corrade\src\v2020.06-2e11614b58\src\Corrade\Utility\TweakableParser.cpp(42): note: could be 'built-in C++ operator+(bool, int)'
C:\vcpkg_1011\vcpkg\buildtrees\corrade\src\v2020.06-2e11614b58\src\Corrade\Utility\TweakableParser.cpp(42): note: or       'built-in C++ operator+(const T, __int64)'
        with
        [
            T=const char
        ]

After investigation, we found that it was caused by the value of CMAKE_CXX_COMPILER_VERSION. It has become 19.31.30710.95 in interval version of Visual Studio, which is out of range 19.30 in Visual Studio 2019.

Seems corrade needs to support Visual Studio 2022. Could you please help look into and confirm this issue?

Thanks in advance.

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions