%YAML 1.2 --- | <% # TODO (mxyan): Make this list from build.yaml textual_headers = {"include/grpc/support/atm_gcc_atomic.h", "include/grpc/support/atm_gcc_sync.h", "include/grpc/support/atm_windows.h", "include/grpc/support/sync_custom.h", "include/grpc/support/sync_posix.h", "include/grpc/support/sync_windows.h", "include/grpc/support/tls_gcc.h", "include/grpc/support/tls_msvc.h", "include/grpc/support/tls_pthread.h", "include/grpc/impl/codegen/atm_gcc_atomic.h", "include/grpc/impl/codegen/atm_gcc_sync.h", "include/grpc/impl/codegen/atm_windows.h", "include/grpc/impl/codegen/sync_custom.h", "include/grpc/impl/codegen/sync_posix.h", "include/grpc/impl/codegen/sync_windows.h"} grpc_public_headers = { file for lib in libs for file in lib.get('public_headers', []) if lib.name in ("grpc", "gpr") } event_engine_files = { file for file in grpc_public_headers if 'event_engine' in file } def un_dir(files): return {f.split ('/', 2)[2] for f in files} def header_lines(files): return ('\n ').join('header "%s"' % f for f in files) def textual_header_lines(files): return ('\n ').join('textual header "%s"' % f for f in files) %> framework module grpc { umbrella header "grpc.h" ${header_lines( sorted(un_dir(grpc_public_headers - event_engine_files - textual_headers)))} ${textual_header_lines( sorted(un_dir(grpc_public_headers.intersection(textual_headers) - event_engine_files)))} export * module * { export * } }