| %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"] |
| |
| def grpc_public_headers_no_dir(libs): |
| out = [] |
| for lib in libs: |
| if lib.name in ("grpc", "gpr"): |
| out += lib.get('public_headers', []) |
| out = [f for f in out if f not in textual_headers] |
| out = [hdr.split('/', 2)[2] for hdr in out] |
| return out |
| |
| # Generate the list of platform-specific headers as textual headers so that |
| # they are not built when the module is built but only when they are named by |
| # an #include directive. |
| def grpc_public_textual_headers_no_dir(libs): |
| out = [] |
| for lib in libs: |
| if lib.name in ("grpc", "gpr"): |
| out += lib.get('public_headers', []) |
| out = [f for f in out if f in textual_headers] |
| out = [hdr.split('/', 2)[2] for hdr in out] |
| return out |
| |
| 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(grpc_public_headers_no_dir(libs))} |
| |
| ${textual_header_lines(grpc_public_textual_headers_no_dir(libs))} |
| |
| export * |
| module * { export * } |
| } |
| |