This code adds an iomgr implementation that's backed by an EventEngine. This uses the EventEngine API alone, and separate work will introduce an EventEngine prototype to plug into it.
See also drfloob#1: @nicolasnoble has a pull request against this branch, implementing the libuv-based EventEngine. One goal here is to implement the iomgr code such that it can be merged independently without affecting normal builds.
This implementation can be built using bazel build --cxxopt='-DGRPC_USE_EVENT_ENGINE' :all
Some shortcuts are being taken to get a working, testable version of the engine. EventEngines are not pluggable, for example.
* Add cpp macro to append wrapped language info to xDS user agent
* Add Python xDS user agent
* fix redefinition error and add macro for wrapped lang version
* clang-format
* Revert xds_api.cc changes
* Use two separate macros
* Yapf
* Regenerate projects
* Include _metadata.py in source distributions
* Attempt to fix quote escaping on Windows
Co-authored-by: Mark D. Roth <roth@google.com>
* cmake: don't install plugins when crosscompiling
Plugins should not be installed for a cross-compilation environment,
because it has to run on a host/build system. If it's installed then
configure stage fails with an error, that imported target references
non-existing file. Even if the file is found, it can't be used on a host.
Signed-off-by: Vyacheslav Yurkov <uvv.mail@gmail.com>
* better way of detecting protoc targets
Co-authored-by: Jan Tattermusch <jtattermusch@google.com>
* Add grpcio-csds pacakge
* Remove unused file
* Fix the proto import path issue
* Update the CSDS package and xds-protos for PY2
* Make tests happy
* Fix Bazel proto dependency
* Add Python2 tests for CSDS
* build aarch64 version of protoc
* remove csharp artifact x86 build logic for unix systems
* build grpc_csharp_ext artifact for linux aarch64
* refactor platform detection
* add generated dllimports for arm64
* fix native library loading on arm64
* include arm64 artifacts in Grpc.Tools
* add Grpc.Tools codegen support for linux aarch64
* grpc.tools cleanup
* cmake: Use major.minor for the SONAME for C++ and C#
This helps to localize the ABI changes between versions and makes
possible to install different versions of GRPC side-by-side on the same
root filesystem. This is still not an ideal solution, but at least the
expectation would be whenever the core version has changed, the SONAME
would be different for any other related artifacts.
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
* doc: Add section about ABI compat to BUILDING.md
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>