diff options
author | plf <plf@google.com> | 2018-05-14 06:48:48 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-05-14 06:50:04 -0700 |
commit | d753ad59fde12d4dd01c52f9dc5a41e635caf2d5 (patch) | |
tree | bbd4d231a9f794ee4d7d70021b7be516e5e5b1c9 /src/main/java/com/google/devtools/build/lib/rules/cpp | |
parent | 9a05d291f3e986bafc7238360731503717d89652 (diff) |
C++: Renames CcCompilationContextInfo to CcCompilationContext
Since it's not a provider, it doesn't need the Info suffix anymore.
RELNOTES:none
PiperOrigin-RevId: 196498526
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp')
22 files changed, 348 insertions, 369 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java index 62cbb5232c..22dfdbd283 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java @@ -99,7 +99,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { CcToolchainProvider toolchain, CcLinkingOutputs linkingOutputs, CcLinkingOutputs ccLibraryLinkingOutputs, - CcCompilationContextInfo ccCompilationContextInfo, + CcCompilationContext ccCompilationContext, Link.LinkingMode linkingMode, NestedSet<Artifact> filesToBuild, Iterable<Artifact> fakeLinkerInputs, @@ -153,12 +153,12 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { sourcesBuilder.add(cppSource.getSource()); } builder.addSymlinksToArtifacts(sourcesBuilder.build()); - builder.addSymlinksToArtifacts(ccCompilationContextInfo.getDeclaredIncludeSrcs()); + builder.addSymlinksToArtifacts(ccCompilationContext.getDeclaredIncludeSrcs()); // Add additional files that are referenced from the compile command, like module maps // or header modules. - builder.addSymlinksToArtifacts(ccCompilationContextInfo.getAdditionalInputs()); + builder.addSymlinksToArtifacts(ccCompilationContext.getAdditionalInputs()); builder.addSymlinksToArtifacts( - ccCompilationContextInfo.getTransitiveModules(usePic(context, toolchain))); + ccCompilationContext.getTransitiveModules(usePic(context, toolchain))); } return builder.build(); } @@ -238,8 +238,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { .setFake(fake) .addPrecompiledFiles(precompiledFiles); CompilationInfo compilationInfo = compilationHelper.compile(); - CcCompilationContextInfo ccCompilationContextInfo = - compilationInfo.getCcCompilationContextInfo(); + CcCompilationContext ccCompilationContext = compilationInfo.getCcCompilationContext(); CcCompilationOutputs ccCompilationOutputs = compilationInfo.getCcCompilationOutputs(); // We currently only want link the dynamic library generated for test code separately. @@ -274,7 +273,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { .enableInterfaceSharedObjects(); linkingHelper.setStaticLinkType(LinkTargetType.STATIC_LIBRARY); ccLinkingOutputs = - linkingHelper.link(ccCompilationOutputs, ccCompilationContextInfo).getCcLinkingOutputs(); + linkingHelper.link(ccCompilationOutputs, ccCompilationContext).getCcLinkingOutputs(); } CcLinkParams linkParams = @@ -293,7 +292,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { precompiledFiles, ccCompilationOutputs, ccLinkingOutputs, - ccCompilationContextInfo.getTransitiveCompilationPrerequisites(), + ccCompilationContext.getTransitiveCompilationPrerequisites(), fake, binary, linkParams, @@ -474,7 +473,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { ccToolchain, linkingOutputs, ccLinkingOutputs, - ccCompilationContextInfo, + ccCompilationContext, linkingMode, filesToBuild, fakeLinkerInputs, @@ -500,7 +499,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { ruleBuilder, filesToBuild, ccCompilationOutputs, - ccCompilationContextInfo, + ccCompilationContext, linkingOutputs, dwoArtifacts, transitiveLipoInfo, @@ -549,7 +548,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { .addProvider( LipoContextProvider.class, new LipoContextProvider( - ccCompilationContextInfo, + ccCompilationContext, ImmutableMap.copyOf(scannableMap), ImmutableMap.copyOf(sourceFileMap))) .addProvider(CppLinkAction.Context.class, linkContext) @@ -879,7 +878,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { RuleConfiguredTargetBuilder builder, NestedSet<Artifact> filesToBuild, CcCompilationOutputs ccCompilationOutputs, - CcCompilationContextInfo ccCompilationContextInfo, + CcCompilationContext ccCompilationContext, CcLinkingOutputs linkingOutputs, DwoArtifactsCollector dwoArtifacts, TransitiveLipoInfoProvider transitiveLipoInfo, @@ -899,7 +898,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { CppHelper.usePicForDynamicLibraries(ruleContext, toolchain)); CcCompilationInfo.Builder ccCompilationInfoBuilder = CcCompilationInfo.Builder.create(); - ccCompilationInfoBuilder.setCcCompilationContextInfo(ccCompilationContextInfo); + ccCompilationInfoBuilder.setCcCompilationContext(ccCompilationContext); CcLinkingInfo.Builder ccLinkingInfoBuilder = CcLinkingInfo.Builder.create(); ccLinkingInfoBuilder.setCcExecutionDynamicLibrariesInfo( @@ -931,7 +930,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { .addOutputGroup(OutputGroupInfo.HIDDEN_TOP_LEVEL, headerTokens) .addOutputGroup( OutputGroupInfo.COMPILATION_PREREQUISITES, - CcCommon.collectCompilationPrerequisites(ruleContext, ccCompilationContextInfo)); + CcCommon.collectCompilationPrerequisites(ruleContext, ccCompilationContext)); CppHelper.maybeAddStaticLinkMarkerProvider(builder, ruleContext); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java index e85c538ca9..4d6cb3a72b 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java @@ -598,11 +598,11 @@ public final class CcCommon { /** Collects compilation prerequisite artifacts. */ static NestedSet<Artifact> collectCompilationPrerequisites( - RuleContext ruleContext, CcCompilationContextInfo ccCompilationContextInfo) { - // TODO(bazel-team): Use ccCompilationContextInfo.getCompilationPrerequisites() instead; note + RuleContext ruleContext, CcCompilationContext ccCompilationContext) { + // TODO(bazel-team): Use ccCompilationContext.getCompilationPrerequisites() instead; note // that this // will - // need cleaning up the prerequisites, as the {@code CcCompilationContextInfo} currently + // need cleaning up the prerequisites, as the {@code CcCompilationContext} currently // collects them // transitively (to get transitive headers), but source files are not transitive compilation // prerequisites. @@ -615,10 +615,10 @@ public final class CcCommon { provider.getFilesToBuild(), SourceCategory.CC_AND_OBJC.getSourceTypes())); } } - prerequisites.addTransitive(ccCompilationContextInfo.getDeclaredIncludeSrcs()); - prerequisites.addTransitive(ccCompilationContextInfo.getAdditionalInputs()); - prerequisites.addTransitive(ccCompilationContextInfo.getTransitiveModules(true)); - prerequisites.addTransitive(ccCompilationContextInfo.getTransitiveModules(false)); + prerequisites.addTransitive(ccCompilationContext.getDeclaredIncludeSrcs()); + prerequisites.addTransitive(ccCompilationContext.getAdditionalInputs()); + prerequisites.addTransitive(ccCompilationContext.getTransitiveModules(true)); + prerequisites.addTransitive(ccCompilationContext.getTransitiveModules(false)); return prerequisites.build(); } @@ -777,7 +777,7 @@ public final class CcCommon { unsupportedFeaturesBuilder.add(CppRuleClasses.PARSE_HEADERS); unsupportedFeaturesBuilder.add(CppRuleClasses.PREPROCESS_HEADERS); } - if (toolchain.getCcCompilationContextInfo().getCppModuleMap() == null) { + if (toolchain.getCcCompilationContext().getCppModuleMap() == null) { unsupportedFeaturesBuilder.add(CppRuleClasses.MODULE_MAPS); } if (enableStaticLinkCppRuntimesFeature(requestedFeatures, unsupportedFeatures, toolchain)) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContextInfo.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java index 3603f20e4f..6df4ff1a8f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContextInfo.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java @@ -48,7 +48,7 @@ import javax.annotation.Nullable; @Immutable @AutoCodec @SkylarkModule( - name = "cc_compilation_info", + name = "cc_compilation_context", documented = false, category = SkylarkModuleCategory.PROVIDER, doc = @@ -56,11 +56,11 @@ import javax.annotation.Nullable; + "dependencies." ) // TODO(b/77669139): Rename to CcCompilationContext. -public final class CcCompilationContextInfo { - /** An empty {@code CcCompilationContextInfo}. */ - public static final CcCompilationContextInfo EMPTY = new Builder(null).build(); +public final class CcCompilationContext { + /** An empty {@code CcCompilationContext}. */ + public static final CcCompilationContext EMPTY = new Builder(null).build(); - private final CommandLineCcCompilationContextInfo commandLineCcCompilationContextInfo; + private final CommandLineCcCompilationContext commandLineCcCompilationContext; private final NestedSet<PathFragment> declaredIncludeDirs; private final NestedSet<PathFragment> declaredIncludeWarnDirs; @@ -89,8 +89,8 @@ public final class CcCompilationContextInfo { @AutoCodec.Instantiator @VisibleForSerialization - CcCompilationContextInfo( - CommandLineCcCompilationContextInfo commandLineCcCompilationContextInfo, + CcCompilationContext( + CommandLineCcCompilationContext commandLineCcCompilationContext, ImmutableSet<Artifact> compilationPrerequisites, NestedSet<PathFragment> declaredIncludeDirs, NestedSet<PathFragment> declaredIncludeWarnDirs, @@ -103,8 +103,8 @@ public final class CcCompilationContextInfo { CppModuleMap cppModuleMap, @Nullable CppModuleMap verificationModuleMap, boolean propagateModuleMapAsActionInput) { - Preconditions.checkNotNull(commandLineCcCompilationContextInfo); - this.commandLineCcCompilationContextInfo = commandLineCcCompilationContextInfo; + Preconditions.checkNotNull(commandLineCcCompilationContext); + this.commandLineCcCompilationContext = commandLineCcCompilationContext; this.declaredIncludeDirs = declaredIncludeDirs; this.declaredIncludeWarnDirs = declaredIncludeWarnDirs; this.declaredIncludeSrcs = declaredIncludeSrcs; @@ -131,8 +131,8 @@ public final class CcCompilationContextInfo { * <p>To reduce the number of edges in the action graph, we express the dependency on compilation * prerequisites as a transitive dependency via a middleman. After they have been accumulated * (using {@link Builder#addCompilationPrerequisites(Iterable)}, {@link - * Builder#mergeDependentCcCompilationContextInfo(CcCompilationContextInfo)}, and {@link - * Builder#mergeDependentCcCompilationContextInfos(Iterable)}, they are consolidated into a single + * Builder#mergeDependentCcCompilationContext(CcCompilationContext)}, and {@link + * Builder#mergeDependentCcCompilationContexts(Iterable)}, they are consolidated into a single * middleman Artifact when {@link Builder#build()} is called. * * <p>The returned set can be empty if there are no prerequisites. Usually it contains a single @@ -150,7 +150,7 @@ public final class CcCompilationContextInfo { * (see {@link com.google.devtools.build.lib.analysis.BlazeDirectories#getExecRoot}). */ public ImmutableList<PathFragment> getIncludeDirs() { - return commandLineCcCompilationContextInfo.includeDirs; + return commandLineCcCompilationContext.includeDirs; } /** @@ -161,7 +161,7 @@ public final class CcCompilationContextInfo { * (see {@link com.google.devtools.build.lib.analysis.BlazeDirectories#getExecRoot}). */ public ImmutableList<PathFragment> getQuoteIncludeDirs() { - return commandLineCcCompilationContextInfo.quoteIncludeDirs; + return commandLineCcCompilationContext.quoteIncludeDirs; } /** @@ -172,7 +172,7 @@ public final class CcCompilationContextInfo { * (see {@link com.google.devtools.build.lib.analysis.BlazeDirectories#getExecRoot}). */ public ImmutableList<PathFragment> getSystemIncludeDirs() { - return commandLineCcCompilationContextInfo.systemIncludeDirs; + return commandLineCcCompilationContext.systemIncludeDirs; } /** @@ -261,30 +261,30 @@ public final class CcCompilationContextInfo { * for the target. The order of the returned collection is deterministic. */ public ImmutableList<String> getDefines() { - return commandLineCcCompilationContextInfo.defines; + return commandLineCcCompilationContext.defines; } /** - * Returns a {@code CcCompilationContextInfo} that is based on a given {@code - * CcCompilationContextInfo} but returns empty sets for {@link #getDeclaredIncludeDirs()} and - * {@link #getDeclaredIncludeWarnDirs()}. + * Returns a {@code CcCompilationContext} that is based on a given {@code CcCompilationContext} + * but returns empty sets for {@link #getDeclaredIncludeDirs()} and {@link + * #getDeclaredIncludeWarnDirs()}. */ - public static CcCompilationContextInfo disallowUndeclaredHeaders( - CcCompilationContextInfo ccCompilationContextInfo) { - return new CcCompilationContextInfo( - ccCompilationContextInfo.commandLineCcCompilationContextInfo, - ccCompilationContextInfo.compilationPrerequisites, + public static CcCompilationContext disallowUndeclaredHeaders( + CcCompilationContext ccCompilationContext) { + return new CcCompilationContext( + ccCompilationContext.commandLineCcCompilationContext, + ccCompilationContext.compilationPrerequisites, NestedSetBuilder.emptySet(Order.STABLE_ORDER), NestedSetBuilder.emptySet(Order.STABLE_ORDER), - ccCompilationContextInfo.declaredIncludeSrcs, - ccCompilationContextInfo.pregreppedHdrs, - ccCompilationContextInfo.nonCodeInputs, - ccCompilationContextInfo.moduleInfo, - ccCompilationContextInfo.picModuleInfo, - ccCompilationContextInfo.directModuleMaps, - ccCompilationContextInfo.cppModuleMap, - ccCompilationContextInfo.verificationModuleMap, - ccCompilationContextInfo.propagateModuleMapAsActionInput); + ccCompilationContext.declaredIncludeSrcs, + ccCompilationContext.pregreppedHdrs, + ccCompilationContext.nonCodeInputs, + ccCompilationContext.moduleInfo, + ccCompilationContext.picModuleInfo, + ccCompilationContext.directModuleMaps, + ccCompilationContext.cppModuleMap, + ccCompilationContext.verificationModuleMap, + ccCompilationContext.propagateModuleMapAsActionInput); } /** @@ -306,46 +306,42 @@ public final class CcCompilationContextInfo { * <p>Include scanning is not handled by this method. See {@code * IncludeScannable#getAuxiliaryScannables()} instead. * - * @param ownerCcCompilationContextInfo the {@code CcCompilationContextInfo} of the owner binary - * @param libCcCompilationContextInfo the {@code CcCompilationContextInfo} of the library + * @param ownerCcCompilationContext the {@code CcCompilationContext} of the owner binary + * @param libCcCompilationContext the {@code CcCompilationContext} of the library */ - public static CcCompilationContextInfo mergeForLipo( - CcCompilationContextInfo ownerCcCompilationContextInfo, - CcCompilationContextInfo libCcCompilationContextInfo) { + public static CcCompilationContext mergeForLipo( + CcCompilationContext ownerCcCompilationContext, + CcCompilationContext libCcCompilationContext) { ImmutableSet.Builder<Artifact> prerequisites = ImmutableSet.builder(); - prerequisites.addAll(ownerCcCompilationContextInfo.compilationPrerequisites); - prerequisites.addAll(libCcCompilationContextInfo.compilationPrerequisites); + prerequisites.addAll(ownerCcCompilationContext.compilationPrerequisites); + prerequisites.addAll(libCcCompilationContext.compilationPrerequisites); ModuleInfo.Builder moduleInfo = new ModuleInfo.Builder(); - moduleInfo.merge(ownerCcCompilationContextInfo.moduleInfo); - moduleInfo.merge(libCcCompilationContextInfo.moduleInfo); + moduleInfo.merge(ownerCcCompilationContext.moduleInfo); + moduleInfo.merge(libCcCompilationContext.moduleInfo); ModuleInfo.Builder picModuleInfo = new ModuleInfo.Builder(); - picModuleInfo.merge(ownerCcCompilationContextInfo.picModuleInfo); - picModuleInfo.merge(libCcCompilationContextInfo.picModuleInfo); - return new CcCompilationContextInfo( - libCcCompilationContextInfo.commandLineCcCompilationContextInfo, + picModuleInfo.merge(ownerCcCompilationContext.picModuleInfo); + picModuleInfo.merge(libCcCompilationContext.picModuleInfo); + return new CcCompilationContext( + libCcCompilationContext.commandLineCcCompilationContext, prerequisites.build(), mergeSets( - ownerCcCompilationContextInfo.declaredIncludeDirs, - libCcCompilationContextInfo.declaredIncludeDirs), + ownerCcCompilationContext.declaredIncludeDirs, + libCcCompilationContext.declaredIncludeDirs), mergeSets( - ownerCcCompilationContextInfo.declaredIncludeWarnDirs, - libCcCompilationContextInfo.declaredIncludeWarnDirs), + ownerCcCompilationContext.declaredIncludeWarnDirs, + libCcCompilationContext.declaredIncludeWarnDirs), mergeSets( - ownerCcCompilationContextInfo.declaredIncludeSrcs, - libCcCompilationContextInfo.declaredIncludeSrcs), - mergeSets( - ownerCcCompilationContextInfo.pregreppedHdrs, - libCcCompilationContextInfo.pregreppedHdrs), - mergeSets( - ownerCcCompilationContextInfo.nonCodeInputs, libCcCompilationContextInfo.nonCodeInputs), + ownerCcCompilationContext.declaredIncludeSrcs, + libCcCompilationContext.declaredIncludeSrcs), + mergeSets(ownerCcCompilationContext.pregreppedHdrs, libCcCompilationContext.pregreppedHdrs), + mergeSets(ownerCcCompilationContext.nonCodeInputs, libCcCompilationContext.nonCodeInputs), moduleInfo.build(), picModuleInfo.build(), mergeSets( - ownerCcCompilationContextInfo.directModuleMaps, - libCcCompilationContextInfo.directModuleMaps), - libCcCompilationContextInfo.cppModuleMap, - libCcCompilationContextInfo.verificationModuleMap, - libCcCompilationContextInfo.propagateModuleMapAsActionInput); + ownerCcCompilationContext.directModuleMaps, libCcCompilationContext.directModuleMaps), + libCcCompilationContext.cppModuleMap, + libCcCompilationContext.verificationModuleMap, + libCcCompilationContext.propagateModuleMapAsActionInput); } /** @@ -369,19 +365,19 @@ public final class CcCompilationContextInfo { } /** - * The parts of the {@code CcCompilationContextInfo} that influence the command line of - * compilation actions. + * The parts of the {@code CcCompilationContext} that influence the command line of compilation + * actions. */ @Immutable @AutoCodec @VisibleForSerialization - static class CommandLineCcCompilationContextInfo { + static class CommandLineCcCompilationContext { private final ImmutableList<PathFragment> includeDirs; private final ImmutableList<PathFragment> quoteIncludeDirs; private final ImmutableList<PathFragment> systemIncludeDirs; private final ImmutableList<String> defines; - CommandLineCcCompilationContextInfo( + CommandLineCcCompilationContext( ImmutableList<PathFragment> includeDirs, ImmutableList<PathFragment> quoteIncludeDirs, ImmutableList<PathFragment> systemIncludeDirs, @@ -393,7 +389,7 @@ public final class CcCompilationContextInfo { } } - /** Builder class for {@link CcCompilationContextInfo}. */ + /** Builder class for {@link CcCompilationContext}. */ public static class Builder { private String purpose; private final Set<Artifact> compilationPrerequisites = new LinkedHashSet<>(); @@ -420,14 +416,14 @@ public final class CcCompilationContextInfo { /** The rule that owns the context */ private final RuleContext ruleContext; - /** Creates a new builder for a {@link CcCompilationContextInfo} instance. */ + /** Creates a new builder for a {@link CcCompilationContext} instance. */ public Builder(RuleContext ruleContext) { this.ruleContext = ruleContext; } /** * Overrides the purpose of this context. This is useful if a Target needs more than one - * CcCompilationContextInfo. (The purpose is used to construct the name of the prerequisites + * CcCompilationContext. (The purpose is used to construct the name of the prerequisites * middleman for the context, and all artifacts for a given Target must have distinct names.) * * @param purpose must be a string which is suitable for use as a filename. A single rule may @@ -444,45 +440,43 @@ public final class CcCompilationContextInfo { } /** - * Merges the {@link CcCompilationContextInfo} of a dependency into this one by adding the - * contents of all of its attributes. + * Merges the {@link CcCompilationContext} of a dependency into this one by adding the contents + * of all of its attributes. */ - public Builder mergeDependentCcCompilationContextInfo( - CcCompilationContextInfo otherCcCompilationContextInfo) { - Preconditions.checkNotNull(otherCcCompilationContextInfo); + public Builder mergeDependentCcCompilationContext( + CcCompilationContext otherCcCompilationContext) { + Preconditions.checkNotNull(otherCcCompilationContext); compilationPrerequisites.addAll( - otherCcCompilationContextInfo.getTransitiveCompilationPrerequisites()); - includeDirs.addAll(otherCcCompilationContextInfo.getIncludeDirs()); - quoteIncludeDirs.addAll(otherCcCompilationContextInfo.getQuoteIncludeDirs()); - systemIncludeDirs.addAll(otherCcCompilationContextInfo.getSystemIncludeDirs()); - declaredIncludeDirs.addTransitive(otherCcCompilationContextInfo.getDeclaredIncludeDirs()); - declaredIncludeWarnDirs.addTransitive( - otherCcCompilationContextInfo.getDeclaredIncludeWarnDirs()); - declaredIncludeSrcs.addTransitive(otherCcCompilationContextInfo.getDeclaredIncludeSrcs()); - pregreppedHdrs.addTransitive(otherCcCompilationContextInfo.getPregreppedHeaders()); - moduleInfo.addTransitive(otherCcCompilationContextInfo.moduleInfo); - picModuleInfo.addTransitive(otherCcCompilationContextInfo.picModuleInfo); - nonCodeInputs.addTransitive(otherCcCompilationContextInfo.nonCodeInputs); + otherCcCompilationContext.getTransitiveCompilationPrerequisites()); + includeDirs.addAll(otherCcCompilationContext.getIncludeDirs()); + quoteIncludeDirs.addAll(otherCcCompilationContext.getQuoteIncludeDirs()); + systemIncludeDirs.addAll(otherCcCompilationContext.getSystemIncludeDirs()); + declaredIncludeDirs.addTransitive(otherCcCompilationContext.getDeclaredIncludeDirs()); + declaredIncludeWarnDirs.addTransitive(otherCcCompilationContext.getDeclaredIncludeWarnDirs()); + declaredIncludeSrcs.addTransitive(otherCcCompilationContext.getDeclaredIncludeSrcs()); + pregreppedHdrs.addTransitive(otherCcCompilationContext.getPregreppedHeaders()); + moduleInfo.addTransitive(otherCcCompilationContext.moduleInfo); + picModuleInfo.addTransitive(otherCcCompilationContext.picModuleInfo); + nonCodeInputs.addTransitive(otherCcCompilationContext.nonCodeInputs); // All module maps of direct dependencies are inputs to the current compile independently of // the build type. - if (otherCcCompilationContextInfo.getCppModuleMap() != null) { - directModuleMaps.add(otherCcCompilationContextInfo.getCppModuleMap().getArtifact()); + if (otherCcCompilationContext.getCppModuleMap() != null) { + directModuleMaps.add(otherCcCompilationContext.getCppModuleMap().getArtifact()); } - defines.addAll(otherCcCompilationContextInfo.getDefines()); + defines.addAll(otherCcCompilationContext.getDefines()); return this; } /** - * Merges the {@code CcCompilationContextInfo}s of some targets into this one by adding the - * contents of all of their attributes. Targets that do not implement {@link - * CcCompilationContextInfo} are ignored. + * Merges the {@code CcCompilationContext}s of some targets into this one by adding the contents + * of all of their attributes. Targets that do not implement {@link CcCompilationContext} are + * ignored. */ - public Builder mergeDependentCcCompilationContextInfos( - Iterable<CcCompilationContextInfo> targets) { - for (CcCompilationContextInfo target : targets) { - mergeDependentCcCompilationContextInfo(target); + public Builder mergeDependentCcCompilationContexts(Iterable<CcCompilationContext> targets) { + for (CcCompilationContext target : targets) { + mergeDependentCcCompilationContext(target); } return this; } @@ -684,15 +678,15 @@ public final class CcCompilationContextInfo { return this; } - /** Builds the {@link CcCompilationContextInfo}. */ - public CcCompilationContextInfo build() { + /** Builds the {@link CcCompilationContext}. */ + public CcCompilationContext build() { return build( ruleContext == null ? null : ruleContext.getActionOwner(), ruleContext == null ? null : ruleContext.getAnalysisEnvironment().getMiddlemanFactory()); } @VisibleForTesting // productionVisibility = Visibility.PRIVATE - public CcCompilationContextInfo build(ActionOwner owner, MiddlemanFactory middlemanFactory) { + public CcCompilationContext build(ActionOwner owner, MiddlemanFactory middlemanFactory) { Preconditions.checkState( Objects.equals(moduleInfo.textualHeaders, picModuleInfo.textualHeaders), "Module and PIC module's textual headers are expected to be identical"); @@ -703,8 +697,8 @@ public final class CcCompilationContextInfo { ? getMiddlemanArtifact(middlemanFactory) : createMiddleman(owner, middlemanFactory); - return new CcCompilationContextInfo( - new CommandLineCcCompilationContextInfo( + return new CcCompilationContext( + new CommandLineCcCompilationContext( ImmutableList.copyOf(includeDirs), ImmutableList.copyOf(quoteIncludeDirs), ImmutableList.copyOf(systemIncludeDirs), diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationHelper.java index 11afab6332..0ce68ce615 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationHelper.java @@ -129,16 +129,16 @@ public final class CcCompilationHelper { private static final Function<TransitiveInfoCollection, CppModuleMap> CPP_DEPS_TO_MODULES = dep -> { CcCompilationInfo ccCompilationInfo = dep.get(CcCompilationInfo.PROVIDER); - CcCompilationContextInfo ccCompilationContextInfo = null; + CcCompilationContext ccCompilationContext = null; if (ccCompilationInfo != null) { - ccCompilationContextInfo = ccCompilationInfo.getCcCompilationContextInfo(); + ccCompilationContext = ccCompilationInfo.getCcCompilationContext(); } - return ccCompilationContextInfo == null ? null : ccCompilationContextInfo.getCppModuleMap(); + return ccCompilationContext == null ? null : ccCompilationContext.getCppModuleMap(); }; /** * Contains the providers as well as the {@code CcCompilationOutputs} and the {@code - * CcCompilationContextInfo}. + * CcCompilationContext}. */ @SkylarkModule( name = "compilation_info", @@ -146,7 +146,7 @@ public final class CcCompilationHelper { category = SkylarkModuleCategory.BUILTIN, doc = "Helper class containing CC compilation providers." ) - // TODO(plf): Rename so that it's not confused with CcCompilationContextInfo and also consider + // TODO(plf): Rename so that it's not confused with CcCompilationContext and also consider // merging // this class with {@code CcCompilationOutputs}. public static final class CompilationInfo { @@ -191,9 +191,9 @@ public final class CcCompilationHelper { return (CcCompilationInfo) providers.getProvider(CcCompilationInfo.PROVIDER.getKey()); } - public CcCompilationContextInfo getCcCompilationContextInfo() { + public CcCompilationContext getCcCompilationContext() { return ((CcCompilationInfo) providers.getProvider(CcCompilationInfo.PROVIDER.getKey())) - .getCcCompilationContextInfo(); + .getCcCompilationContext(); } } @@ -218,7 +218,7 @@ public final class CcCompilationHelper { private CoptsFilter coptsFilter = CoptsFilter.alwaysPasses(); private final Set<String> defines = new LinkedHashSet<>(); private final List<TransitiveInfoCollection> deps = new ArrayList<>(); - private final List<CcCompilationContextInfo> depCcCompilationContextInfos = new ArrayList<>(); + private final List<CcCompilationContext> depCcCompilationContexts = new ArrayList<>(); private final List<PathFragment> looseIncludeDirs = new ArrayList<>(); private final List<PathFragment> systemIncludeDirs = new ArrayList<>(); private final List<PathFragment> includeDirs = new ArrayList<>(); @@ -243,7 +243,7 @@ public final class CcCompilationHelper { private boolean generatePicAction; // TODO(plf): Pull out of class. - private CcCompilationContextInfo ccCompilationContextInfo; + private CcCompilationContext ccCompilationContext; /** * Creates a CcCompilationHelper. @@ -559,9 +559,8 @@ public final class CcCompilationHelper { return this; } - public CcCompilationHelper addDepCcCompilationContextInfo( - CcCompilationContextInfo ccCompilationContextInfo) { - this.depCcCompilationContextInfos.add(Preconditions.checkNotNull(ccCompilationContextInfo)); + public CcCompilationHelper addDepCcCompilationContext(CcCompilationContext ccCompilationContext) { + this.depCcCompilationContexts.add(Preconditions.checkNotNull(ccCompilationContext)); return this; } @@ -711,11 +710,11 @@ public final class CcCompilationHelper { } } - ccCompilationContextInfo = initializeCcCompilationContextInfo(); + ccCompilationContext = initializeCcCompilationContext(); boolean compileHeaderModules = featureConfiguration.isEnabled(CppRuleClasses.HEADER_MODULES); Preconditions.checkState( - !compileHeaderModules || ccCompilationContextInfo.getCppModuleMap() != null, + !compileHeaderModules || ccCompilationContext.getCppModuleMap() != null, "All cc rules must support module maps."); // Create compile actions (both PIC and no-PIC). @@ -747,7 +746,7 @@ public final class CcCompilationHelper { dwoArtifacts.getDwoArtifacts(), dwoArtifacts.getPicDwoArtifacts()), collectTransitiveLipoInfo(ccOutputs)); CcCompilationInfo.Builder ccCompilationInfoBuilder = CcCompilationInfo.Builder.create(); - ccCompilationInfoBuilder.setCcCompilationContextInfo(ccCompilationContextInfo); + ccCompilationInfoBuilder.setCcCompilationContext(ccCompilationContext); providers.put(ccCompilationInfoBuilder.build()); Map<String, NestedSet<Artifact>> outputGroups = new TreeMap<>(); @@ -761,7 +760,7 @@ public final class CcCompilationHelper { ccOutputs.getFilesToCompile(isLipoCollector, processHeadersInDependencies, usePic)); outputGroups.put( OutputGroupInfo.COMPILATION_PREREQUISITES, - CcCommon.collectCompilationPrerequisites(ruleContext, ccCompilationContextInfo)); + CcCommon.collectCompilationPrerequisites(ruleContext, ccCompilationContext)); } return new CompilationInfo(providers.build(), outputGroups, ccOutputs); @@ -902,13 +901,13 @@ public final class CcCompilationHelper { } /** - * Create {@code CcCompilationContextInfo} for cc compile action from generated inputs. + * Create {@code CcCompilationContext} for cc compile action from generated inputs. * - * <p>TODO(plf): Try to pull out CcCompilationContextInfo building out of this class. + * <p>TODO(plf): Try to pull out CcCompilationContext building out of this class. */ - public CcCompilationContextInfo initializeCcCompilationContextInfo() { - CcCompilationContextInfo.Builder ccCompilationContextInfoBuilder = - new CcCompilationContextInfo.Builder(ruleContext); + public CcCompilationContext initializeCcCompilationContext() { + CcCompilationContext.Builder ccCompilationContextBuilder = + new CcCompilationContext.Builder(ruleContext); // Setup the include path; local include directories come before those inherited from deps or // from the toolchain; in case of aliasing (same include file found on different entries), @@ -920,63 +919,62 @@ public final class CcCompilationHelper { // we might pick up stale generated files. PathFragment repositoryPath = ruleContext.getLabel().getPackageIdentifier().getRepository().getPathUnderExecRoot(); - ccCompilationContextInfoBuilder.addQuoteIncludeDir(repositoryPath); - ccCompilationContextInfoBuilder.addQuoteIncludeDir( + ccCompilationContextBuilder.addQuoteIncludeDir(repositoryPath); + ccCompilationContextBuilder.addQuoteIncludeDir( ruleContext.getConfiguration().getGenfilesFragment().getRelative(repositoryPath)); for (PathFragment systemIncludeDir : systemIncludeDirs) { - ccCompilationContextInfoBuilder.addSystemIncludeDir(systemIncludeDir); + ccCompilationContextBuilder.addSystemIncludeDir(systemIncludeDir); } for (PathFragment includeDir : includeDirs) { - ccCompilationContextInfoBuilder.addIncludeDir(includeDir); + ccCompilationContextBuilder.addIncludeDir(includeDir); } PublicHeaders publicHeaders = computePublicHeaders(); if (publicHeaders.getVirtualIncludePath() != null) { - ccCompilationContextInfoBuilder.addIncludeDir(publicHeaders.getVirtualIncludePath()); + ccCompilationContextBuilder.addIncludeDir(publicHeaders.getVirtualIncludePath()); } if (useDeps) { - ccCompilationContextInfoBuilder.mergeDependentCcCompilationContextInfos( - CcCompilationInfo.getCcCompilationContextInfos(deps)); - ccCompilationContextInfoBuilder.mergeDependentCcCompilationContextInfos( - depCcCompilationContextInfos); + ccCompilationContextBuilder.mergeDependentCcCompilationContexts( + CcCompilationInfo.getCcCompilationContexts(deps)); + ccCompilationContextBuilder.mergeDependentCcCompilationContexts(depCcCompilationContexts); } - CppHelper.mergeToolchainDependentCcCompilationContextInfo( - ruleContext, ccToolchain, ccCompilationContextInfoBuilder); + CppHelper.mergeToolchainDependentCcCompilationContext( + ruleContext, ccToolchain, ccCompilationContextBuilder); // But defines come after those inherited from deps. - ccCompilationContextInfoBuilder.addDefines(defines); + ccCompilationContextBuilder.addDefines(defines); // There are no ordering constraints for declared include dirs/srcs, or the pregrepped headers. - ccCompilationContextInfoBuilder.addDeclaredIncludeSrcs(publicHeaders.getHeaders()); - ccCompilationContextInfoBuilder.addDeclaredIncludeSrcs(publicTextualHeaders); - ccCompilationContextInfoBuilder.addDeclaredIncludeSrcs(privateHeaders); - ccCompilationContextInfoBuilder.addDeclaredIncludeSrcs(additionalInputs); - ccCompilationContextInfoBuilder.addNonCodeInputs(additionalInputs); - ccCompilationContextInfoBuilder.addModularHdrs(publicHeaders.getHeaders()); - ccCompilationContextInfoBuilder.addModularHdrs(privateHeaders); - ccCompilationContextInfoBuilder.addTextualHdrs(publicTextualHeaders); - ccCompilationContextInfoBuilder.addPregreppedHeaders( + ccCompilationContextBuilder.addDeclaredIncludeSrcs(publicHeaders.getHeaders()); + ccCompilationContextBuilder.addDeclaredIncludeSrcs(publicTextualHeaders); + ccCompilationContextBuilder.addDeclaredIncludeSrcs(privateHeaders); + ccCompilationContextBuilder.addDeclaredIncludeSrcs(additionalInputs); + ccCompilationContextBuilder.addNonCodeInputs(additionalInputs); + ccCompilationContextBuilder.addModularHdrs(publicHeaders.getHeaders()); + ccCompilationContextBuilder.addModularHdrs(privateHeaders); + ccCompilationContextBuilder.addTextualHdrs(publicTextualHeaders); + ccCompilationContextBuilder.addPregreppedHeaders( CppHelper.createExtractInclusions(ruleContext, semantics, publicHeaders.getHeaders())); - ccCompilationContextInfoBuilder.addPregreppedHeaders( + ccCompilationContextBuilder.addPregreppedHeaders( CppHelper.createExtractInclusions(ruleContext, semantics, publicTextualHeaders)); - ccCompilationContextInfoBuilder.addPregreppedHeaders( + ccCompilationContextBuilder.addPregreppedHeaders( CppHelper.createExtractInclusions(ruleContext, semantics, privateHeaders)); // Add this package's dir to declaredIncludeDirs, & this rule's headers to declaredIncludeSrcs // Note: no include dir for STRICT mode. if (headersCheckingMode == HeadersCheckingMode.WARN) { - ccCompilationContextInfoBuilder.addDeclaredIncludeWarnDir( + ccCompilationContextBuilder.addDeclaredIncludeWarnDir( ruleContext.getLabel().getPackageFragment()); for (PathFragment looseIncludeDir : looseIncludeDirs) { - ccCompilationContextInfoBuilder.addDeclaredIncludeWarnDir(looseIncludeDir); + ccCompilationContextBuilder.addDeclaredIncludeWarnDir(looseIncludeDir); } } else if (headersCheckingMode == HeadersCheckingMode.LOOSE) { - ccCompilationContextInfoBuilder.addDeclaredIncludeDir( + ccCompilationContextBuilder.addDeclaredIncludeDir( ruleContext.getLabel().getPackageFragment()); for (PathFragment looseIncludeDir : looseIncludeDirs) { - ccCompilationContextInfoBuilder.addDeclaredIncludeDir(looseIncludeDir); + ccCompilationContextBuilder.addDeclaredIncludeDir(looseIncludeDir); } } @@ -985,9 +983,9 @@ public final class CcCompilationHelper { cppModuleMap = CppHelper.createDefaultCppModuleMap(ruleContext, /*suffix=*/ ""); } - ccCompilationContextInfoBuilder.setPropagateCppModuleMapAsActionInput( + ccCompilationContextBuilder.setPropagateCppModuleMapAsActionInput( propagateModuleMapToCompileAction); - ccCompilationContextInfoBuilder.setCppModuleMap(cppModuleMap); + ccCompilationContextBuilder.setCppModuleMap(cppModuleMap); // There are different modes for module compilation: // 1. We create the module map and compile the module so that libraries depending on us can // use the resulting module artifacts in their compilation (compiled is true). @@ -1009,12 +1007,11 @@ public final class CcCompilationHelper { createModuleMapAction(cppModuleMap, publicHeaders, dependentModuleMaps, compiled)); } if (getGeneratesPicHeaderModule()) { - ccCompilationContextInfoBuilder.setPicHeaderModule( + ccCompilationContextBuilder.setPicHeaderModule( getPicHeaderModule(cppModuleMap.getArtifact())); } if (getGeneratesNoPicHeaderModule()) { - ccCompilationContextInfoBuilder.setHeaderModule( - getHeaderModule(cppModuleMap.getArtifact())); + ccCompilationContextBuilder.setHeaderModule(getHeaderModule(cppModuleMap.getArtifact())); } if (!compiled && featureConfiguration.isEnabled(CppRuleClasses.PARSE_HEADERS) @@ -1028,13 +1025,13 @@ public final class CcCompilationHelper { ruleContext.registerAction( createModuleMapAction( verificationMap, publicHeaders, dependentModuleMaps, /*compiledModule=*/ true)); - ccCompilationContextInfoBuilder.setVerificationModuleMap(verificationMap); + ccCompilationContextBuilder.setVerificationModuleMap(verificationMap); } } - ccCompilationContextInfoBuilder.setPurpose(purpose); + ccCompilationContextBuilder.setPurpose(purpose); - semantics.setupCcCompilationContextInfo(ruleContext, ccCompilationContextInfoBuilder); - return ccCompilationContextInfoBuilder.build(); + semantics.setupCcCompilationContext(ruleContext, ccCompilationContextBuilder); + return ccCompilationContextBuilder.build(); } /** @@ -1064,9 +1061,9 @@ public final class CcCompilationHelper { } /** - * Sets the purpose for the {@code CcCompilationContextInfo}. + * Sets the purpose for the {@code CcCompilationContext}. * - * @see CcCompilationContextInfo.Builder#setPurpose + * @see CcCompilationContext.Builder#setPurpose * @param purpose must be a string which is suitable for use as a filename. A single rule may have * many middlemen with distinct purposes. */ @@ -1116,12 +1113,12 @@ public final class CcCompilationHelper { CcCompilationInfo stl = ruleContext.getPrerequisite(":stl", Mode.TARGET, CcCompilationInfo.PROVIDER); if (stl != null) { - result.add(stl.getCcCompilationContextInfo().getCppModuleMap()); + result.add(stl.getCcCompilationContext().getCppModuleMap()); } } if (ccToolchain != null) { - result.add(ccToolchain.getCcCompilationContextInfo().getCppModuleMap()); + result.add(ccToolchain.getCcCompilationContext().getCppModuleMap()); } for (CppModuleMap additionalCppModuleMap : additionalCppModuleMaps) { result.add(additionalCppModuleMap); @@ -1284,14 +1281,14 @@ public final class CcCompilationHelper { */ private CcCompilationOutputs createCcCompileActions() throws RuleErrorException { CcCompilationOutputs.Builder result = new CcCompilationOutputs.Builder(); - Preconditions.checkNotNull(ccCompilationContextInfo); + Preconditions.checkNotNull(ccCompilationContext); AnalysisEnvironment env = ruleContext.getAnalysisEnvironment(); if (shouldProvideHeaderModules()) { Label moduleMapLabel = - Label.parseAbsoluteUnchecked(ccCompilationContextInfo.getCppModuleMap().getName()); + Label.parseAbsoluteUnchecked(ccCompilationContext.getCppModuleMap().getName()); Collection<Artifact> modules = - createModuleAction(result, ccCompilationContextInfo.getCppModuleMap()); + createModuleAction(result, ccCompilationContext.getCppModuleMap()); if (featureConfiguration.isEnabled(CppRuleClasses.HEADER_MODULE_CODEGEN)) { for (Artifact module : modules) { // TODO(djasper): Investigate whether we need to use a label separate from that of the @@ -1299,9 +1296,9 @@ public final class CcCompilationHelper { createModuleCodegenAction(result, moduleMapLabel, module); } } - } else if (ccCompilationContextInfo.getVerificationModuleMap() != null) { + } else if (ccCompilationContext.getVerificationModuleMap() != null) { Collection<Artifact> modules = - createModuleAction(result, ccCompilationContextInfo.getVerificationModuleMap()); + createModuleAction(result, ccCompilationContext.getVerificationModuleMap()); for (Artifact module : modules) { result.addHeaderTokenFile(module); } @@ -1356,7 +1353,7 @@ public final class CcCompilationHelper { source.getType() == CppSource.Type.CLIF_INPUT_PROTO ? ArtifactCategory.CLIF_OUTPUT_PROTO : ArtifactCategory.OBJECT_FILE, - ccCompilationContextInfo.getCppModuleMap(), + ccCompilationContext.getCppModuleMap(), /* addObject= */ true, isCodeCoverageEnabled(), // The source action does not generate dwo when it has bitcode @@ -1433,7 +1430,7 @@ public final class CcCompilationHelper { usePic, /* ccRelativeName= */ null, /* autoFdoImportPath= */ null, - ccCompilationContextInfo.getCppModuleMap(), + ccCompilationContext.getCppModuleMap(), /* gcnoFile= */ null, /* dwoFile= */ null, /* ltoIndexingFile= */ null, @@ -1535,11 +1532,11 @@ public final class CcCompilationHelper { dotdFileExecPath, ImmutableList.copyOf(variablesExtensions), allAdditionalBuildVariables.build(), - ccCompilationContextInfo.getDirectModuleMaps(), - ccCompilationContextInfo.getIncludeDirs(), - ccCompilationContextInfo.getQuoteIncludeDirs(), - ccCompilationContextInfo.getSystemIncludeDirs(), - ccCompilationContextInfo.getDefines()); + ccCompilationContext.getDirectModuleMaps(), + ccCompilationContext.getIncludeDirs(), + ccCompilationContext.getQuoteIncludeDirs(), + ccCompilationContext.getSystemIncludeDirs(), + ccCompilationContext.getDefines()); } private static String toPathString(Artifact a) { @@ -1559,13 +1556,13 @@ public final class CcCompilationHelper { /** * Creates a basic cpp compile action builder for source file. Configures options, crosstool - * inputs, output and dotd file names, {@code CcCompilationContextInfo} and copts. + * inputs, output and dotd file names, {@code CcCompilationContext} and copts. */ private CppCompileActionBuilder createCompileActionBuilder(Artifact source) { CppCompileActionBuilder builder = new CppCompileActionBuilder(ruleContext, ccToolchain, configuration); builder.setSourceFile(source); - builder.setCcCompilationContextInfo(ccCompilationContextInfo); + builder.setCcCompilationContext(ccCompilationContext); builder.setCoptsFilter(coptsFilter); return builder; } @@ -1618,7 +1615,7 @@ public final class CcCompilationHelper { /* usePic= */ pic, ccRelativeName, module.getExecPath(), - ccCompilationContextInfo.getCppModuleMap(), + ccCompilationContext.getCppModuleMap(), gcnoFile, dwoFile, /* ltoIndexingFile= */ null, @@ -1669,7 +1666,7 @@ public final class CcCompilationHelper { generatePicAction, /* ccRelativeName= */ null, /* autoFdoImportPath= */ null, - ccCompilationContextInfo.getCppModuleMap(), + ccCompilationContext.getCppModuleMap(), /* gcnoFile= */ null, /* dwoFile= */ null, /* ltoIndexingFile= */ null, @@ -1730,14 +1727,14 @@ public final class CcCompilationHelper { ImmutableList.Builder<Artifact> directOutputs = new ImmutableList.Builder<>(); PathFragment ccRelativeName = sourceArtifact.getRootRelativePath(); if (CppHelper.isLipoOptimization(cppConfiguration, ccToolchain)) { - // TODO(bazel-team): we shouldn't be needing this, merging ccCompilationContextInfo with the + // TODO(bazel-team): we shouldn't be needing this, merging ccCompilationContext with the // binary // is a superset of necessary information. LipoContextProvider lipoProvider = Preconditions.checkNotNull(CppHelper.getLipoContextProvider(ruleContext), outputName); - builder.setCcCompilationContextInfo( - CcCompilationContextInfo.mergeForLipo( - lipoProvider.getLipoCcCompilationContextInfo(), ccCompilationContextInfo)); + builder.setCcCompilationContext( + CcCompilationContext.mergeForLipo( + lipoProvider.getLipoCcCompilationContext(), ccCompilationContext)); } Preconditions.checkState(generatePicAction || generateNoPicAction); if (fake) { @@ -1786,7 +1783,7 @@ public final class CcCompilationHelper { /* usePic= */ true, ccRelativeName, sourceArtifact.getExecPath(), - ccCompilationContextInfo.getCppModuleMap(), + ccCompilationContext.getCppModuleMap(), gcnoFile, dwoFile, ltoIndexingFile, @@ -1961,7 +1958,7 @@ public final class CcCompilationHelper { usePic, ccRelativeName, execPath, - ccCompilationContextInfo.getCppModuleMap(), + ccCompilationContext.getCppModuleMap(), /* gcnoFile= */ null, /* dwoFile= */ null, /* ltoIndexingFile= */ null, @@ -2002,7 +1999,7 @@ public final class CcCompilationHelper { for (TransitiveInfoCollection dep : ruleContext.getPrerequisites("deps", Mode.TARGET)) { CcCompilationInfo ccCompilationInfo = dep.get(CcCompilationInfo.PROVIDER); if (ccCompilationInfo != null - && ccCompilationInfo.getCcCompilationContextInfo() != null + && ccCompilationInfo.getCcCompilationContext() != null && InstrumentedFilesCollector.shouldIncludeLocalSources(configuration, dep)) { return true; } @@ -2071,7 +2068,7 @@ public final class CcCompilationHelper { usePic, ccRelativeName, source.getExecPath(), - ccCompilationContextInfo.getCppModuleMap(), + ccCompilationContext.getCppModuleMap(), /* gcnoFile= */ null, /* dwoFile= */ null, /* ltoIndexingFile= */ null, @@ -2093,7 +2090,7 @@ public final class CcCompilationHelper { usePic, ccRelativeName, source.getExecPath(), - ccCompilationContextInfo.getCppModuleMap(), + ccCompilationContext.getCppModuleMap(), /* gcnoFile= */ null, /* dwoFile= */ null, /* ltoIndexingFile= */ null, diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationInfo.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationInfo.java index cba5d39184..6879ee5341 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationInfo.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationInfo.java @@ -41,57 +41,56 @@ public final class CcCompilationInfo extends NativeInfo { public static final NativeProvider<CcCompilationInfo> PROVIDER = new NativeProvider<CcCompilationInfo>(CcCompilationInfo.class, "CcCompilationInfo") {}; - private final CcCompilationContextInfo ccCompilationContextInfo; + private final CcCompilationContext ccCompilationContext; @AutoCodec.Instantiator @VisibleForSerialization - CcCompilationInfo(CcCompilationContextInfo ccCompilationContextInfo) { + CcCompilationInfo(CcCompilationContext ccCompilationContext) { super(PROVIDER); - this.ccCompilationContextInfo = ccCompilationContextInfo; + this.ccCompilationContext = ccCompilationContext; } @SkylarkCallable( - name = "cc_compilation_context_info", + name = "cc_compilation_context", structField = true, allowReturnNones = true, doc = "Returns compilation information for this C++ target." ) - public CcCompilationContextInfo getCcCompilationContextInfo() { - return ccCompilationContextInfo; + public CcCompilationContext getCcCompilationContext() { + return ccCompilationContext; } /** A Builder for {@link CcCompilationInfo}. */ public static class Builder { - CcCompilationContextInfo ccCompilationContextInfo; + CcCompilationContext ccCompilationContext; public static CcCompilationInfo.Builder create() { return new CcCompilationInfo.Builder(); } - public <P extends TransitiveInfoProvider> Builder setCcCompilationContextInfo( - CcCompilationContextInfo ccCompilationContextInfo) { - Preconditions.checkState(this.ccCompilationContextInfo == null); - this.ccCompilationContextInfo = ccCompilationContextInfo; + public <P extends TransitiveInfoProvider> Builder setCcCompilationContext( + CcCompilationContext ccCompilationContext) { + Preconditions.checkState(this.ccCompilationContext == null); + this.ccCompilationContext = ccCompilationContext; return this; } public CcCompilationInfo build() { - return new CcCompilationInfo(ccCompilationContextInfo); + return new CcCompilationInfo(ccCompilationContext); } } - public static ImmutableList<CcCompilationContextInfo> getCcCompilationContextInfos( + public static ImmutableList<CcCompilationContext> getCcCompilationContexts( Iterable<? extends TransitiveInfoCollection> deps) { - ImmutableList.Builder<CcCompilationContextInfo> ccCompilationContextInfosBuilder = + ImmutableList.Builder<CcCompilationContext> ccCompilationContextsBuilder = ImmutableList.builder(); for (CcCompilationInfo ccCompilationInfo : AnalysisUtils.getProviders(deps, CcCompilationInfo.PROVIDER)) { - CcCompilationContextInfo ccCompilationContextInfo = - ccCompilationInfo.getCcCompilationContextInfo(); - if (ccCompilationContextInfo != null) { - ccCompilationContextInfosBuilder.add(ccCompilationContextInfo); + CcCompilationContext ccCompilationContext = ccCompilationInfo.getCcCompilationContext(); + if (ccCompilationContext != null) { + ccCompilationContextsBuilder.add(ccCompilationContext); } } - return ccCompilationContextInfosBuilder.build(); + return ccCompilationContextsBuilder.build(); } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcImport.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcImport.java index b0537a2a66..373d2d5747 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcImport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcImport.java @@ -170,8 +170,7 @@ public abstract class CcImport implements RuleConfiguredTargetFactory { LinkingInfo linkingInfo = linkingHelper.link( - compilationInfo.getCcCompilationOutputs(), - compilationInfo.getCcCompilationContextInfo()); + compilationInfo.getCcCompilationOutputs(), compilationInfo.getCcCompilationContext()); return new RuleConfiguredTargetBuilder(ruleContext) .addProviders(compilationInfo.getProviders()) diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java index 3399f0845a..cd883d1d35 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java @@ -290,8 +290,7 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { CompilationInfo compilationInfo = compilationHelper.compile(); LinkingInfo linkingInfo = linkingHelper.link( - compilationInfo.getCcCompilationOutputs(), - compilationInfo.getCcCompilationContextInfo()); + compilationInfo.getCcCompilationOutputs(), compilationInfo.getCcCompilationContext()); /* * We always generate a static library, even if there aren't any source files. diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkParams.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkParams.java index 3941926f45..4ad7a1b030 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkParams.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkParams.java @@ -330,10 +330,10 @@ public final class CcLinkParams { /** Adds a collection of linkstamps. */ public Builder addLinkstamps( - NestedSet<Artifact> linkstamps, CcCompilationContextInfo ccCompilationContextInfo) { + NestedSet<Artifact> linkstamps, CcCompilationContext ccCompilationContext) { for (Artifact linkstamp : linkstamps) { linkstampsBuilder.add( - new Linkstamp(linkstamp, ccCompilationContextInfo.getDeclaredIncludeSrcs())); + new Linkstamp(linkstamp, ccCompilationContext.getDeclaredIncludeSrcs())); } return this; } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java index 5683e08200..e9ee36a498 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java @@ -438,14 +438,13 @@ public final class CcLinkingHelper { * * @throws RuleErrorException */ - // TODO(b/73997894): Try to remove CcCompilationContextInfo. Right now headers are passed as non + // TODO(b/73997894): Try to remove CcCompilationContext. Right now headers are passed as non // code // inputs to the linker. - public LinkingInfo link( - CcCompilationOutputs ccOutputs, CcCompilationContextInfo ccCompilationContextInfo) + public LinkingInfo link(CcCompilationOutputs ccOutputs, CcCompilationContext ccCompilationContext) throws RuleErrorException, InterruptedException { Preconditions.checkNotNull(ccOutputs); - Preconditions.checkNotNull(ccCompilationContextInfo); + Preconditions.checkNotNull(ccCompilationContext); if (checkDepsGenerateCpp) { for (LanguageDependentFragment dep : @@ -551,11 +550,11 @@ public final class CcLinkingHelper { if (emitCcSpecificLinkParamsProvider) { providers.add( new CcSpecificLinkParamsProvider( - createCcLinkParamsStore(ccLinkingOutputs, ccCompilationContextInfo, forcePic))); + createCcLinkParamsStore(ccLinkingOutputs, ccCompilationContext, forcePic))); } else { ccLinkingInfoBuilder.setCcLinkParamsInfo( new CcLinkParamsInfo( - createCcLinkParamsStore(ccLinkingOutputs, ccCompilationContextInfo, forcePic))); + createCcLinkParamsStore(ccLinkingOutputs, ccCompilationContext, forcePic))); } providers.put(ccLinkingInfoBuilder.build()); return new LinkingInfo( @@ -637,13 +636,13 @@ public final class CcLinkingHelper { private CcLinkParamsStore createCcLinkParamsStore( final CcLinkingOutputs ccLinkingOutputs, - final CcCompilationContextInfo ccCompilationContextInfo, + final CcCompilationContext ccCompilationContext, final boolean forcePic) { return new CcLinkParamsStore() { @Override protected void collect( CcLinkParams.Builder builder, boolean linkingStatically, boolean linkShared) { - builder.addLinkstamps(linkstamps.build(), ccCompilationContextInfo); + builder.addLinkstamps(linkstamps.build(), ccCompilationContext); builder.addTransitiveTargets( deps, CcLinkParamsInfo.TO_LINK_PARAMS, CcSpecificLinkParamsProvider.TO_LINK_PARAMS); if (!neverlink) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcSkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcSkylarkApiProvider.java index 3d4fc9bcc5..88c959de22 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcSkylarkApiProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcSkylarkApiProvider.java @@ -50,9 +50,9 @@ public final class CcSkylarkApiProvider extends SkylarkApiProvider { + " <code>src</code> or <code>headers</code> attribute" + "(possibly empty but never <code>None</code>).") public NestedSet<Artifact> getTransitiveHeaders() { - CcCompilationContextInfo ccCompilationContextInfo = - getInfo().get(CcCompilationInfo.PROVIDER).getCcCompilationContextInfo(); - return ccCompilationContextInfo.getDeclaredIncludeSrcs(); + CcCompilationContext ccCompilationContext = + getInfo().get(CcCompilationInfo.PROVIDER).getCcCompilationContext(); + return ccCompilationContext.getDeclaredIncludeSrcs(); } @SkylarkCallable( @@ -102,11 +102,11 @@ public final class CcSkylarkApiProvider extends SkylarkApiProvider { "Returns the list of defines used to compile this target " + "(possibly empty but never <code>None</code>).") public ImmutableList<String> getDefines() { - CcCompilationContextInfo ccCompilationContextInfo = - getInfo().get(CcCompilationInfo.PROVIDER).getCcCompilationContextInfo(); - return ccCompilationContextInfo == null + CcCompilationContext ccCompilationContext = + getInfo().get(CcCompilationInfo.PROVIDER).getCcCompilationContext(); + return ccCompilationContext == null ? ImmutableList.<String>of() - : ccCompilationContextInfo.getDefines(); + : ccCompilationContext.getDefines(); } @SkylarkCallable( @@ -116,13 +116,13 @@ public final class CcSkylarkApiProvider extends SkylarkApiProvider { "Returns the list of system include directories used to compile this target " + "(possibly empty but never <code>None</code>).") public ImmutableList<String> getSystemIncludeDirs() { - CcCompilationContextInfo ccCompilationContextInfo = - getInfo().get(CcCompilationInfo.PROVIDER).getCcCompilationContextInfo(); - if (ccCompilationContextInfo == null) { + CcCompilationContext ccCompilationContext = + getInfo().get(CcCompilationInfo.PROVIDER).getCcCompilationContext(); + if (ccCompilationContext == null) { return ImmutableList.of(); } ImmutableList.Builder<String> builder = ImmutableList.builder(); - for (PathFragment path : ccCompilationContextInfo.getSystemIncludeDirs()) { + for (PathFragment path : ccCompilationContext.getSystemIncludeDirs()) { builder.add(path.getSafePathString()); } return builder.build(); @@ -135,13 +135,13 @@ public final class CcSkylarkApiProvider extends SkylarkApiProvider { "Returns the list of include directories used to compile this target " + "(possibly empty but never <code>None</code>).") public ImmutableList<String> getIncludeDirs() { - CcCompilationContextInfo ccCompilationContextInfo = - getInfo().get(CcCompilationInfo.PROVIDER).getCcCompilationContextInfo(); - if (ccCompilationContextInfo == null) { + CcCompilationContext ccCompilationContext = + getInfo().get(CcCompilationInfo.PROVIDER).getCcCompilationContext(); + if (ccCompilationContext == null) { return ImmutableList.of(); } ImmutableList.Builder<String> builder = ImmutableList.builder(); - for (PathFragment path : ccCompilationContextInfo.getIncludeDirs()) { + for (PathFragment path : ccCompilationContext.getIncludeDirs()) { builder.add(path.getSafePathString()); } return builder.build(); @@ -154,13 +154,13 @@ public final class CcSkylarkApiProvider extends SkylarkApiProvider { "Returns the list of quote include directories used to compile this target " + "(possibly empty but never <code>None</code>).") public ImmutableList<String> getQuoteIncludeDirs() { - CcCompilationContextInfo ccCompilationContextInfo = - getInfo().get(CcCompilationInfo.PROVIDER).getCcCompilationContextInfo(); - if (ccCompilationContextInfo == null) { + CcCompilationContext ccCompilationContext = + getInfo().get(CcCompilationInfo.PROVIDER).getCcCompilationContext(); + if (ccCompilationContext == null) { return ImmutableList.of(); } ImmutableList.Builder<String> builder = ImmutableList.builder(); - for (PathFragment path : ccCompilationContextInfo.getQuoteIncludeDirs()) { + for (PathFragment path : ccCompilationContext.getQuoteIncludeDirs()) { builder.add(path.getSafePathString()); } return builder.build(); @@ -173,20 +173,20 @@ public final class CcSkylarkApiProvider extends SkylarkApiProvider { "Returns the list of flags used to compile this target " + "(possibly empty but never <code>None</code>).") public ImmutableList<String> getCcFlags() { - CcCompilationContextInfo ccCompilationContextInfo = - getInfo().get(CcCompilationInfo.PROVIDER).getCcCompilationContextInfo(); + CcCompilationContext ccCompilationContext = + getInfo().get(CcCompilationInfo.PROVIDER).getCcCompilationContext(); ImmutableList.Builder<String> options = ImmutableList.builder(); - for (String define : ccCompilationContextInfo.getDefines()) { + for (String define : ccCompilationContext.getDefines()) { options.add("-D" + define); } - for (PathFragment path : ccCompilationContextInfo.getSystemIncludeDirs()) { + for (PathFragment path : ccCompilationContext.getSystemIncludeDirs()) { options.add("-isystem " + path.getSafePathString()); } - for (PathFragment path : ccCompilationContextInfo.getIncludeDirs()) { + for (PathFragment path : ccCompilationContext.getIncludeDirs()) { options.add("-I " + path.getSafePathString()); } - for (PathFragment path : ccCompilationContextInfo.getQuoteIncludeDirs()) { + for (PathFragment path : ccCompilationContext.getQuoteIncludeDirs()) { options.add("-iquote " + path.getSafePathString()); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java index 77d4606f2a..7e92423e94 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java @@ -480,14 +480,13 @@ public class CcToolchain implements RuleConfiguredTargetFactory { Preconditions.checkState( (dynamicRuntimeLinkMiddleman == null) == dynamicRuntimeLinkSymlinks.isEmpty()); - CcCompilationContextInfo.Builder ccCompilationContextInfoBuilder = - new CcCompilationContextInfo.Builder(ruleContext); + CcCompilationContext.Builder ccCompilationContextBuilder = + new CcCompilationContext.Builder(ruleContext); CppModuleMap moduleMap = createCrosstoolModuleMap(ruleContext); if (moduleMap != null) { - ccCompilationContextInfoBuilder.setCppModuleMap(moduleMap); + ccCompilationContextBuilder.setCppModuleMap(moduleMap); } - final CcCompilationContextInfo ccCompilationContextInfo = - ccCompilationContextInfoBuilder.build(); + final CcCompilationContext ccCompilationContext = ccCompilationContextBuilder.build(); boolean supportsParamFiles = ruleContext.attributes().get("supports_param_files", BOOLEAN); boolean supportsHeaderParsing = ruleContext.attributes().get("supports_header_parsing", BOOLEAN); @@ -557,7 +556,7 @@ public class CcToolchain implements RuleConfiguredTargetFactory { dynamicRuntimeLinkSymlinks, dynamicRuntimeLinkMiddleman, runtimeSolibDir, - ccCompilationContextInfo, + ccCompilationContext, supportsParamFiles, supportsHeaderParsing, getBuildVariables(ruleContext, toolchainInfo.getDefaultSysroot()), diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java index 913fe2cf17..66650d016d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java @@ -75,7 +75,7 @@ public final class CcToolchainProvider extends ToolchainInfo { /* dynamicRuntimeLinkInputs= */ NestedSetBuilder.<Artifact>emptySet(Order.STABLE_ORDER), /* dynamicRuntimeLinkMiddleman= */ null, /* dynamicRuntimeSolibDir= */ PathFragment.EMPTY_FRAGMENT, - CcCompilationContextInfo.EMPTY, + CcCompilationContext.EMPTY, /* supportsParamFiles= */ false, /* supportsHeaderParsing= */ false, Variables.EMPTY, @@ -109,7 +109,7 @@ public final class CcToolchainProvider extends ToolchainInfo { private final NestedSet<Artifact> dynamicRuntimeLinkInputs; @Nullable private final Artifact dynamicRuntimeLinkMiddleman; private final PathFragment dynamicRuntimeSolibDir; - private final CcCompilationContextInfo ccCompilationContextInfo; + private final CcCompilationContext ccCompilationContext; private final boolean supportsParamFiles; private final boolean supportsHeaderParsing; private final Variables buildVariables; @@ -147,7 +147,7 @@ public final class CcToolchainProvider extends ToolchainInfo { NestedSet<Artifact> dynamicRuntimeLinkInputs, @Nullable Artifact dynamicRuntimeLinkMiddleman, PathFragment dynamicRuntimeSolibDir, - CcCompilationContextInfo ccCompilationContextInfo, + CcCompilationContext ccCompilationContext, boolean supportsParamFiles, boolean supportsHeaderParsing, Variables buildVariables, @@ -181,7 +181,7 @@ public final class CcToolchainProvider extends ToolchainInfo { this.dynamicRuntimeLinkInputs = Preconditions.checkNotNull(dynamicRuntimeLinkInputs); this.dynamicRuntimeLinkMiddleman = dynamicRuntimeLinkMiddleman; this.dynamicRuntimeSolibDir = Preconditions.checkNotNull(dynamicRuntimeSolibDir); - this.ccCompilationContextInfo = Preconditions.checkNotNull(ccCompilationContextInfo); + this.ccCompilationContext = Preconditions.checkNotNull(ccCompilationContext); this.supportsParamFiles = supportsParamFiles; this.supportsHeaderParsing = supportsHeaderParsing; this.buildVariables = buildVariables; @@ -434,9 +434,9 @@ public final class CcToolchainProvider extends ToolchainInfo { return dynamicRuntimeSolibDir; } - /** Returns the {@code CcCompilationContextInfo} for the toolchain. */ - public CcCompilationContextInfo getCcCompilationContextInfo() { - return ccCompilationContextInfo; + /** Returns the {@code CcCompilationContext} for the toolchain. */ + public CcCompilationContext getCcCompilationContext() { + return ccCompilationContext; } /** diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariables.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariables.java index f9c2f662af..166805d066 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariables.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariables.java @@ -56,19 +56,19 @@ public enum CompileBuildVariables { /** * Variable for the collection of include paths. * - * @see CcCompilationContextInfo#getIncludeDirs(). + * @see CcCompilationContext#getIncludeDirs(). */ INCLUDE_PATHS("include_paths"), /** * Variable for the collection of quote include paths. * - * @see CcCompilationContextInfo#getIncludeDirs(). + * @see CcCompilationContext#getIncludeDirs(). */ QUOTE_INCLUDE_PATHS("quote_include_paths"), /** * Variable for the collection of system include paths. * - * @see CcCompilationContextInfo#getIncludeDirs(). + * @see CcCompilationContext#getIncludeDirs(). */ SYSTEM_INCLUDE_PATHS("system_include_paths"), /** Variable for the module map file name. */ 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'); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java index 5d456784e4..da8bcdb627 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java @@ -64,7 +64,7 @@ public class CppCompileActionBuilder { private PathFragment tempOutputFile; private DotdFile dotdFile; private Artifact gcnoFile; - private CcCompilationContextInfo ccCompilationContextInfo = CcCompilationContextInfo.EMPTY; + private CcCompilationContext ccCompilationContext = CcCompilationContext.EMPTY; private final List<String> pluginOpts = new ArrayList<>(); private CoptsFilter coptsFilter = CoptsFilter.alwaysPasses(); private ImmutableList<PathFragment> extraSystemIncludePrefixes = ImmutableList.of(); @@ -148,7 +148,7 @@ public class CppCompileActionBuilder { this.tempOutputFile = other.tempOutputFile; this.dotdFile = other.dotdFile; this.gcnoFile = other.gcnoFile; - this.ccCompilationContextInfo = other.ccCompilationContextInfo; + this.ccCompilationContext = other.ccCompilationContext; this.pluginOpts.addAll(other.pluginOpts); this.coptsFilter = other.coptsFilter; this.extraSystemIncludePrefixes = ImmutableList.copyOf(other.extraSystemIncludePrefixes); @@ -201,8 +201,8 @@ public class CppCompileActionBuilder { return sourceFile; } - public CcCompilationContextInfo getCcCompilationContextInfo() { - return ccCompilationContextInfo; + public CcCompilationContext getCcCompilationContext() { + return ccCompilationContext; } public NestedSet<Artifact> getMandatoryInputs() { @@ -337,7 +337,7 @@ public class CppCompileActionBuilder { NestedSet<Artifact> allInputs = buildAllInputs(realMandatoryInputs); NestedSetBuilder<Artifact> prunableInputBuilder = NestedSetBuilder.stableOrder(); - prunableInputBuilder.addTransitive(ccCompilationContextInfo.getDeclaredIncludeSrcs()); + prunableInputBuilder.addTransitive(ccCompilationContext.getDeclaredIncludeSrcs()); prunableInputBuilder.addTransitive(cppSemantics.getAdditionalPrunableIncludes()); Iterable<IncludeScannable> lipoScannables = getLipoScannables(realMandatoryInputs); @@ -380,7 +380,7 @@ public class CppCompileActionBuilder { tempOutputFile, dotdFile, localShellEnvironment, - ccCompilationContextInfo, + ccCompilationContext, coptsFilter, getLipoScannables(realMandatoryInputs), cppSemantics, @@ -411,7 +411,7 @@ public class CppCompileActionBuilder { ltoIndexingFile, optionalSourceFile, localShellEnvironment, - ccCompilationContextInfo, + ccCompilationContext, coptsFilter, getLipoScannables(realMandatoryInputs), additionalIncludeScanningRoots.build(), @@ -445,13 +445,11 @@ public class CppCompileActionBuilder { NestedSetBuilder<Artifact> realMandatoryInputsBuilder = NestedSetBuilder.compileOrder(); realMandatoryInputsBuilder.addTransitive(mandatoryInputsBuilder.build()); realMandatoryInputsBuilder.addAll(getBuiltinIncludeFiles()); - realMandatoryInputsBuilder.addAll( - ccCompilationContextInfo.getTransitiveCompilationPrerequisites()); + realMandatoryInputsBuilder.addAll(ccCompilationContext.getTransitiveCompilationPrerequisites()); if (useHeaderModules() && !shouldPruneModules()) { - realMandatoryInputsBuilder.addTransitive( - ccCompilationContextInfo.getTransitiveModules(usePic)); + realMandatoryInputsBuilder.addTransitive(ccCompilationContext.getTransitiveModules(usePic)); } - realMandatoryInputsBuilder.addTransitive(ccCompilationContextInfo.getAdditionalInputs()); + realMandatoryInputsBuilder.addTransitive(ccCompilationContext.getAdditionalInputs()); realMandatoryInputsBuilder.add(Preconditions.checkNotNull(sourceFile)); if (grepIncludes != null) { realMandatoryInputsBuilder.add(grepIncludes); @@ -663,9 +661,9 @@ public class CppCompileActionBuilder { return this; } - public CppCompileActionBuilder setCcCompilationContextInfo( - CcCompilationContextInfo ccCompilationContextInfo) { - this.ccCompilationContextInfo = ccCompilationContextInfo; + public CppCompileActionBuilder setCcCompilationContext( + CcCompilationContext ccCompilationContext) { + this.ccCompilationContext = ccCompilationContext; return this; } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java index ec59a60663..6f262410c2 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java @@ -200,7 +200,7 @@ public final class CppConfiguration extends BuildConfiguration.Fragment { /** * If true, the ConfiguredTarget is only used to get the necessary cross-referenced {@code - * CcCompilationContextInfo}s, but registering build actions is disabled. + * CcCompilationContext}s, but registering build actions is disabled. */ private final boolean lipoContextCollector; diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java index b26425b3ba..eed09427a1 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java @@ -112,28 +112,27 @@ public class CppHelper { * Merges the STL and toolchain contexts into context builder. The STL is automatically determined * using the ":stl" attribute. */ - public static void mergeToolchainDependentCcCompilationContextInfo( + public static void mergeToolchainDependentCcCompilationContext( RuleContext ruleContext, CcToolchainProvider toolchain, - CcCompilationContextInfo.Builder ccCompilationContextInfoBuilder) { + CcCompilationContext.Builder ccCompilationContextBuilder) { if (ruleContext.getRule().getAttributeDefinition(":stl") != null) { TransitiveInfoCollection stl = ruleContext.getPrerequisite(":stl", Mode.TARGET); if (stl != null) { CcCompilationInfo ccCompilationInfo = stl.get(CcCompilationInfo.PROVIDER); - CcCompilationContextInfo ccCompilationContextInfo = - ccCompilationInfo != null ? ccCompilationInfo.getCcCompilationContextInfo() : null; - if (ccCompilationContextInfo == null) { + CcCompilationContext ccCompilationContext = + ccCompilationInfo != null ? ccCompilationInfo.getCcCompilationContext() : null; + if (ccCompilationContext == null) { ruleContext.ruleError( "Unable to merge the STL '" + stl.getLabel() + "' and toolchain contexts"); return; } - ccCompilationContextInfoBuilder.mergeDependentCcCompilationContextInfo( - ccCompilationContextInfo); + ccCompilationContextBuilder.mergeDependentCcCompilationContext(ccCompilationContext); } } if (toolchain != null) { - ccCompilationContextInfoBuilder.mergeDependentCcCompilationContextInfo( - toolchain.getCcCompilationContextInfo()); + ccCompilationContextBuilder.mergeDependentCcCompilationContext( + toolchain.getCcCompilationContext()); } } @@ -652,7 +651,7 @@ public class CppHelper { /** * Emits a warning on the rule if there are identical linkstamp artifacts with different {@code - * CcCompilationContextInfo}s. + * CcCompilationContext}s. */ public static void checkLinkstampsUnique(RuleErrorConsumer listener, CcLinkParams linkParams) { Map<Artifact, NestedSet<Artifact>> result = new LinkedHashMap<>(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppSemantics.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppSemantics.java index fe939422d1..93048e9654 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppSemantics.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppSemantics.java @@ -30,13 +30,13 @@ public interface CppSemantics { void finalizeCompileActionBuilder(RuleContext ruleContext, CppCompileActionBuilder actionBuilder); /** - * Called before {@link CcCompilationContextInfo}s are finalized. + * Called before {@link CcCompilationContext}s are finalized. * * <p>Gives the semantics implementation the opportunity to change what the C++ rule propagates to * dependent rules. */ - void setupCcCompilationContextInfo( - RuleContext ruleContext, CcCompilationContextInfo.Builder ccCompilationContextInfoBuilder); + void setupCcCompilationContext( + RuleContext ruleContext, CcCompilationContext.Builder ccCompilationContextBuilder); /** * Returns the set of includes which are not mandatory and may be pruned by include processing. diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java index f7b2a2e581..e4f36efd4d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java @@ -74,7 +74,7 @@ public class FakeCppCompileAction extends CppCompileAction { PathFragment tempOutputFile, DotdFile dotdFile, ImmutableMap<String, String> localShellEnvironment, - CcCompilationContextInfo ccCompilationContextInfo, + CcCompilationContext ccCompilationContext, CoptsFilter nocopts, Iterable<IncludeScannable> lipoScannables, CppSemantics cppSemantics, @@ -110,7 +110,7 @@ public class FakeCppCompileAction extends CppCompileAction { // cc_fake_binary and for the negative compilation tests that depend on // the cc_fake_binary, and the runfiles must be determined at analysis // time, so they can't depend on the contents of the ".d" file.) - CcCompilationContextInfo.disallowUndeclaredHeaders(ccCompilationContextInfo), + CcCompilationContext.disallowUndeclaredHeaders(ccCompilationContext), nocopts, lipoScannables, /* additionalIncludeScanningRoots=*/ ImmutableList.of(), diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java index ea6dddc02b..0a1223f98a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java @@ -116,12 +116,12 @@ import java.util.zip.ZipFile; * .gcda files are added, too. * </ul> * - * <p>If we do LIPO, the actual {@code CcCompilationContextInfo} for LIPO compilation actions is - * pieced together from the {@code CcCompilationContextInfo} in LipoContextProvider and that of the - * rule being compiled. (see {@link CcCompilationContextInfo#mergeForLipo}) This is so that the - * include files for the extra LIPO sources are found and is, strictly speaking, incorrect, since it - * also changes the declared include directories of the main source file, which in theory can result - * in the compilation passing even though it should fail with undeclared inclusion errors. + * <p>If we do LIPO, the actual {@code CcCompilationContext} for LIPO compilation actions is pieced + * together from the {@code CcCompilationContext} in LipoContextProvider and that of the rule being + * compiled. (see {@link CcCompilationContext#mergeForLipo}) This is so that the include files for + * the extra LIPO sources are found and is, strictly speaking, incorrect, since it also changes the + * declared include directories of the main source file, which in theory can result in the + * compilation passing even though it should fail with undeclared inclusion errors. * * <p>During the actual execution of the C++ compile action, the extra sources also need to be * include scanned, which is the reason why they are {@link IncludeScannable} objects and not simple diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LipoContextProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LipoContextProvider.java index 6f9f5fc697..90d6117cb0 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LipoContextProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LipoContextProvider.java @@ -33,24 +33,24 @@ import java.util.Map; @Immutable @AutoCodec public final class LipoContextProvider implements TransitiveInfoProvider { - private final CcCompilationContextInfo ccCompilationContextInfo; + private final CcCompilationContext ccCompilationContext; private final ImmutableMap<Artifact, IncludeScannable> includeScannables; private final ImmutableMap<PathFragment, Artifact> sourceArtifactMap; @AutoCodec.Instantiator public LipoContextProvider( - CcCompilationContextInfo ccCompilationContextInfo, + CcCompilationContext ccCompilationContext, Map<Artifact, IncludeScannable> includeScannables, Map<PathFragment, Artifact> sourceArtifactMap) { - this.ccCompilationContextInfo = ccCompilationContextInfo; + this.ccCompilationContext = ccCompilationContext; this.includeScannables = ImmutableMap.copyOf(includeScannables); this.sourceArtifactMap = ImmutableMap.copyOf(sourceArtifactMap); } - /** Returns merged {@code CcCompilationContextInfo} for the whole LIPO subtree. */ - public CcCompilationContextInfo getLipoCcCompilationContextInfo() { - return ccCompilationContextInfo; + /** Returns merged {@code CcCompilationContext} for the whole LIPO subtree. */ + public CcCompilationContext getLipoCcCompilationContext() { + return ccCompilationContext; } /** diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java index 850cc9d19a..6404293882 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java @@ -197,7 +197,7 @@ public abstract class CcProtoAspect extends NativeAspectClass implements Configu initializeLinkingHelper(featureConfiguration) .link( compilationInfo.getCcCompilationOutputs(), - compilationInfo.getCcCompilationContextInfo()); + compilationInfo.getCcCompilationContext()); ccLibraryProviders = new TransitiveInfoProviderMapBuilder() |