-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FIX: Set C++ standard to 17 #6509
Conversation
std::string_view is from C++17
Unfortunately, we can't upgrade to C++17 yet. Not all of our code builds with it on all platforms. |
That's the same now isn't it? https://github.com/mumble-voip/mumble/blob/master/docs/dev/build-instructions/build_linux.md makes no mention of needing to tweak C++ version to build Mumble. |
You don't need to adapt anaything as the project is set up to compile using the C++14 standard. |
The problem is exactly that GCC (g++) doesn't let me build the project using C++14. Newer protobuf library requires Here: compile_log.txt I suggest we vendor protobuf in such a case, since Google does not care about other people using their code. |
The problem is known but vendoring Protobuf is not really an option since we want to upgrade to C++17 anyway (once possible). Until then, specific environments require manual C++ standard overwrite |
Can you document this in the Linux build .md file somehow? |
I thought about this, and this issue is caused by abesil disrespecting C++ standard set. abesil is used by protobuf. Are you sure you don't want to use another protobuf library? |
Are you aware of a valid alternative? |
Compared to other languages, I "never" used C++. Protocol-wise, there is FlatBuffers, capnproto, protobuf-c. Still, it is easier to specify a known version of protobuf (C++ library) and abesil in CMake and fetch from network when needed. |
There is no way for us to switch away from Protobuf. That would absolutely wreck backwards compatibility. Also, it is working rather well. |
Understood. |
Using FetchContent might be an idea but distributors will likely not agree with this route at all - they tend to want to use the libraries packaged with a given OS. |
I had to set this to make it build, otherwise g++ complains about
std::string_view
being used but not being part of C++14.Checks