Skip to content

windows-rdl gaps - header namespace orchestration #4300

@kennykerr

Description

@kennykerr

Gap 4 — Namespace manifest and orchestration tool
Why it matters: Win32 APIs span hundreds of SDK headers mapped to ~100 namespaces (Windows.Win32.Foundation, Windows.Win32.System.Com, Windows.Win32.UI.WindowsAndMessaging, etc.). The win32metadata project maintains a set of "partition" .h files that #include the relevant SDK headers for each namespace.

What to add:

A manifest format (YAML or TOML) that describes each namespace and the list of SDK headers (or a single umbrella header) it comes from, plus the library (DLL name) for functions, and any --filter suffixes to limit output to the target headers.
A new tool_win32 crate (or extend an existing tool) that reads the manifest, spawns one Clang::write call per namespace entry to produce per-namespace .rdl files, then drives Reader::write to compile each to a per-namespace .winmd, and finally calls tool_merge to combine all into Windows.Win32.winmd.
A previously compiled Windows.Win32.winmd (or the existing win32metadata file) can be passed as --reference to each Clang::write invocation so cross-namespace type references resolve correctly (which the existing ref_map mechanism already supports).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions