xref: /aosp_15_r20/external/grpc-grpc/templates/include/grpc/module.modulemap.template (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1%YAML 1.2
2--- |
3  <%
4  # TODO (mxyan): Make this list from build.yaml
5  textual_headers = {"include/grpc/support/atm_gcc_atomic.h",
6                     "include/grpc/support/atm_gcc_sync.h",
7                     "include/grpc/support/atm_windows.h",
8                     "include/grpc/support/sync_custom.h",
9                     "include/grpc/support/sync_posix.h",
10                     "include/grpc/support/sync_windows.h",
11                     "include/grpc/support/tls_gcc.h",
12                     "include/grpc/support/tls_msvc.h",
13                     "include/grpc/support/tls_pthread.h",
14                     "include/grpc/impl/codegen/atm_gcc_atomic.h",
15                     "include/grpc/impl/codegen/atm_gcc_sync.h",
16                     "include/grpc/impl/codegen/atm_windows.h",
17                     "include/grpc/impl/codegen/sync_custom.h",
18                     "include/grpc/impl/codegen/sync_posix.h",
19                     "include/grpc/impl/codegen/sync_windows.h"}
20
21  grpc_public_headers = {
22      file for lib in libs for file in lib.get('public_headers', [])
23      if lib.name in ("grpc", "gpr")
24  }
25
26  event_engine_files = {
27      file for file in grpc_public_headers if 'event_engine' in file
28  }
29
30  def un_dir(files):
31    return {f.split ('/', 2)[2] for f in files}
32
33  def header_lines(files):
34    return ('\n  ').join('header "%s"' % f for f in files)
35
36  def textual_header_lines(files):
37    return ('\n  ').join('textual header "%s"' % f for f in files)
38  %>
39  framework module grpc {
40    umbrella header "grpc.h"
41
42  ${header_lines(
43      sorted(un_dir(grpc_public_headers - event_engine_files -
44                    textual_headers)))}
45
46  ${textual_header_lines(
47      sorted(un_dir(grpc_public_headers.intersection(textual_headers) -
48                    event_engine_files)))}
49
50    export *
51    module * { export * }
52  }
53
54