diff options
author | Lukacs Berki <lberki@google.com> | 2016-07-27 07:40:21 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2016-07-27 11:15:19 +0000 |
commit | ddb6a1f2671f3c2c36090a61609054287b7e44ba (patch) | |
tree | 2da6bcffa0a1a10bb5201da7a4adf865e6ac1179 /src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java | |
parent | 81dca61ad115d6c776233323e642d628414450f2 (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.java | 14 |
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) { |