Skip to content

Commit 790d7a7

Browse files
comiuscopybara-github
authored andcommitted
Change host transitions to execution transitions in Objc rules.
PiperOrigin-RevId: 416227805
1 parent e077a4a commit 790d7a7

File tree

5 files changed

+37
-22
lines changed

5 files changed

+37
-22
lines changed

src/main/java/com/google/devtools/build/lib/rules/objc/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ java_library(
2727
"//src/main/java/com/google/devtools/build/lib/analysis:config/config_aware_aspect_builder",
2828
"//src/main/java/com/google/devtools/build/lib/analysis:config/core_option_converters",
2929
"//src/main/java/com/google/devtools/build/lib/analysis:config/core_options",
30+
"//src/main/java/com/google/devtools/build/lib/analysis:config/execution_transition_factory",
3031
"//src/main/java/com/google/devtools/build/lib/analysis:config/fragment",
3132
"//src/main/java/com/google/devtools/build/lib/analysis:config/fragment_options",
32-
"//src/main/java/com/google/devtools/build/lib/analysis:config/host_transition",
3333
"//src/main/java/com/google/devtools/build/lib/analysis:config/transitions/patch_transition",
3434
"//src/main/java/com/google/devtools/build/lib/analysis:config/transitions/split_transition",
3535
"//src/main/java/com/google/devtools/build/lib/analysis:config/transitions/starlark_exposed_rule_transition_factory",

src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg;
4040
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
4141
import com.google.devtools.build.lib.analysis.config.ConfigAwareAspectBuilder;
42-
import com.google.devtools.build.lib.analysis.config.HostTransition;
42+
import com.google.devtools.build.lib.analysis.config.ExecutionTransitionFactory;
4343
import com.google.devtools.build.lib.analysis.platform.ToolchainInfo;
4444
import com.google.devtools.build.lib.cmdline.Label;
4545
import com.google.devtools.build.lib.cmdline.RepositoryName;
@@ -157,19 +157,19 @@ public AspectDefinition getDefinition(AspectParameters aspectParameters) {
157157
.useToolchainTransition(true)
158158
.add(
159159
attr("$grep_includes", LABEL)
160-
.cfg(HostTransition.createFactory())
160+
.cfg(ExecutionTransitionFactory.create())
161161
.value(Label.parseAbsoluteUnchecked(toolsRepository + "//tools/cpp:grep-includes")))
162162
.add(
163163
attr("$j2objc", LABEL)
164-
.cfg(HostTransition.createFactory())
164+
.cfg(ExecutionTransitionFactory.create())
165165
.exec()
166166
.value(
167167
Label.parseAbsoluteUnchecked(
168168
toolsRepository + "//tools/j2objc:j2objc_deploy.jar")))
169169
.add(
170170
attr("$j2objc_wrapper", LABEL)
171171
.allowedFileTypes(FileType.of(".py"))
172-
.cfg(HostTransition.createFactory())
172+
.cfg(ExecutionTransitionFactory.create())
173173
.exec()
174174
.singleArtifact()
175175
.value(
@@ -178,27 +178,27 @@ public AspectDefinition getDefinition(AspectParameters aspectParameters) {
178178
.add(
179179
attr("$j2objc_header_map", LABEL)
180180
.allowedFileTypes(FileType.of(".py"))
181-
.cfg(HostTransition.createFactory())
181+
.cfg(ExecutionTransitionFactory.create())
182182
.exec()
183183
.singleArtifact()
184184
.value(
185185
Label.parseAbsoluteUnchecked(
186186
toolsRepository + "//tools/j2objc:j2objc_header_map")))
187187
.add(
188188
attr("$jre_emul_jar", LABEL)
189-
.cfg(HostTransition.createFactory())
189+
.cfg(ExecutionTransitionFactory.create())
190190
.value(
191191
Label.parseAbsoluteUnchecked(
192192
toolsRepository + "//third_party/java/j2objc:jre_emul.jar")))
193193
.add(
194194
attr("$jre_emul_module", LABEL)
195-
.cfg(HostTransition.createFactory())
195+
.cfg(ExecutionTransitionFactory.create())
196196
.value(
197197
Label.parseAbsoluteUnchecked(
198198
toolsRepository + "//third_party/java/j2objc:jre_emul_module")))
199199
.add(
200200
attr(":dead_code_report", LABEL)
201-
.cfg(HostTransition.createFactory())
201+
.cfg(ExecutionTransitionFactory.create())
202202
.value(DEAD_CODE_REPORT))
203203
.add(
204204
attr("$jre_lib", LABEL)
@@ -207,7 +207,7 @@ public AspectDefinition getDefinition(AspectParameters aspectParameters) {
207207
toolsRepository + "//third_party/java/j2objc:jre_core_lib")))
208208
.add(
209209
attr("$xcrunwrapper", LABEL)
210-
.cfg(HostTransition.createFactory())
210+
.cfg(ExecutionTransitionFactory.create())
211211
.exec()
212212
.value(Label.parseAbsoluteUnchecked(toolsRepository + "//tools/objc:xcrunwrapper")))
213213
.add(
@@ -218,7 +218,7 @@ public AspectDefinition getDefinition(AspectParameters aspectParameters) {
218218
.value(AppleToolchain.getXcodeConfigLabel(toolsRepository)))
219219
.add(
220220
attr("$zipper", LABEL)
221-
.cfg(HostTransition.createFactory())
221+
.cfg(ExecutionTransitionFactory.create())
222222
.exec()
223223
.value(Label.parseAbsoluteUnchecked(toolsRepository + "//tools/zip:zipper")))
224224
.add(

src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
import com.google.devtools.build.lib.analysis.RunfilesProvider;
3737
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
3838
import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
39-
import com.google.devtools.build.lib.analysis.config.HostTransition;
39+
import com.google.devtools.build.lib.analysis.config.ExecutionTransitionFactory;
4040
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
4141
import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SafeImplicitOutputsFunction;
4242
import com.google.devtools.build.lib.packages.RuleClass;
@@ -660,7 +660,7 @@ public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env)
660660
.add(
661661
attr("$j2objc_dead_code_pruner", LABEL)
662662
.allowedFileTypes(FileType.of(".py"))
663-
.cfg(HostTransition.createFactory())
663+
.cfg(ExecutionTransitionFactory.create())
664664
.exec()
665665
.singleArtifact()
666666
.value(env.getToolsLabel("//tools/objc:j2objc_dead_code_pruner")))
@@ -731,7 +731,7 @@ public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env)
731731
return builder
732732
.add(
733733
attr("$xcrunwrapper", LABEL)
734-
.cfg(HostTransition.createFactory())
734+
.cfg(ExecutionTransitionFactory.create())
735735
.exec()
736736
.value(env.getToolsLabel("//tools/objc:xcrunwrapper")))
737737
.build();

src/test/java/com/google/devtools/build/lib/rules/objc/AppleBinaryStarlarkApiTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public final void setup() throws Exception {
8282
" fragment='apple', name='xcode_config_label'),),",
8383
" '_xcrunwrapper': attr.label(",
8484
" executable=True,",
85-
" cfg='host',",
85+
" cfg='exec',",
8686
" default=Label('" + toolsLoc + ":xcrunwrapper')),",
8787
" 'binary_type': attr.string(),",
8888
" 'bundle_loader': attr.label(),",

src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import com.google.common.collect.ImmutableList;
3030
import com.google.common.collect.ImmutableMap;
3131
import com.google.common.collect.Iterables;
32+
import com.google.common.truth.Correspondence;
3233
import com.google.devtools.build.lib.actions.Action;
3334
import com.google.devtools.build.lib.actions.ActionExecutionException;
3435
import com.google.devtools.build.lib.actions.Artifact;
@@ -65,6 +66,7 @@
6566
import java.util.List;
6667
import java.util.Locale;
6768
import java.util.Map;
69+
import java.util.regex.Pattern;
6870
import javax.annotation.Nullable;
6971

7072
/**
@@ -76,6 +78,8 @@
7678
* simply call a check... method) across several rule types.
7779
*/
7880
public abstract class ObjcRuleTestCase extends BuildViewTestCase {
81+
private static final Correspondence<String, String> MATCHES_REGEX =
82+
Correspondence.from((a, b) -> Pattern.matches(b, a), "matches");
7983
protected static final String MOCK_XCRUNWRAPPER_PATH =
8084
toolsRepoExecPath("tools/objc/xcrunwrapper.sh");
8185
protected static final String MOCK_XCRUNWRAPPER_EXECUTABLE_PATH =
@@ -163,8 +167,9 @@ protected String configurationGenfiles(
163167
}
164168

165169
private static String toolExecutable(String toolSrcPath) {
166-
return String.format("%s-out/host/bin/%s", TestConstants.PRODUCT_NAME,
167-
TestConstants.TOOLS_REPOSITORY_PATH_PREFIX + toolSrcPath);
170+
return String.format(
171+
"%s-out/[^/]*-exec-[^/]*/bin/%s",
172+
TestConstants.PRODUCT_NAME, TestConstants.TOOLS_REPOSITORY_PATH_PREFIX + toolSrcPath);
168173
}
169174

170175
private String configurationDir(
@@ -1096,13 +1101,20 @@ protected void checkLipoBinaryAction(RuleType ruleType) throws Exception {
10961101
configurationBin("x86_64", ConfigurationDistinguisher.APPLEBIN_IOS) + "x/x_bin";
10971102

10981103
assertThat(Artifact.asExecPaths(action.getInputs()))
1104+
.comparingElementsUsing(MATCHES_REGEX)
10991105
.containsExactly(
11001106
i386Bin, x8664Bin, MOCK_XCRUNWRAPPER_PATH, MOCK_XCRUNWRAPPER_EXECUTABLE_PATH);
11011107

11021108
assertThat(action.getArguments())
1103-
.containsExactly(MOCK_XCRUNWRAPPER_EXECUTABLE_PATH, LIPO,
1104-
"-create", i386Bin, x8664Bin,
1105-
"-o", execPathEndingWith(action.getOutputs(), "x_lipobin"))
1109+
.comparingElementsUsing(MATCHES_REGEX)
1110+
.containsExactly(
1111+
MOCK_XCRUNWRAPPER_EXECUTABLE_PATH,
1112+
LIPO,
1113+
"-create",
1114+
i386Bin,
1115+
x8664Bin,
1116+
"-o",
1117+
execPathEndingWith(action.getOutputs(), "x_lipobin"))
11061118
.inOrder();
11071119

11081120
assertThat(Artifact.toRootRelativePaths(action.getOutputs()))
@@ -1418,11 +1430,14 @@ protected void checkWatchSimulatorLipoAction(RuleType ruleType) throws Exception
14181430
+ "x/x_bin";
14191431

14201432
assertThat(Artifact.asExecPaths(action.getInputs()))
1433+
.comparingElementsUsing(MATCHES_REGEX)
14211434
.containsExactly(
14221435
i386Bin, armv7kBin, MOCK_XCRUNWRAPPER_PATH, MOCK_XCRUNWRAPPER_EXECUTABLE_PATH);
14231436

1424-
assertContainsSublist(action.getArguments(), ImmutableList.of(
1425-
MOCK_XCRUNWRAPPER_EXECUTABLE_PATH, LIPO, "-create"));
1437+
assertThat(action.getArguments())
1438+
.comparingElementsUsing(MATCHES_REGEX)
1439+
.containsAtLeast(MOCK_XCRUNWRAPPER_EXECUTABLE_PATH, LIPO, "-create")
1440+
.inOrder();
14261441
assertThat(action.getArguments()).containsAtLeast(armv7kBin, i386Bin);
14271442
assertContainsSublist(action.getArguments(), ImmutableList.of(
14281443
"-o", execPathEndingWith(action.getOutputs(), "x_lipobin")));

0 commit comments

Comments
 (0)