Skip to content

Commit

Permalink
Add key() method to ToolchainContext.
Browse files Browse the repository at this point in the history
Cleanup leading to toolchain transitions, #10523.

Closes #11337.

PiperOrigin-RevId: 311148682
  • Loading branch information
katre authored and Copybara-Service committed May 12, 2020
1 parent b9786ca commit bd7abd6
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 1 deletion.
2 changes: 2 additions & 0 deletions src/main/java/com/google/devtools/build/lib/analysis/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,7 @@ java_library(
"//src/main/java/com/google/devtools/build/lib/skyframe:configured_value_creation_exception",
"//src/main/java/com/google/devtools/build/lib/skyframe:package_value",
"//src/main/java/com/google/devtools/build/lib/skyframe:precomputed_value",
"//src/main/java/com/google/devtools/build/lib/skyframe:toolchain_context_key",
"//src/main/java/com/google/devtools/build/lib/skyframe:toolchain_exception",
"//src/main/java/com/google/devtools/build/lib/skyframe:transitive_target_key",
"//src/main/java/com/google/devtools/build/lib/skyframe:transitive_target_value",
Expand Down Expand Up @@ -1018,6 +1019,7 @@ java_library(
deps = [
"//src/main/java/com/google/devtools/build/lib/analysis/platform",
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/skyframe:toolchain_context_key",
"//third_party:guava",
],
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ public static ResolvedToolchainContext load(

return new AutoValue_ResolvedToolchainContext(
// super:
unloadedToolchainContext.key(),
unloadedToolchainContext.executionPlatform(),
unloadedToolchainContext.targetPlatform(),
unloadedToolchainContext.requiredToolchainTypes(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,12 @@
import com.google.devtools.build.lib.analysis.platform.PlatformInfo;
import com.google.devtools.build.lib.analysis.platform.ToolchainTypeInfo;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.skyframe.ToolchainContextKey;

/** Represents the data needed for a specific target's use of toolchains and platforms. */
public interface ToolchainContext {
/** Returns the key that identifies this context. */
ToolchainContextKey key();

/** Returns the selected execution platform that these toolchains use. */
PlatformInfo executionPlatform();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ public UnloadedToolchainContext compute(SkyKey skyKey, Environment env)
ToolchainContextKey key = (ToolchainContextKey) skyKey.argument();

try {
UnloadedToolchainContextImpl.Builder builder = UnloadedToolchainContextImpl.builder();
UnloadedToolchainContextImpl.Builder builder =
UnloadedToolchainContextImpl.builder().setKey(key);

// Determine the configuration being used.
BuildConfigurationValue value =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ public static Builder builder() {
/** Builder class to help create the {@link UnloadedToolchainContextImpl}. */
@AutoValue.Builder
public interface Builder {
/** Sets the key that identifies this context. */
Builder setKey(ToolchainContextKey key);

/** Sets the selected execution platform that these toolchains use. */
Builder setExecutionPlatform(PlatformInfo executionPlatform);

Expand Down
1 change: 1 addition & 0 deletions src/test/java/com/google/devtools/build/lib/analysis/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ java_library(
"//src/main/java/com/google/devtools/build/lib/skyframe:configured_target_and_data",
"//src/main/java/com/google/devtools/build/lib/skyframe:configured_target_key",
"//src/main/java/com/google/devtools/build/lib/skyframe:skyframe_cluster",
"//src/main/java/com/google/devtools/build/lib/skyframe:toolchain_context_key",
"//src/main/java/com/google/devtools/build/lib/skyframe:toolchain_exception",
"//src/main/java/com/google/devtools/build/lib/skyframe:unloaded_toolchain_context",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.rules.platform.ToolchainTestCase;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData;
import com.google.devtools.build.lib.skyframe.ToolchainContextKey;
import com.google.devtools.build.lib.skyframe.ToolchainException;
import com.google.devtools.build.lib.skyframe.UnloadedToolchainContext;
import com.google.devtools.build.lib.skyframe.UnloadedToolchainContextImpl;
Expand All @@ -44,9 +45,16 @@ public void load() throws Exception {
ImmutableList.of("//constraints:linux"),
"baz");

ToolchainContextKey toolchainContextKey =
ToolchainContextKey.key()
.configurationKey(targetConfigKey)
.requiredToolchainTypeLabels(testToolchainTypeLabel)
.build();

// Create a static UnloadedToolchainContext.
UnloadedToolchainContext unloadedToolchainContext =
UnloadedToolchainContextImpl.builder()
.setKey(toolchainContextKey)
.setExecutionPlatform(linuxPlatform)
.setTargetPlatform(linuxPlatform)
.setRequiredToolchainTypes(ImmutableSet.of(testToolchainType))
Expand Down Expand Up @@ -89,9 +97,16 @@ public void load_aliasedToolchain() throws Exception {
ImmutableList.of("//constraints:linux"),
"baz");

ToolchainContextKey toolchainContextKey =
ToolchainContextKey.key()
.configurationKey(targetConfigKey)
.requiredToolchainTypeLabels(testToolchainTypeLabel)
.build();

// Create a static UnloadedToolchainContext.
UnloadedToolchainContext unloadedToolchainContext =
UnloadedToolchainContextImpl.builder()
.setKey(toolchainContextKey)
.setExecutionPlatform(linuxPlatform)
.setTargetPlatform(linuxPlatform)
.setRequiredToolchainTypes(ImmutableSet.of(testToolchainType))
Expand Down Expand Up @@ -124,9 +139,16 @@ public void load_aliasedToolchain() throws Exception {
public void load_notToolchain() throws Exception {
scratch.file("foo/BUILD", "filegroup(name = 'not_a_toolchain')");

ToolchainContextKey toolchainContextKey =
ToolchainContextKey.key()
.configurationKey(targetConfigKey)
.requiredToolchainTypeLabels(testToolchainTypeLabel)
.build();

// Create a static UnloadedToolchainContext.
UnloadedToolchainContext unloadedToolchainContext =
UnloadedToolchainContextImpl.builder()
.setKey(toolchainContextKey)
.setExecutionPlatform(linuxPlatform)
.setTargetPlatform(linuxPlatform)
.setRequiredToolchainTypes(ImmutableSet.of(testToolchainType))
Expand Down Expand Up @@ -178,9 +200,16 @@ public void load_withTemplateVariables() throws Exception {
" name='variable_toolchain_impl',",
" value = 'foo')");

ToolchainContextKey toolchainContextKey =
ToolchainContextKey.key()
.configurationKey(targetConfigKey)
.requiredToolchainTypeLabels(testToolchainTypeLabel)
.build();

// Create a static UnloadedToolchainContext.
UnloadedToolchainContext unloadedToolchainContext =
UnloadedToolchainContextImpl.builder()
.setKey(toolchainContextKey)
.setExecutionPlatform(linuxPlatform)
.setTargetPlatform(linuxPlatform)
.setRequiredToolchainTypes(ImmutableSet.of(variableToolchainType))
Expand Down

0 comments on commit bd7abd6

Please sign in to comment.