HAS_CONFIG is semantically CAN_BUILD_IF_NEEDED, right? A different naming/detection mechanism is needed imo to avoid confusion