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