aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java
diff options
context:
space:
mode:
authorGravatar plf <plf@google.com>2018-01-11 08:43:09 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-01-11 08:45:27 -0800
commit8d2036106f68251a14371f478ec6ff886fed9398 (patch)
tree9236832b2d4473f893f56c172e4b8bfb09509b1b /src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java
parent6cc2ad8676d1ae0542b351a07a05ddbe5efac165 (diff)
Automated rollback of commit c166cd99ce9f72eed522e78d63c93ff410b6dc18.
*** Reason for rollback *** This was missing adding LTO files in the cc_embed_data rule. Fixed and added test. *** Original change description *** Automated rollback of commit 67330ad52391ad6562d439f77cc5133a0ea4247d. *** Reason for rollback *** Breaks nightly: b/71790513 *** Original change description *** C++ refactoring: Separate compilation and linking calls to CcLibraryHelper RELNOTES:none PiperOrigin-RevId: 181613477
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java
index 260a7c655c..c1a40fc579 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java
@@ -26,6 +26,7 @@ import com.google.devtools.build.lib.analysis.Runfiles;
import com.google.devtools.build.lib.analysis.RunfilesProvider;
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.test.InstrumentedFilesProvider;
+import com.google.devtools.build.lib.rules.cpp.CcLibraryHelper.Info;
import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration;
import com.google.devtools.build.lib.syntax.Type;
import com.google.devtools.build.lib.vfs.Path;
@@ -129,12 +130,18 @@ public abstract class CcIncLibrary implements RuleConfiguredTargetFactory {
new CreateIncSymlinkAction(ruleContext.getActionOwner(), virtualArtifactMap, includeRoot));
FdoSupportProvider fdoSupport =
CppHelper.getFdoSupportUsingDefaultCcToolchainAttribute(ruleContext);
- CcLibraryHelper.Info info =
+ Info.CompilationInfo compilationInfo =
new CcLibraryHelper(ruleContext, semantics, featureConfiguration, ccToolchain, fdoSupport)
.addIncludeDirs(Arrays.asList(includePath))
.addPublicHeaders(virtualArtifactMap.keySet())
.addDeps(ruleContext.getPrerequisites("deps", Mode.TARGET))
- .build();
+ .compile();
+ Info.LinkingInfo linkingInfo =
+ new CcLibraryHelper(ruleContext, semantics, featureConfiguration, ccToolchain, fdoSupport)
+ .addDeps(ruleContext.getPrerequisites("deps", Mode.TARGET))
+ .link(
+ compilationInfo.getCcCompilationOutputs(),
+ compilationInfo.getCppCompilationContext());
// cc_inc_library doesn't compile any file - no compilation outputs available.
InstrumentedFilesProvider instrumentedFilesProvider =
@@ -143,9 +150,12 @@ public abstract class CcIncLibrary implements RuleConfiguredTargetFactory {
/*withBaselineCoverage=*/true);
return new RuleConfiguredTargetBuilder(ruleContext)
- .addProviders(info.getProviders())
+ .addProviders(compilationInfo.getProviders())
+ .addProviders(linkingInfo.getProviders())
.addSkylarkTransitiveInfo(CcSkylarkApiProvider.NAME, new CcSkylarkApiProvider())
- .addOutputGroups(info.getOutputGroups())
+ .addOutputGroups(
+ Info.mergeOutputGroups(
+ compilationInfo.getOutputGroups(), linkingInfo.getOutputGroups()))
.add(InstrumentedFilesProvider.class, instrumentedFilesProvider)
.add(RunfilesProvider.class, RunfilesProvider.simple(Runfiles.EMPTY))
.build();