@Value.Lazy
 protected ImmutableList<BuildRule> getPreprocessDeps() {
   ImmutableList.Builder<BuildRule> builder = ImmutableList.builder();
   for (CxxPreprocessorInput input : getCxxPreprocessorInput()) {
     // Depend on the rules that generate the sources and headers we're compiling.
     builder.addAll(
         getPathResolver()
             .filterBuildRuleInputs(
                 ImmutableList.<SourcePath>builder()
                     .addAll(input.getIncludes().getNameToPathMap().values())
                     .build()));
     // Also add in extra deps from the preprocessor input, such as the symlink tree rules.
     builder.addAll(
         BuildRules.toBuildRulesFor(
             getParams().getBuildTarget(), getResolver(), input.getRules()));
   }
   return builder.build();
 }