Add registration of execution platforms

Part of #4442.

Change-Id: I6debbf7cfdf560d2113e736176702c2cd889c0d2
PiperOrigin-RevId: 182763864
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index c37ffa3..b07d02a 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -203,6 +203,7 @@
   private ImmutableList<Event> events;
   private ImmutableList<Postable> posts;
 
+  private ImmutableList<Label> registeredExecutionPlatformLabels;
   private ImmutableList<Label> registeredToolchainLabels;
 
   /**
@@ -339,6 +340,8 @@
     this.features = ImmutableSortedSet.copyOf(builder.features);
     this.events = ImmutableList.copyOf(builder.events);
     this.posts = ImmutableList.copyOf(builder.posts);
+    this.registeredExecutionPlatformLabels =
+        ImmutableList.copyOf(builder.registeredExecutionPlatformLabels);
     this.registeredToolchainLabels = ImmutableList.copyOf(builder.registeredToolchainLabels);
   }
 
@@ -656,6 +659,10 @@
     return defaultRestrictedTo;
   }
 
+  public ImmutableList<Label> getRegisteredExecutionPlatformLabels() {
+    return registeredExecutionPlatformLabels;
+  }
+
   public ImmutableList<Label> getRegisteredToolchainLabels() {
     return registeredToolchainLabels;
   }
@@ -775,6 +782,7 @@
     protected Map<Label, Path> subincludes = null;
     protected ImmutableList<Label> skylarkFileDependencies = ImmutableList.of();
 
+    protected List<Label> registeredExecutionPlatformLabels = new ArrayList<>();
     protected List<Label> registeredToolchainLabels = new ArrayList<>();
 
     /**
@@ -1298,6 +1306,10 @@
       addRuleUnchecked(rule);
     }
 
+    public void addRegisteredExecutionPlatformLabels(List<Label> platforms) {
+      this.registeredExecutionPlatformLabels.addAll(platforms);
+    }
+
     void addRegisteredToolchainLabels(List<Label> toolchains) {
       this.registeredToolchainLabels.addAll(toolchains);
     }