Skip to content

Commit 1faeb68

Browse files
authored
[8.0.0] Move --fat_apk_cpu to the flag graveyard (#24062)
The flag is a no-op and has been removed from Bazel.
1 parent 3c55821 commit 1faeb68

File tree

6 files changed

+57
-46
lines changed

6 files changed

+57
-46
lines changed

src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.google.devtools.build.lib.runtime.Command;
2626
import com.google.devtools.build.lib.runtime.CommandEnvironment;
2727
import com.google.devtools.build.lib.util.ResourceFileLoader;
28+
import com.google.devtools.common.options.Converters;
2829
import com.google.devtools.common.options.Option;
2930
import com.google.devtools.common.options.OptionDocumentationCategory;
3031
import com.google.devtools.common.options.OptionEffectTag;
@@ -424,6 +425,16 @@ public static final class BazelBuildGraveyardOptions extends BuildGraveyardOptio
424425
help = "No-op",
425426
deprecationWarning = ANDROID_FLAG_DEPRECATION)
426427
public boolean incompatibleUseToolchainResolution;
428+
429+
@Option(
430+
name = "fat_apk_cpu",
431+
converter = Converters.CommaSeparatedOptionSetConverter.class,
432+
defaultValue = "armeabi-v7a",
433+
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
434+
effectTags = {OptionEffectTag.NO_OP},
435+
help = "No-op",
436+
deprecationWarning = ANDROID_FLAG_DEPRECATION)
437+
public List<String> fatApkCpus;
427438
}
428439

429440
/**

src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -235,25 +235,6 @@ public static class Options extends FragmentOptions {
235235
+ "'off' means that all libraries will be linked in mostly static mode.")
236236
public DynamicMode dynamicMode;
237237

238-
// TODO(bazel-team): Maybe merge this with --android_cpu above.
239-
// TODO(blaze-configurability): Mark this as deprecated in favor of --android_platforms.
240-
@Option(
241-
name = "fat_apk_cpu",
242-
converter = Converters.CommaSeparatedOptionSetConverter.class,
243-
defaultValue = "armeabi-v7a",
244-
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
245-
effectTags = {
246-
OptionEffectTag.AFFECTS_OUTPUTS,
247-
OptionEffectTag.LOADING_AND_ANALYSIS,
248-
OptionEffectTag.LOSES_INCREMENTAL_STATE,
249-
},
250-
help =
251-
"Setting this option enables fat APKs, which contain native binaries for all "
252-
+ "specified target architectures, e.g., --fat_apk_cpu=x86,armeabi-v7a. If this "
253-
+ "flag is specified, then --android_cpu is ignored for dependencies of "
254-
+ "android_binary rules.")
255-
public List<String> fatApkCpus;
256-
257238
@Option(
258239
name = "android_platforms",
259240
converter = LabelOrderedSetConverter.class,
@@ -714,15 +695,6 @@ public static class Options extends FragmentOptions {
714695
+ " Starlark Android rules from https://github.com/bazelbuild/rules_android")
715696
public boolean disableNativeAndroidRules;
716697

717-
@Option(
718-
name = "android hwasan", // Space is so that this cannot be set on the command line
719-
defaultValue = "false",
720-
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
721-
effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS},
722-
metadataTags = {OptionMetadataTag.INTERNAL},
723-
help = "Whether HWASAN is enabled.")
724-
public boolean hwasan;
725-
726698
@Option(
727699
name = "experimental_filter_r_jars_from_android_test",
728700
defaultValue = "false",

src/main/starlark/builtins_bzl/common/builtin_exec_platforms.bzl

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,13 +153,9 @@ bazel_fragments["AndroidConfiguration.Options"] = fragment(
153153
"//command_line_option:experimental_objc_provider_from_linked",
154154
],
155155
outputs = [
156-
"//command_line_option:android hwasan",
157-
"//command_line_option:fat_apk_cpu",
158156
"//command_line_option:Android configuration distinguisher",
159157
],
160158
func = lambda settings: {
161-
"//command_line_option:android hwasan": False,
162-
"//command_line_option:fat_apk_cpu": [],
163159
"//command_line_option:Android configuration distinguisher": "main",
164160
},
165161
)

src/test/java/com/google/devtools/build/lib/analysis/starlark/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ java_test(
5252
deps = [
5353
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
5454
"//src/main/java/com/google/devtools/build/lib/analysis:config/build_configuration",
55+
"//src/main/java/com/google/devtools/build/lib/analysis:config/build_options",
5556
"//src/main/java/com/google/devtools/build/lib/analysis:config/core_options",
5657
"//src/main/java/com/google/devtools/build/lib/analysis:config/transitions/configuration_transition",
5758
"//src/main/java/com/google/devtools/build/lib/analysis:configured_target",

src/test/java/com/google/devtools/build/lib/analysis/starlark/StarlarkAttrTransitionProviderTest.java

Lines changed: 44 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@
1414

1515
package com.google.devtools.build.lib.analysis.starlark;
1616

17+
import static com.google.common.collect.ImmutableSet.toImmutableSet;
1718
import static com.google.common.collect.Multimaps.toMultimap;
1819
import static com.google.common.truth.Truth.assertThat;
1920
import static com.google.devtools.build.lib.skyframe.BzlLoadValue.keyForBuild;
2021

2122
import com.google.common.collect.ArrayListMultimap;
2223
import com.google.common.collect.ImmutableList;
2324
import com.google.common.collect.ImmutableMap;
25+
import com.google.common.collect.ImmutableSet;
2426
import com.google.common.collect.Iterables;
2527
import com.google.common.collect.ListMultimap;
2628
import com.google.common.collect.Maps;
@@ -29,6 +31,8 @@
2931
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
3032
import com.google.devtools.build.lib.analysis.PlatformOptions;
3133
import com.google.devtools.build.lib.analysis.RequiredConfigFragmentsProvider;
34+
import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
35+
import com.google.devtools.build.lib.analysis.config.BuildOptions;
3236
import com.google.devtools.build.lib.analysis.config.CoreOptions;
3337
import com.google.devtools.build.lib.analysis.config.OutputPathMnemonicComputer;
3438
import com.google.devtools.build.lib.analysis.config.transitions.ConfigurationTransition;
@@ -49,7 +53,6 @@
4953
import java.util.Collection;
5054
import java.util.List;
5155
import java.util.Map;
52-
import java.util.stream.Collectors;
5356
import net.starlark.java.eval.Dict;
5457
import net.starlark.java.eval.Starlark;
5558
import net.starlark.java.eval.StarlarkInt;
@@ -637,16 +640,29 @@ private void writeReadSettingsTestFiles() throws Exception {
637640
"""
638641
load("//myinfo:myinfo.bzl", "MyInfo")
639642
643+
def _flag_impl(ctx):
644+
pass
645+
646+
string_flag = rule(
647+
implementation = _flag_impl,
648+
build_setting = config.string(flag = True),
649+
)
650+
651+
string_list_flag = rule(
652+
implementation = _flag_impl,
653+
build_setting = config.string_list(flag = True),
654+
)
655+
640656
def transition_func(settings, attr):
641657
transitions = []
642-
for cpu in settings["//command_line_option:fat_apk_cpu"]:
643-
transitions.append({"//command_line_option:cpu": cpu})
658+
for val in settings["//test/starlark:source"]:
659+
transitions.append({"//test/starlark:dest": val})
644660
return transitions
645661
646662
my_transition = transition(
647663
implementation = transition_func,
648-
inputs = ["//command_line_option:fat_apk_cpu"],
649-
outputs = ["//command_line_option:cpu"],
664+
inputs = ["//test/starlark:source"],
665+
outputs = ["//test/starlark:dest"],
650666
)
651667
652668
def impl(ctx):
@@ -663,7 +679,17 @@ def impl(ctx):
663679
scratch.file(
664680
"test/starlark/BUILD",
665681
"""
666-
load("//test/starlark:my_rule.bzl", "my_rule")
682+
load("//test/starlark:my_rule.bzl", "my_rule", "string_list_flag", "string_flag")
683+
684+
string_list_flag(
685+
name = "source",
686+
build_setting_default = [],
687+
)
688+
689+
string_flag(
690+
name = "dest",
691+
build_setting_default = "",
692+
)
667693
668694
my_rule(
669695
name = "test",
@@ -682,18 +708,25 @@ public void testReadSettingsSplitDepAttrDep() throws Exception {
682708
getAnalysisMock().ccSupport().setupCcToolchainConfigForCpu(mockToolsConfig, "armeabi-v7a");
683709
writeReadSettingsTestFiles();
684710

685-
useConfiguration("--fat_apk_cpu=k8,armeabi-v7a");
711+
useConfiguration("--//test/starlark:source=first,second");
686712
ConfiguredTarget target = getConfiguredTarget("//test/starlark:test");
687713

688714
@SuppressWarnings("unchecked")
689715
Dict<String, ConfiguredTarget> splitDep =
690716
(Dict<String, ConfiguredTarget>) getMyInfoFromTarget(target).getValue("attr_dep");
691717
assertThat(splitDep.size()).isEqualTo(2);
692-
List<String> cpus =
718+
ImmutableSet<String> values =
693719
splitDep.values().stream()
694-
.map(ct -> getConfiguration(ct).getCpu())
695-
.collect(Collectors.toList());
696-
assertThat(cpus).containsExactly("k8", "armeabi-v7a");
720+
.map(this::getConfiguration)
721+
.map(BuildConfigurationValue::getOptions)
722+
.map(
723+
options ->
724+
(String)
725+
options
726+
.getStarlarkOptions()
727+
.get(Label.parseCanonicalUnchecked("//test/starlark:dest")))
728+
.collect(toImmutableSet());
729+
assertThat(values).containsExactly("first", "second");
697730
}
698731

699732
private void writeOptionConversionTestFiles() throws Exception {

src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -375,9 +375,7 @@ public void testStartEndLib() throws Exception {
375375
.setupCcToolchainConfig(
376376
mockToolsConfig,
377377
CcToolchainConfig.builder().withFeatures(CppRuleClasses.SUPPORTS_START_END_LIB));
378-
useConfiguration(
379-
// Prevent Android from trying to setup ARM crosstool by forcing it on system cpu.
380-
"--fat_apk_cpu=k8", "--start_end_lib");
378+
useConfiguration("--start_end_lib");
381379
scratch.file(
382380
"test/BUILD",
383381
"""

0 commit comments

Comments
 (0)