diff options
author | 2018-01-11 08:43:09 -0800 | |
---|---|---|
committer | 2018-01-11 08:45:27 -0800 | |
commit | 8d2036106f68251a14371f478ec6ff886fed9398 (patch) | |
tree | 9236832b2d4473f893f56c172e4b8bfb09509b1b /src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java | |
parent | 6cc2ad8676d1ae0542b351a07a05ddbe5efac165 (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.java | 18 |
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(); |