diff options
Diffstat (limited to 'templates/include/grpc/module.modulemap.template')
-rw-r--r-- | templates/include/grpc/module.modulemap.template | 44 |
1 files changed, 35 insertions, 9 deletions
diff --git a/templates/include/grpc/module.modulemap.template b/templates/include/grpc/module.modulemap.template index 8edc4b56ac..e18bc3de50 100644 --- a/templates/include/grpc/module.modulemap.template +++ b/templates/include/grpc/module.modulemap.template @@ -1,31 +1,57 @@ %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): - excluded_files = ["include/grpc/support/atm_gcc_sync.h", - "include/grpc/support/atm_windows.h", - "include/grpc/support/sync_windows.h", - "include/grpc/support/tls_gcc.h", - "include/grpc/support/tls_msvc.h", - "include/grpc/impl/codegen/atm_gcc_sync.h", - "include/grpc/impl/codegen/atm_windows.h", - "include/grpc/impl/codegen/sync_windows.h"] 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 excluded_files] + 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 * } } |