Debug Component Selection

Diagnose unknown targets, transitive closure, leaked headers and selective test behavior.

AdvancedTutorial

Unknown target

  • Confirm the canonical spelling in the generated catalogue.
  • Set SHARP_RUNTIME_COMPONENTS before add_subdirectory.
  • Do not use the legacy raw SHARP_RUNTIME target 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.