rsocket / rsocket-cpp

C++ implementation of RSocket
http://rsocket.io
Apache License 2.0
253 stars 99 forks source link

rsocket-cpp forces C++14, but depends on folly which requires C++17 #908

Open BillyONeal opened 2 years ago

BillyONeal commented 2 years ago

If installing rsocket with vcpkg, if range-v3 is installed first, folly headers upon which rsocket depends try to drag in those range-v3 headers, which fails:

C:\PROGRA~2\MICROS~3\2019\ENTERP~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe   /TP -DBOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE -DDEBUG -DFMT_LOCALE -DGFLAGS_DLL_DECLARE_FLAG="" -DGFLAGS_DLL_DEFINE_FLAG="" -DGFLAGS_IS_A_DLL=0 -DGLOG_NO_ABBREVIATED_SEVERITIES -DGOOGLE_GLOG_DLL_DECL="" -DNOMINMAX -DWIN32_LEAN_AND_MEAN -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_SCL_SECURE_NO_WARNINGS -D_STL_EXTRA_DISABLED_WARNINGS="4774 4987" -ID:\buildtrees\rsocket\src\3daa230e14-e3a6381b1c.clean -ID:\buildtrees\rsocket\src\3daa230e14-e3a6381b1c.clean\yarpl\.. -ID:\installed\x64-windows-static\include /nologo /DWIN32 /D_WINDOWS /W3 /utf-8 /GR /EHsc /MP  /D_DEBUG /MTd /Z7 /Ob0 /Od /RTC1  /EHs /GF /Zc:referenceBinding /Zc:rvalueCast /Zc:implicitNoexcept /Zc:strictStrings /Zc:threadSafeInit /Zc:throwingNew /permissive- /std:c++17 /wd4191 /wd4291 /wd4309 /wd4310 /wd4366 /wd4587 /wd4592 /wd4628 /wd4723 /wd4724 /wd4868 /wd4996 /wd4068 /wd4091 /wd4146 /wd4800 /wd4018 /wd4365 /wd4388 /wd4389 /wd4100 /wd4459 /wd4505 /wd4701 /wd4702 /wd4061 /wd4127 /wd4200 /wd4201 /wd4296 /wd4316 /wd4324 /wd4355 /wd4371 /wd4435 /wd4514 /wd4548 /wd4571 /wd4574 /wd4582 /wd4583 /wd4619 /wd4623 /wd4625 /wd4626 /wd4643 /wd4647 /wd4668 /wd4706 /wd4710 /wd4711 /wd4714 /wd4820 /wd5026 /wd5027 /wd5031 /wd5045 /we4099 /we4129 /we4566 -std:c++14 /showIncludes /FoCMakeFiles\ReactiveSocket.dir\rsocket\internal\ScheduledSingleSubscription.cpp.obj /FdCMakeFiles\ReactiveSocket.dir\ReactiveSocket.pdb /FS -c D:\buildtrees\rsocket\src\3daa230e14-e3a6381b1c.clean\rsocket\internal\ScheduledSingleSubscription.cpp
cl : Command line warning D9025 : overriding '/std:c++17' with '/std:c++14'
D:\installed\x64-windows-static\include\folly/portability/Windows.h(42): warning C4005: '_CRT_INTERNAL_NONSTDC_NAMES': macro redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt.h(401): note: see previous definition of '_CRT_INTERNAL_NONSTDC_NAMES'
D:\installed\x64-windows-static\include\range/v3/detail/config.hpp(225): fatal error C1189: #error:  range-v3 requires Visual Studio 2019 with the /std:c++17 (or /std:c++latest) and /permissive- options.
ninja: build stopped: subcommand failed.

I fixed this in the vcpkg port by patching CMakeLists.txt to use C++17. https://github.com/microsoft/vcpkg/pull/21978