First of all, thanks for deciding to contribute to gRPC!
To answer your questions:
- When it comes to building on linux, using the Makefile is currently our primary way to build gRPC. cmake support is not experimental, but it has more importance on other platforms (like Windows), where you can't really use Makefile to build (on linux, cmake can be useful if you're crosscompiling for a different plaform)
- It is possible that our Makefile and CMakeLists.txt are not fully in sync in terms of compilations options - like the problem you found. Most of the times, this is not intended and the builds should be as similar as is reasonably possible (as these are basically just two ways of building the same thing). Because Makefile
is currently our primary way of building on Linux, usually its compilation options for linux will be a bit more fine-tuned. In this case, you're welcome to create a PR that adds the -fno-exceptions to our cmake linux build as well.
- In the future, bazel will become the primary way to build gRPC (at least that's the plan), but we're not quite there yet.
- we know there are some flaws to our current cmake solution (see issue tracker) and we are working on fixing them, but most of them are windows related - as cmake is the primary way of building gRPC on Windows.
Hope this helps,
Jan