/** * @return a map of header locations to input {@link SourcePath} objects formed by parsing the * input {@link SourcePath} objects for the "headers" parameter. */ public static ImmutableMap<Path, SourcePath> parseHeaders( BuildRuleParams params, BuildRuleResolver resolver, CxxPlatform cxxPlatform, CxxConstructorArg args) { ImmutableMap.Builder<String, SourcePath> headers = ImmutableMap.builder(); SourcePathResolver pathResolver = new SourcePathResolver(resolver); putAllHeaders(args.headers.get(), headers, pathResolver, "headers", params.getBuildTarget()); for (SourceList sourceList : args.platformHeaders.get().getMatchingValues(cxxPlatform.getFlavor().toString())) { putAllHeaders(sourceList, headers, pathResolver, "platform_headers", params.getBuildTarget()); } return CxxPreprocessables.resolveHeaderMap( args.headerNamespace.transform(MorePaths.TO_PATH).or(params.getBuildTarget().getBasePath()), headers.build()); }