Skip to content

Commit

Permalink
Use toolchain resolution in rule creation
Browse files Browse the repository at this point in the history
Part of bazelbuild#2219.

Change-Id: Id4929d5ddcd57b4635af5e513eb9a09f16a78e71
  • Loading branch information
katre committed May 1, 2017
1 parent 79e6574 commit c12ac69
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.Fragment;
import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider;
import com.google.devtools.build.lib.analysis.platform.ToolchainInfo;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
Expand Down Expand Up @@ -57,9 +58,12 @@
import com.google.devtools.build.lib.rules.SkylarkRuleConfiguredTargetBuilder;
import com.google.devtools.build.lib.rules.fileset.FilesetProvider;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
import com.google.devtools.build.lib.skyframe.SkyFunctions;
import com.google.devtools.build.lib.util.OrderedSetMultimap;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
Expand Down Expand Up @@ -219,6 +223,25 @@ public final ConfiguredTarget createConfiguredTarget(AnalysisEnvironment analysi
}
}

private List<ToolchainInfo> findToolchains(AnalysisEnvironment env,
Rule rule) {
if (rule.getRuleClassObject().getRequiredToolchains().isEmpty()) {
return ImmutableList.of();
}
try {
SkyValue result = env.getSkyframeEnv().getValue(SkyKey.create(SkyFunctions.TOOLCHAINS, ""));
if (result == null) {
return null;
}
result.toString();
} catch (InterruptedException e) {
e.printStackTrace();
}

return ImmutableList.of();
}


/**
* Factory method: constructs a RuleConfiguredTarget of the appropriate class, based on the rule
* class. May return null if an error occurred.
Expand All @@ -229,6 +252,13 @@ private ConfiguredTarget createRule(
BuildConfiguration hostConfiguration,
OrderedSetMultimap<Attribute, ConfiguredTarget> prerequisiteMap,
ImmutableMap<Label, ConfigMatchingProvider> configConditions) throws InterruptedException {
/*
List<ToolchainInfo> toolchains = findToolchains(env, rule);
if (toolchains == null) {
return null;
}
*/

// Visibility computation and checking is done for every rule.
RuleContext ruleContext =
new RuleContext.Builder(
Expand All @@ -244,6 +274,7 @@ private ConfiguredTarget createRule(
.setConfigConditions(configConditions)
.setUniversalFragment(ruleClassProvider.getUniversalFragment())
.setSkylarkProvidersRegistry(ruleClassProvider.getRegisteredSkylarkProviders())
// TODO(katre): set toolchains
.build();
if (ruleContext.hasErrors()) {
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
import com.google.devtools.build.lib.rules.MakeVariableProvider;
import com.google.devtools.build.lib.rules.fileset.FilesetProvider;
import com.google.devtools.build.lib.shell.ShellUtils;
import com.google.devtools.build.lib.skyframe.SkyFunctions;
import com.google.devtools.build.lib.syntax.ClassObject;
import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.Type;
Expand All @@ -90,6 +91,9 @@
import com.google.devtools.build.lib.util.StringUtil;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
Expand Down

0 comments on commit c12ac69

Please sign in to comment.