xref: /aosp_15_r20/external/grpc-grpc/include/grpc/impl/codegen/README.md (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard Worker# Welcome to `include/grpc/impl/codegen`
2*cc02d7e2SAndroid Build Coastguard Worker
3*cc02d7e2SAndroid Build Coastguard Worker## Why is this directory here?
4*cc02d7e2SAndroid Build Coastguard Worker
5*cc02d7e2SAndroid Build Coastguard WorkerThis directory exists so that generated C++ code can include selected files upon
6*cc02d7e2SAndroid Build Coastguard Workerwhich it depends without having to depend on the entire gRPC C++ library. This
7*cc02d7e2SAndroid Build Coastguard Workerdirectory thus exists to support `include/grpcpp/impl/codegen`. This constraint
8*cc02d7e2SAndroid Build Coastguard Workeris particularly relevant for users of bazel, particularly if they use the
9*cc02d7e2SAndroid Build Coastguard Workermulti-lingual `proto_library` target type. Generated code that uses this target
10*cc02d7e2SAndroid Build Coastguard Workeronly depends on the gRPC C++ targets associated with these header files, not the
11*cc02d7e2SAndroid Build Coastguard Workerentire gRPC C++ codebase since that would make the build time of these types of
12*cc02d7e2SAndroid Build Coastguard Workertargets excessively large (particularly when they are not even C++ specific).
13*cc02d7e2SAndroid Build Coastguard Worker
14*cc02d7e2SAndroid Build Coastguard Worker## What should user code do?
15*cc02d7e2SAndroid Build Coastguard Worker
16*cc02d7e2SAndroid Build Coastguard WorkerUser code should *not* include anything from this directory. Only generated code
17*cc02d7e2SAndroid Build Coastguard Workerand gRPC library code should include contents from this directory. C++ user code
18*cc02d7e2SAndroid Build Coastguard Workershould instead include contents from the main `grpcpp` directory or its
19*cc02d7e2SAndroid Build Coastguard Workeraccessible subcomponents like `grpcpp/support`. It is possible that we may
20*cc02d7e2SAndroid Build Coastguard Workerremove this directory altogether if the motivations for its existence are no
21*cc02d7e2SAndroid Build Coastguard Workerlonger strong enough (e.g., if the gRPC C++ library no longer has a need for an
22*cc02d7e2SAndroid Build Coastguard Worker`impl/codegen` directory of its own).
23