aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2016-07-27 07:40:21 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-07-27 11:15:19 +0000
commitddb6a1f2671f3c2c36090a61609054287b7e44ba (patch)
tree2da6bcffa0a1a10bb5201da7a4adf865e6ac1179 /src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
parent81dca61ad115d6c776233323e642d628414450f2 (diff)
Use a marker provider to determine of a rule is linked statically for the purposes of license checking instead of having a bespoke method in BuildConfiguration.Fragment and encoding knowledge about static linking in buildtool/ .
-- MOS_MIGRATED_REVID=128557444
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
index 8272143f9f..ae5314433d 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
@@ -24,12 +24,11 @@ import com.google.devtools.build.lib.analysis.AnalysisPhaseCompleteEvent;
import com.google.devtools.build.lib.analysis.BuildInfoEvent;
import com.google.devtools.build.lib.analysis.BuildView;
import com.google.devtools.build.lib.analysis.BuildView.AnalysisResult;
-import com.google.devtools.build.lib.analysis.ConfiguredAttributeMapper;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.LicensesProvider;
import com.google.devtools.build.lib.analysis.LicensesProvider.TargetLicense;
import com.google.devtools.build.lib.analysis.MakeEnvironmentEvent;
-import com.google.devtools.build.lib.analysis.RuleConfiguredTarget;
+import com.google.devtools.build.lib.analysis.StaticallyLinkedMarkerProvider;
import com.google.devtools.build.lib.analysis.ViewCreationFailedException;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection;
@@ -56,7 +55,6 @@ import com.google.devtools.build.lib.packages.License;
import com.google.devtools.build.lib.packages.License.DistributionType;
import com.google.devtools.build.lib.packages.NoSuchPackageException;
import com.google.devtools.build.lib.packages.NoSuchTargetException;
-import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.packages.TargetUtils;
import com.google.devtools.build.lib.pkgcache.LoadedPackageProvider;
@@ -68,7 +66,6 @@ import com.google.devtools.build.lib.profiler.ProfilePhase;
import com.google.devtools.build.lib.profiler.Profiler;
import com.google.devtools.build.lib.runtime.BlazeRuntime;
import com.google.devtools.build.lib.runtime.CommandEnvironment;
-import com.google.devtools.build.lib.syntax.Type;
import com.google.devtools.build.lib.util.AbruptExitException;
import com.google.devtools.build.lib.util.ExitCode;
import com.google.devtools.build.lib.util.Preconditions;
@@ -563,12 +560,9 @@ public final class BuildTool {
}
final Set<DistributionType> distribs = target.getDistributions();
- BuildConfiguration config = configuredTarget.getConfiguration();
- boolean staticallyLinked = (config != null) && config.performsStaticLink();
- staticallyLinked |= (config != null) && (target instanceof Rule)
- && ((Rule) target).getRuleClassObject().hasAttr("linkopts", Type.STRING_LIST)
- && ConfiguredAttributeMapper.of((RuleConfiguredTarget) configuredTarget)
- .get("linkopts", Type.STRING_LIST).contains("-static");
+ StaticallyLinkedMarkerProvider markerProvider =
+ configuredTarget.getProvider(StaticallyLinkedMarkerProvider.class);
+ boolean staticallyLinked = markerProvider != null && markerProvider.isLinkedStatically();
LicensesProvider provider = configuredTarget.getProvider(LicensesProvider.class);
if (provider != null) {