You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As introduced in #2432 and #3134, the MSVC C++20 Module support has been removed completely.
However, based on my recent observation, I think the module is actually compilable at least under VS version 17.3.6 (the version I am currently using), the only thing we need to do is to remove the enable_module function from CMakeLists.txt. MSVC will be able to find the corresponding ifc for fmt itself without extra hints.
I think now the problems fall back to the fact that numeric functions in <cmath> are not necessarily constexpr until C++23 as per the standard. The compilation failed somehow indicating that workarounds like fmt::detail::isnan etc. are not working with MSVC.
Last time we checked module support was broken in MSVC (even workarounds didn't help) but if it works on more recent versions a PR to enable it would be welcome.
I don't think there's an extra pipeline needed. The requirements are
a CMake that handles modules in at least some way. The last time this was the case was early v3.20, all later versions created broken build instructions for the pipeline (unless you use the Ninja generator instead of the default VS generator). CMake 3.25 claims to support modules but without documentation how to use it. This is the info I got from JetBrains last week.
a CMakeLists.txt that enables the build of the test module plus the module test executable, written in a CMake syntax that matches the CMake version used. I wouldn't even bother to do so with CMake versions that don't officially support modules.
a compiler that really can compile the {fmt} module.
As introduced in #2432 and #3134, the MSVC C++20 Module support has been removed completely.
However, based on my recent observation, I think the module is actually compilable at least under VS version 17.3.6 (the version I am currently using), the only thing we need to do is to remove the
enable_module
function fromCMakeLists.txt
. MSVC will be able to find the correspondingifc
forfmt
itself without extra hints.I think now the problems fall back to the fact that numeric functions in
<cmath>
are not necessarilyconstexpr
until C++23 as per the standard. The compilation failed somehow indicating that workarounds likefmt::detail::isnan
etc. are not working with MSVC.@vitaut Do you have any ideas about this?
The text was updated successfully, but these errors were encountered: