@Override public Iterable<BuildTarget> findDepsForTargetFromConstructorArgs( BuildTarget buildTarget, CellPathResolver cellRoots, Arg constructorArg) { ImmutableSet.Builder<BuildTarget> deps = ImmutableSet.builder(); // Get any parse time deps from the C/C++ platforms. deps.addAll(CxxPlatforms.getParseTimeDeps(cxxPlatforms.getValues())); for (PythonPlatform pythonPlatform : pythonPlatforms.getValues()) { deps.addAll(pythonPlatform.getCxxLibrary().asSet()); } return deps.build(); }
private ImmutableList<BuildRule> getPlatformDeps( BuildRuleParams params, BuildRuleResolver ruleResolver, PythonPlatform pythonPlatform, Arg args) { ImmutableList.Builder<BuildRule> rules = ImmutableList.builder(); // Add declared deps. rules.addAll(params.getDeclaredDeps().get()); // Add platform specific deps. rules.addAll( ruleResolver.getAllRules( Iterables.concat( args.platformDeps .or(PatternMatchedCollection.<ImmutableSortedSet<BuildTarget>>of()) .getMatchingValues(pythonPlatform.getFlavor().toString())))); // Add a dep on the python C/C++ library. rules.add(ruleResolver.getRule(pythonPlatform.getCxxLibrary().get().getBuildTarget())); return rules.build(); }