From 9b745a79653947c1830f906a12572d673420fecc Mon Sep 17 00:00:00 2001 From: Googler Date: Wed, 11 Jul 2018 08:09:39 -0700 Subject: Deprecate py_extension "outs" attribute. RELNOTES: PiperOrigin-RevId: 204126150 --- .../devtools/build/lib/rules/cpp/CcLibrary.java | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) (limited to 'src/main/java/com') 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 e17198270a..4266f667f1 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 @@ -76,6 +76,7 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { context, builder, /* additionalCopts= */ ImmutableList.of(), + /* soFilename= */ null, context.attributes().get("alwayslink", Type.BOOLEAN), /* neverLink= */ false, linkStatic, @@ -88,6 +89,7 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { RuleContext ruleContext, RuleConfiguredTargetBuilder targetBuilder, ImmutableList additionalCopts, + PathFragment soFilename, boolean alwaysLink, boolean neverLink, boolean linkStatic, @@ -157,20 +159,12 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { && supportsDynamicLinker && (appearsToHaveObjectFiles(ruleContext.attributes()) || featureConfiguration.isEnabled(CppRuleClasses.HEADER_MODULE_CODEGEN)); - if (ruleContext.getRule().isAttrDefined("outs", Type.STRING_LIST)) { - List outs = ruleContext.attributes().get("outs", Type.STRING_LIST); - if (outs.size() > 1) { - ruleContext.attributeError("outs", "must be a singleton list"); - } else if (outs.size() == 1) { - PathFragment soImplFilename = PathFragment.create(ruleContext.getLabel().getName()); - soImplFilename = soImplFilename.replaceName(outs.get(0)); - if (!soImplFilename.getPathString().endsWith(".so")) { // Sanity check. - ruleContext.attributeError("outs", "file name must end in '.so'"); - } - - if (createDynamicLibrary) { - soImplArtifact = ruleContext.getBinArtifact(soImplFilename); - } + if (soFilename != null) { + if (!soFilename.getPathString().endsWith(".so")) { // Sanity check. + ruleContext.attributeError("outs", "file name must end in '.so'"); + } + if (createDynamicLibrary) { + soImplArtifact = ruleContext.getBinArtifact(soFilename); } } -- cgit v1.2.3