chronoxor / FastBinaryEncoding

Fast Binary Encoding is ultra fast and universal serialization solution for C++, C#, Go, Java, JavaScript, Kotlin, Python, Ruby, Swift
https://chronoxor.github.io/FastBinaryEncoding
MIT License
827 stars 86 forks source link

[VS 2022] Unable to build latest source tree due to incompatibility with latest fmt version #102

Open MasterMann opened 4 weeks ago

MasterMann commented 4 weeks ago

Commit: 3649596eed4127ff7527fab8ccc3c3d0fe2904b9 Visual Studio version: 2022 (17.11.2)

Build does not proceed fully, fbec does not get compiled.

Relevant build log lines:

       ClCompile:
         C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\bin\HostX64\x64\CL.exe /c /
         IE:\Dev\MasterManDev\FastBinaryEncoding\modules\CppCommon\modules\fmt\include /Zi /nologo /W4 /WX /diagnostic
         s:column /O2 /Ob1 /D _MBCS /D WIN32 /D _WINDOWS /D NDEBUG /D WIN32_LEAN_AND_MEAN /D _CRT_SECURE_NO_DEPRECATE
         /D _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS /D _WIN32_WINNT=0x0A00 /D _WIN32_SDK=26100 /D DBGHELP_SUPPORT /D R
         PC_SUPPORT /D USERENV_SUPPORT /D VLD_SUPPORT /D "CMAKE_INTDIR=\"RelWithDebInfo\"" /Gm- /EHsc /MD /GS /fp:prec
         ise /Zc:wchar_t /Zc:forScope /Zc:inline /std:c++latest /Fo"fmt.dir\RelWithDebInfo\\" /Fd"E:\Dev\MasterManDev\
         FastBinaryEncoding\temp\modules\CppCommon\modules\RelWithDebInfo\fmt.pdb" /external:W4 /Gd /TP /wd4100 /wd425
         0 /wd4702 /errorReport:queue  /bigobj /utf-8 /Zc:__cplusplus E:\Dev\MasterManDev\FastBinaryEncoding\modules\C
         ppCommon\modules\fmt\src\format.cc E:\Dev\MasterManDev\FastBinaryEncoding\modules\CppCommon\modules\fmt\src\o
         s.cc

[...]

     8>E:\Dev\MasterManDev\FastBinaryEncoding\modules\CppCommon\modules\fmt\include\fmt\base.h(757,39): error C2220: t
       he following warning is treated as an error [E:\Dev\MasterManDev\FastBinaryEncoding\temp\modules\CppCommon\modu
       les\fmt.vcxproj]
         (compiling source file '../modules/CppCommon/modules/fmt/src/format.cc')

     8>E:\Dev\MasterManDev\FastBinaryEncoding\modules\CppCommon\modules\fmt\include\fmt\base.h(757,39): warning C4267:
        '=': conversion from 'size_t' to 'unsigned long', possible loss of data [E:\Dev\MasterManDev\FastBinaryEncodin
       g\temp\modules\CppCommon\modules\fmt.vcxproj]
         (compiling source file '../modules/CppCommon/modules/fmt/src/format.cc')

Workaround/solution: I used the following version - 10.1.0, by manually downloading the source ZIP and unpacking it to modules/CppCommon/modules/fmt/ (replacing the original files entirely). With that version fbec builds without errors.