in src/com/facebook/buck/cli/TargetsCommand.java [369:399]
public boolean apply(BuildRule rule) {
boolean isDependent = true;
if (referencedInputs != null) {
// Indirectly depend on some referenced file.
isDependent = !Collections.disjoint(graph.getOutgoingNodesFor(rule), dependentTargets);
// Any referenced file, only those with the nearest BuildTarget can
// directly depend on that file.
if (!isDependent && basePathOfTargets.contains(rule.getBuildTarget().getBasePath())) {
for (Path input : rule.getInputs()) {
if (referencedInputs.contains(input)) {
isDependent = true;
break;
}
}
}
if (isDependent) {
// Save the rule only when exists referenced file
// and this rule depend on at least one referenced file.
dependentTargets.add(rule);
}
}
if (!matchingBuildRules.isEmpty() &&
!matchingBuildRules.contains(rule.getBuildTarget())) {
return false;
}
return (isDependent && (buildRuleTypes.isEmpty() || buildRuleTypes.contains(rule.getType())));
}