diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java | 83 |
1 files changed, 40 insertions, 43 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java index 8b43ac1dae..9ff24cf011 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java @@ -182,7 +182,7 @@ public class CppCompileAction extends AbstractAction protected final boolean needsIncludeValidation; private final IncludeProcessing includeProcessing; - private final CcCompilationContextInfo ccCompilationContextInfo; + private final CcCompilationContext ccCompilationContext; private final Iterable<IncludeScannable> lipoScannables; private final ImmutableList<Artifact> builtinIncludeFiles; // A list of files to include scan that are not source files, pcm files, lipo scannables, or @@ -246,7 +246,7 @@ public class CppCompileAction extends AbstractAction * @param dwoFile the .dwo output file where debug information is stored for Fission builds (null * if Fission mode is disabled) * @param optionalSourceFile an additional optional source file (null if unneeded) - * @param ccCompilationContextInfo the {@code CcCompilationContextInfo} + * @param ccCompilationContext the {@code CcCompilationContext} * @param coptsFilter regular expression to remove options from {@code copts} * @param lipoScannables List of artifacts to include-scan when this action is a lipo action * @param additionalIncludeScanningRoots list of additional artifacts to include-scan @@ -278,7 +278,7 @@ public class CppCompileAction extends AbstractAction @Nullable Artifact ltoIndexingFile, Artifact optionalSourceFile, ImmutableMap<String, String> localShellEnvironment, - CcCompilationContextInfo ccCompilationContextInfo, + CcCompilationContext ccCompilationContext, CoptsFilter coptsFilter, Iterable<IncludeScannable> lipoScannables, ImmutableList<Artifact> additionalIncludeScanningRoots, @@ -315,7 +315,7 @@ public class CppCompileAction extends AbstractAction usePic, useHeaderModules, isStrictSystemIncludes, - ccCompilationContextInfo, + ccCompilationContext, lipoScannables, builtinIncludeFiles, ImmutableList.copyOf(additionalIncludeScanningRoots), @@ -357,7 +357,7 @@ public class CppCompileAction extends AbstractAction boolean usePic, boolean useHeaderModules, boolean isStrictSystemIncludes, - CcCompilationContextInfo ccCompilationContextInfo, + CcCompilationContext ccCompilationContext, Iterable<IncludeScannable> lipoScannables, ImmutableList<Artifact> builtinIncludeFiles, ImmutableList<Artifact> additionalIncludeScanningRoots, @@ -389,7 +389,7 @@ public class CppCompileAction extends AbstractAction this.usePic = usePic; this.useHeaderModules = useHeaderModules; this.isStrictSystemIncludes = isStrictSystemIncludes; - this.ccCompilationContextInfo = ccCompilationContextInfo; + this.ccCompilationContext = ccCompilationContext; this.lipoScannables = lipoScannables; this.builtinIncludeFiles = builtinIncludeFiles; this.additionalIncludeScanningRoots = additionalIncludeScanningRoots; @@ -501,9 +501,8 @@ public class CppCompileAction extends AbstractAction // Here, we cannot really know what the top-level modules are, so we just mark all // transitive modules as "top level". topLevelModules = - Sets.newLinkedHashSet( - ccCompilationContextInfo.getTransitiveModules(usePic).toCollection()); - result.addTransitive(ccCompilationContextInfo.getTransitiveModules(usePic)); + Sets.newLinkedHashSet(ccCompilationContext.getTransitiveModules(usePic).toCollection()); + result.addTransitive(ccCompilationContext.getTransitiveModules(usePic)); } result.addTransitive(prunableInputs); return result.build(); @@ -526,8 +525,8 @@ public class CppCompileAction extends AbstractAction } else { usedModules = Sets.newLinkedHashSet(); topLevelModules = null; - for (CcCompilationContextInfo.TransitiveModuleHeaders usedModule : - ccCompilationContextInfo.getUsedModules(usePic, initialResultSet)) { + for (CcCompilationContext.TransitiveModuleHeaders usedModule : + ccCompilationContext.getUsedModules(usePic, initialResultSet)) { usedModules.add(usedModule.getModule()); } initialResultSet.addAll(usedModules); @@ -619,12 +618,12 @@ public class CppCompileAction extends AbstractAction public Map<Artifact, Artifact> getLegalGeneratedScannerFileMap() { Map<Artifact, Artifact> legalOuts = new HashMap<>(); - for (Artifact a : ccCompilationContextInfo.getDeclaredIncludeSrcs()) { + for (Artifact a : ccCompilationContext.getDeclaredIncludeSrcs()) { if (!a.isSourceArtifact()) { legalOuts.put(a, null); } } - for (PregreppedHeader pregreppedSrcs : ccCompilationContextInfo.getPregreppedHeaders()) { + for (PregreppedHeader pregreppedSrcs : ccCompilationContext.getPregreppedHeaders()) { Artifact hdr = pregreppedSrcs.originalHeader(); Preconditions.checkState(!hdr.isSourceArtifact(), hdr); legalOuts.put(hdr, pregreppedSrcs.greppedHeader()); @@ -647,19 +646,19 @@ public class CppCompileAction extends AbstractAction } @VisibleForTesting - public CcCompilationContextInfo getCcCompilationContextInfo() { - return ccCompilationContextInfo; + public CcCompilationContext getCcCompilationContext() { + return ccCompilationContext; } @Override public List<PathFragment> getQuoteIncludeDirs() { - return ccCompilationContextInfo.getQuoteIncludeDirs(); + return ccCompilationContext.getQuoteIncludeDirs(); } @Override public List<PathFragment> getIncludeDirs() { ImmutableList.Builder<PathFragment> result = ImmutableList.builder(); - result.addAll(ccCompilationContextInfo.getIncludeDirs()); + result.addAll(ccCompilationContext.getIncludeDirs()); for (String opt : compileCommandLine.getCopts()) { if (opt.startsWith("-I") && opt.length() > 2) { // We insist on the combined form "-Idir". @@ -676,7 +675,7 @@ public class CppCompileAction extends AbstractAction // system_includes attribute in cc_toolchain); note that that would disallow users from // specifying system include paths via the copts attribute. // Currently, this works together with the include_paths features because getCommandLine() will - // get the system include paths from the {@code CcCompilationContextInfo} instead. + // get the system include paths from the {@code CcCompilationContext} instead. ImmutableList.Builder<PathFragment> result = ImmutableList.builder(); List<String> compilerOptions = getCompilerOptions(); for (int i = 0; i < compilerOptions.size(); i++) { @@ -711,7 +710,7 @@ public class CppCompileAction extends AbstractAction @Override public Artifact getMainIncludeScannerSource() { return getSourceFile().isFileType(CppFileTypes.CPP_MODULE_MAP) - ? Iterables.getFirst(ccCompilationContextInfo.getHeaderModuleSrcs(), null) + ? Iterables.getFirst(ccCompilationContext.getHeaderModuleSrcs(), null) : getSourceFile(); } @@ -723,7 +722,7 @@ public class CppCompileAction extends AbstractAction // module map, and we need to include-scan all headers that are referenced in the module map. // We need to do include scanning as long as we want to support building code bases that are // not fully strict layering clean. - builder.addAll(ccCompilationContextInfo.getHeaderModuleSrcs()); + builder.addAll(ccCompilationContext.getHeaderModuleSrcs()); } else { builder.add(getSourceFile()); builder.addAll(additionalIncludeScanningRoots); @@ -742,7 +741,7 @@ public class CppCompileAction extends AbstractAction */ @VisibleForTesting public ImmutableCollection<String> getDefines() { - return ccCompilationContextInfo.getDefines(); + return ccCompilationContext.getDefines(); } @Override @@ -784,7 +783,7 @@ public class CppCompileAction extends AbstractAction } else { info.addSourcesAndHeaders(getSourceFile().getExecPathString()); info.addAllSourcesAndHeaders( - Artifact.toExecPaths(ccCompilationContextInfo.getDeclaredIncludeSrcs())); + Artifact.toExecPaths(ccCompilationContext.getDeclaredIncludeSrcs())); } for (Map.Entry<String, String> envVariable : getEnvironment().entrySet()) { info.addVariable( @@ -858,14 +857,14 @@ public class CppCompileAction extends AbstractAction // Copy the sets to hash sets for fast contains checking. // Avoid immutable sets here to limit memory churn. Set<PathFragment> declaredIncludeDirs = - Sets.newHashSet(ccCompilationContextInfo.getDeclaredIncludeDirs()); + Sets.newHashSet(ccCompilationContext.getDeclaredIncludeDirs()); Set<PathFragment> warnIncludeDirs = - Sets.newHashSet(ccCompilationContextInfo.getDeclaredIncludeWarnDirs()); + Sets.newHashSet(ccCompilationContext.getDeclaredIncludeWarnDirs()); Set<Artifact> declaredIncludeSrcs = Sets.newHashSet(getDeclaredIncludeSrcs()); Set<Artifact> transitiveModules = - Sets.newHashSet(ccCompilationContextInfo.getTransitiveModules(usePic)); + Sets.newHashSet(ccCompilationContext.getTransitiveModules(usePic)); for (Artifact input : inputsForValidation) { - if (ccCompilationContextInfo.getTransitiveCompilationPrerequisites().contains(input) + if (ccCompilationContext.getTransitiveCompilationPrerequisites().contains(input) || transitiveModules.contains(input) || allowedIncludes.contains(input)) { continue; // ignore our fixed source in mandatoryInput: we just want includes @@ -896,21 +895,20 @@ public class CppCompileAction extends AbstractAction System.err.println("INFO: Include(s) were OK for '" + getSourceFile() + "', declared srcs:"); } - for (Artifact a : ccCompilationContextInfo.getDeclaredIncludeSrcs()) { + for (Artifact a : ccCompilationContext.getDeclaredIncludeSrcs()) { System.err.println(" '" + a.toDetailString() + "'"); } System.err.println(" or under declared dirs:"); - for (PathFragment f : - Sets.newTreeSet(ccCompilationContextInfo.getDeclaredIncludeDirs())) { + for (PathFragment f : Sets.newTreeSet(ccCompilationContext.getDeclaredIncludeDirs())) { System.err.println(" '" + f + "'"); } System.err.println(" or under declared warn dirs:"); for (PathFragment f : - Sets.newTreeSet(ccCompilationContextInfo.getDeclaredIncludeWarnDirs())) { + Sets.newTreeSet(ccCompilationContext.getDeclaredIncludeWarnDirs())) { System.err.println(" '" + f + "'"); } System.err.println(" with prefixes:"); - for (PathFragment dirpath : ccCompilationContextInfo.getQuoteIncludeDirs()) { + for (PathFragment dirpath : ccCompilationContext.getQuoteIncludeDirs()) { System.err.println(" '" + dirpath + "'"); } } @@ -929,7 +927,7 @@ public class CppCompileAction extends AbstractAction Iterable<PathFragment> getValidationIgnoredDirs() { List<PathFragment> cxxSystemIncludeDirs = getBuiltInIncludeDirectories(); - return Iterables.concat(cxxSystemIncludeDirs, ccCompilationContextInfo.getSystemIncludeDirs()); + return Iterables.concat(cxxSystemIncludeDirs, ccCompilationContext.getSystemIncludeDirs()); } /** @@ -1043,8 +1041,8 @@ public class CppCompileAction extends AbstractAction addNonSources(result, mandatoryInputs); addNonSources(result, prunableInputs); addNonSources(result, getDeclaredIncludeSrcs()); - addNonSources(result, ccCompilationContextInfo.getTransitiveCompilationPrerequisites()); - addNonSources(result, ccCompilationContextInfo.getTransitiveModules(usePic)); + addNonSources(result, ccCompilationContext.getTransitiveCompilationPrerequisites()); + addNonSources(result, ccCompilationContext.getTransitiveModules(usePic)); Artifact artifact = getSourceFile(); if (!artifact.isSourceArtifact()) { result.add(artifact); @@ -1070,7 +1068,7 @@ public class CppCompileAction extends AbstractAction * listed in {@code declaredIncludeSrcs}). */ public NestedSet<PathFragment> getDeclaredIncludeDirs() { - return ccCompilationContextInfo.getDeclaredIncludeDirs(); + return ccCompilationContext.getDeclaredIncludeDirs(); } /** @@ -1078,7 +1076,7 @@ public class CppCompileAction extends AbstractAction * not specifically listed in {@code declaredIncludeSrcs}). */ public NestedSet<PathFragment> getDeclaredIncludeWarnDirs() { - return ccCompilationContextInfo.getDeclaredIncludeWarnDirs(); + return ccCompilationContext.getDeclaredIncludeWarnDirs(); } /** Return explicitly listed header files. */ @@ -1086,13 +1084,13 @@ public class CppCompileAction extends AbstractAction public NestedSet<Artifact> getDeclaredIncludeSrcs() { if (lipoScannables != null && lipoScannables.iterator().hasNext()) { NestedSetBuilder<Artifact> srcs = NestedSetBuilder.stableOrder(); - srcs.addTransitive(ccCompilationContextInfo.getDeclaredIncludeSrcs()); + srcs.addTransitive(ccCompilationContext.getDeclaredIncludeSrcs()); for (IncludeScannable lipoScannable : lipoScannables) { srcs.addTransitive(lipoScannable.getDeclaredIncludeSrcs()); } return srcs.build(); } - return ccCompilationContextInfo.getDeclaredIncludeSrcs(); + return ccCompilationContext.getDeclaredIncludeSrcs(); } /** @@ -1127,10 +1125,9 @@ public class CppCompileAction extends AbstractAction * that affect whether validateIncludes() will report an error or warning * have changed, otherwise we might miss some errors. */ - fp.addPaths(ccCompilationContextInfo.getDeclaredIncludeDirs()); - fp.addPaths(ccCompilationContextInfo.getDeclaredIncludeWarnDirs()); - actionKeyContext.addNestedSetToFingerprint( - fp, ccCompilationContextInfo.getDeclaredIncludeSrcs()); + fp.addPaths(ccCompilationContext.getDeclaredIncludeDirs()); + fp.addPaths(ccCompilationContext.getDeclaredIncludeWarnDirs()); + actionKeyContext.addNestedSetToFingerprint(fp, ccCompilationContext.getDeclaredIncludeSrcs()); fp.addInt(0); // mark the boundary between input types actionKeyContext.addNestedSetToFingerprint(fp, getMandatoryInputs()); fp.addInt(0); @@ -1370,7 +1367,7 @@ public class CppCompileAction extends AbstractAction legend = " Argument: "; } - for (PathFragment path : ccCompilationContextInfo.getDeclaredIncludeDirs()) { + for (PathFragment path : ccCompilationContext.getDeclaredIncludeDirs()) { message.append(" Declared include directory: "); message.append(ShellEscaper.escapeString(path.getPathString())); message.append('\n'); |