Debug Component Selection
Diagnose unknown targets, transitive closure, leaked headers and selective test behavior.
Unknown target
- Confirm the canonical spelling in the generated catalogue.
- Set
SHARP_RUNTIME_COMPONENTSbeforeadd_subdirectory. - Do not use the legacy raw
SHARP_RUNTIMEtarget in a selective configuration.
Header not found
- Identify which physical component owns the header.
- Link that direct component; do not add a module include directory manually.
- If a public header needs another component’s header, the owning module likely needs a PUBLIC edge.
Private header unexpectedly visible
Run the negative consumer fixtures and the module boundary validator. Do not “fix” the consumer by adding broad vendor or module include roots.
Unexpected test set
Selective testing builds only the requested component’s test executable plus declared production test dependencies. Requesting an alias delegates to its physical component; requesting All adds integration tests.