Add '--experimental_allow_fastbuild_debug' which when set, adds flag'-DDEBUG=1' to 'fastbuild' for objc.
RELNOTES: Make '-DDEBUG=1' available for objc fastbuild via --experimental_allow_fastbuild_debug
--
MOS_MIGRATED_REVID=99896083
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java
index 9f405e7..7ac2e61 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java
@@ -136,6 +136,14 @@
+ "built with --cpu set to \"ios_<--ios_cpu>\" for any values in --ios_multi_cpu.")
public boolean enableCcDeps;
+ // TODO(bazel-team): Add "-DDEBUG=1" to FASTBUILD_COPTS.
+ @Option(name = "experimental_objc_fastbuild_options",
+ defaultValue = "-O0",
+ category = "undocumented",
+ converter = CommaSeparatedOptionListConverter.class,
+ help = "Adds these strings to fastbuild compiler options.")
+ public List<String> fastbuildOptions;
+
@Option(name = "objc_enable_binary_stripping",
defaultValue = "false",
category = "flags",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
index 08ebca8..8741f67 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
@@ -43,10 +43,6 @@
"-fstack-protector", "-fstack-protector-all", "-D_GLIBCXX_DEBUG_PEDANTIC", "-D_GLIBCXX_DEBUG",
"-D_GLIBCPP_CONCEPT_CHECKS");
- // TODO(bazel-team): Add "-DDEBUG=1" to FASTBUILD_COPTS.
- @VisibleForTesting
- static final ImmutableList<String> FASTBUILD_COPTS = ImmutableList.of("-O0");
-
@VisibleForTesting
static final ImmutableList<String> OPT_COPTS =
ImmutableList.of(
@@ -65,6 +61,7 @@
private final List<String> iosMultiCpus;
private final String iosSplitCpu;
private final boolean perProtoIncludes;
+ private final List<String> fastbuildOptions;
private final boolean enableBinaryStripping;
private final ConfigurationDistinguisher configurationDistinguisher;
@Nullable private final Path clientWorkspaceRoot;
@@ -99,6 +96,7 @@
this.iosMultiCpus = Preconditions.checkNotNull(objcOptions.iosMultiCpus, "iosMultiCpus");
this.iosSplitCpu = Preconditions.checkNotNull(objcOptions.iosSplitCpu, "iosSplitCpu");
this.perProtoIncludes = objcOptions.perProtoIncludes;
+ this.fastbuildOptions = ImmutableList.copyOf(objcOptions.fastbuildOptions);
this.enableBinaryStripping = objcOptions.enableBinaryStripping;
this.configurationDistinguisher = objcOptions.configurationDistinguisher;
this.clientWorkspaceRoot = directories != null ? directories.getWorkspace() : null;
@@ -180,7 +178,7 @@
case DBG:
return DBG_COPTS;
case FASTBUILD:
- return FASTBUILD_COPTS;
+ return fastbuildOptions;
case OPT:
return OPT_COPTS;
default: